@hmcts/ccpay-web-component 6.2.2 → 6.2.3-beta11

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVBheW1lbnRHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBkZWZpbmUgcGF5bWVudCBncm91cFxuaW1wb3J0IHtJRmVlfSBmcm9tICcuL0lGZWUnO1xuaW1wb3J0IHtJUGF5bWVudH0gZnJvbSAnLi9JUGF5bWVudCc7XG5pbXBvcnQge0lSZW1pc3Npb259IGZyb20gJy4vSVJlbWlzc2lvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRHcm91cCB7XG4gIHBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlOiBzdHJpbmc7XG4gIHBheW1lbnRzOiBJUGF5bWVudFtdO1xuICByZW1pc3Npb25zOiBJUmVtaXNzaW9uW107XG4gIGZlZXM6IElGZWVbXTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVBheW1lbnRHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBkZWZpbmUgcGF5bWVudCBncm91cFxuaW1wb3J0IHtJRmVlfSBmcm9tICcuL0lGZWUnO1xuaW1wb3J0IHtJUGF5bWVudH0gZnJvbSAnLi9JUGF5bWVudCc7XG5pbXBvcnQge0lSZW1pc3Npb259IGZyb20gJy4vSVJlbWlzc2lvbic7XG5pbXBvcnQge0lSZWZ1bmRMaXN0fSBmcm9tIFwiLi9JUmVmdW5kTGlzdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50R3JvdXAge1xuICBwYXltZW50X2dyb3VwX3JlZmVyZW5jZTogc3RyaW5nO1xuICBwYXltZW50czogSVBheW1lbnRbXTtcbiAgcmVtaXNzaW9uczogSVJlbWlzc2lvbltdO1xuICBmZWVzOiBJRmVlW107XG4gIHJlZnVuZHM6IElSZWZ1bmRMaXN0W107XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVJlZnVuZExpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXltZW50LWxpYi9zcmMvbGliL2ludGVyZmFjZXMvSVJlZnVuZExpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZWZ1bmRDb250YWN0RGV0YWlscyB9IGZyb20gJy4vSVJlZnVuZENvbnRhY3REZXRhaWxzJztcbmV4cG9ydCBpbnRlcmZhY2UgSVJlZnVuZExpc3Qge1xuICAgIGFtb3VudDogbnVtYmVyLFxuICAgIGNjZF9jYXNlX251bWJlcjogc3RyaW5nLFxuICAgIGRhdGVfY3JlYXRlZDogc3RyaW5nLFxuICAgIGRhdGVfdXBkYXRlZDogc3RyaW5nLFxuICAgIHBheW1lbnRfcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgcmVhc29uOiBzdHJpbmcsXG4gICAgcmVhc29uX2NvZGU6IHN0cmluZyxcbiAgICByZWZ1bmRfcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgcmVmdW5kX3N0YXR1czoge1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgIH0sXG4gICAgY29udGFjdF9kZXRhaWxzOiBJUmVmdW5kQ29udGFjdERldGFpbHMsXG4gICAgdXNlcl9mdWxsX25hbWU6IHN0cmluZyxcbiAgICBzZXJ2aWNlX3R5cGU6IHN0cmluZyxcbiAgICBjb2RlOnN0cmluZ1xuICB9Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVJlZnVuZExpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXltZW50LWxpYi9zcmMvbGliL2ludGVyZmFjZXMvSVJlZnVuZExpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZWZ1bmRDb250YWN0RGV0YWlscyB9IGZyb20gJy4vSVJlZnVuZENvbnRhY3REZXRhaWxzJztcbmV4cG9ydCBpbnRlcmZhY2UgSVJlZnVuZExpc3Qge1xuICAgIGFtb3VudDogbnVtYmVyLFxuICAgIGNjZF9jYXNlX251bWJlcjogc3RyaW5nLFxuICAgIGRhdGVfY3JlYXRlZDogc3RyaW5nLFxuICAgIGRhdGVfdXBkYXRlZDogc3RyaW5nLFxuICAgIHBheW1lbnRfcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgcmVhc29uOiBzdHJpbmcsXG4gICAgcmVhc29uX2NvZGU6IHN0cmluZyxcbiAgICByZWZ1bmRfcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgcmVmdW5kX3N0YXR1czoge1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgIH0sXG4gICAgY29udGFjdF9kZXRhaWxzOiBJUmVmdW5kQ29udGFjdERldGFpbHMsXG4gICAgdXNlcl9mdWxsX25hbWU6IHN0cmluZyxcbiAgICBzZXJ2aWNlX3R5cGU6IHN0cmluZyxcbiAgICBmZWVfaWRzOiBzdHJpbmcsXG4gICAgY29kZTpzdHJpbmdcbiAgfVxuIl19
@@ -79,6 +79,9 @@ export class PaymentLibComponent {
79
79
  orderRemissionTotal = 0.00;
80
80
  orderTotalPayments = 0.00;
81
81
  orderPendingPayments = 0.00;
82
+ paymentGroup;
83
+ overPaymentAmount = 0.00;
84
+ refunds;
82
85
  constructor(paymentLibService, cd, OrderslistService) {
83
86
  this.paymentLibService = paymentLibService;
84
87
  this.cd = cd;
@@ -122,6 +125,32 @@ export class PaymentLibComponent {
122
125
  this.isFromPayBubble = true;
123
126
  }
124
127
  }
128
+ // Refunds libs section.
129
+ /**
130
+ * This function is used to find out if the current refunds list are in progress for the fee passed as parameter
131
+ * @param fee this is the fee used to find out if the refunds are in progress.
132
+ */
133
+ isTheCurrentRefundInProcessForThisFee(fee) {
134
+ // No refunds
135
+ if (this.refunds == null || this.refunds.length === 0) {
136
+ return false;
137
+ }
138
+ return !this.isTheCurrentRefundRejectedForTheFee(fee.id.toString());
139
+ }
140
+ /**
141
+ * This function is used to find out if in current list of refunds all refunds has been rejected
142
+ * for the fee passed as parameter.
143
+ * @param feeCode this is the fee code used to find out all refunds rejected refunds.
144
+ */
145
+ isTheCurrentRefundRejectedForTheFee(feeCode) {
146
+ let refundsByFee = this.refunds.filter(refund => refund.fee_ids === feeCode);
147
+ let refundsByFeeAndRejected = this.refunds.filter(refund => refund.refund_status.name === 'Rejected');
148
+ // Refunds > 0 and overPayment --> refunds in process or Rejected.
149
+ if (refundsByFee.length === refundsByFeeAndRejected.length) {
150
+ return true;
151
+ }
152
+ return false;
153
+ }
125
154
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PaymentLibComponent, deps: [{ token: i1.PaymentLibService }, { token: i0.ChangeDetectorRef }, { token: i2.OrderslistService }], target: i0.ɵɵFactoryTarget.Component });
126
155
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: PaymentLibComponent, selector: "ccpay-payment-lib", inputs: { API_ROOT: "API_ROOT", BULKSCAN_API_ROOT: "BULKSCAN_API_ROOT", REFUNDS_API_ROOT: "REFUNDS_API_ROOT", NOTIFICATION_API_ROOT: "NOTIFICATION_API_ROOT", CARDPAYMENTRETURNURL: "CARDPAYMENTRETURNURL", CCD_CASE_NUMBER: "CCD_CASE_NUMBER", EXC_REFERENCE: "EXC_REFERENCE", PAYMENT_METHOD: "PAYMENT_METHOD", VIEW: "VIEW", VIEWSERVICE: "VIEWSERVICE", PAYMENT_GROUP_REF: "PAYMENT_GROUP_REF", TAKEPAYMENT: "TAKEPAYMENT", SERVICEREQUEST: "SERVICEREQUEST", DCN_NUMBER: "DCN_NUMBER", SELECTED_OPTION: "SELECTED_OPTION", ISBSENABLE: "ISBSENABLE", ISSFENABLE: "ISSFENABLE", ISTURNOFF: "ISTURNOFF", CASETYPE: "CASETYPE", ISPAYMENTSTATUSENABLED: "ISPAYMENTSTATUSENABLED", rootUrl: "rootUrl", REFUNDLIST: "REFUNDLIST", USERID: "USERID", LOGGEDINUSERROLES: "LOGGEDINUSERROLES", LOGGEDINUSEREMAIL: "LOGGEDINUSEREMAIL", isFromServiceRequestPage: "isFromServiceRequestPage" }, providers: [{ provide: 'PAYMENT_LIB', useExisting: forwardRef(() => PaymentLibComponent) }], ngImport: i0, template: `
127
156
  <ccpay-refund-list [USERID]="USERID" [LOGGEDINUSERROLES]="LOGGEDINUSERROLES" [LOGGEDINUSEREMAIL]="LOGGEDINUSEREMAIL" *ngIf="viewName === 'refund-list'"></ccpay-refund-list>
@@ -285,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
285
314
  type: Input,
286
315
  args: ['isFromServiceRequestPage']
287
316
  }] } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9wYXltZW50LWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQStDbEUsTUFBTSxPQUFPLG1CQUFtQjtJQThEVjtJQUNWO0lBQ0E7SUEvRFMsUUFBUSxDQUFTO0lBQ1IsaUJBQWlCLENBQVM7SUFDM0IsZ0JBQWdCLENBQVM7SUFDcEIscUJBQXFCLENBQVM7SUFDL0Isb0JBQW9CLENBQVM7SUFDbEMsZUFBZSxDQUFTO0lBQzFCLGFBQWEsQ0FBUztJQUNyQixjQUFjLENBQVM7SUFDakMsSUFBSSxDQUFTO0lBQ04sV0FBVyxDQUFTO0lBQ2QsaUJBQWlCLENBQVU7SUFDakMsV0FBVyxDQUFVO0lBQ2xCLGNBQWMsQ0FBUztJQUMzQixVQUFVLENBQVM7SUFDZCxlQUFlLENBQVM7SUFDN0IsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsQ0FBVTtJQUNyQixTQUFTLENBQVU7SUFDcEIsUUFBUSxDQUFTO0lBQ0gsc0JBQXNCLENBQVU7SUFDL0MsT0FBTyxDQUFVO0lBQ2QsVUFBVSxDQUFTO0lBQ3ZCLE1BQU0sQ0FBUztJQUNKLGlCQUFpQixDQUFRO0lBQ3pCLGlCQUFpQixDQUFTO0lBQ25CLHdCQUF3QixDQUFVO0lBRXJFLGFBQWEsQ0FBUztJQUN0QixZQUFZLENBQVM7SUFDckIsMkJBQTJCLEdBQVcsSUFBSSxDQUFDO0lBQzNDLHFCQUFxQixDQUFTO0lBQzlCLGdCQUFn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QUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDUyxXQUFXO3NCQUFoQyxLQUFLO3VCQUFDLGFBQWE7Z0JBQ1EsaUJBQWlCO3NCQUE1QyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDSixXQUFXO3NCQUFoQyxLQUFLO3VCQUFDLGFBQWE7Z0JBQ0ssY0FBYztzQkFBdEMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ0YsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNPLGVBQWU7c0JBQXhDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUNILFVBQVU7c0JBQTlCLEtBQUs7dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUE5QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ0MsU0FBUztzQkFBNUIsS0FBSzt1QkFBQyxXQUFXO2dCQUNDLFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFDZ0Isc0JBQXNCO3NCQUF0RCxLQUFLO3VCQUFDLHdCQUF3QjtnQkFDYixPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVM7Z0JBQ0ssVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNGLE1BQU07c0JBQXRCLEtBQUs7dUJBQUMsUUFBUTtnQkFDYSxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNFLGlCQUFpQjtzQkFBNUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ1Msd0JBQXdCO3NCQUExRCxLQUFLO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRMaWJTZXJ2aWNlIH0gZnJvbSAnLi9wYXltZW50LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IElCU1BheW1lbnRzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL0lCU1BheW1lbnRzJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYXltZW50LWxpYicsXG4gIHRlbXBsYXRlOiBgXG4gIDxjY3BheS1yZWZ1bmQtbGlzdCBbVVNFUklEXT1cIlVTRVJJRFwiIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiIFtMT0dHRURJTlVTRVJFTUFJTF09XCJMT0dHRURJTlVTRVJFTUFJTFwiICpuZ0lmPVwidmlld05hbWUgPT09ICdyZWZ1bmQtbGlzdCdcIj48L2NjcGF5LXJlZnVuZC1saXN0PlxuICAgIDxjY3BheS1wYXltZW50LWxpc3QgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3BheW1lbnQtbGlzdCdcIj48L2NjcGF5LXBheW1lbnQtbGlzdD5cbiAgICA8Y2NwYXktcmVmdW5kLXN0YXR1c1xuICAgIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiXG4gICAgW0FQSV9ST09UXT1cIkFQSV9ST09UXCJcbiAgICAqbmdJZj1cInZpZXdOYW1lID09PSAncmVmdW5kc3RhdHVzbGlzdCdcIj4gPC9jY3BheS1yZWZ1bmQtc3RhdHVzID5cbiAgICA8Y2NwYXktcGF5bWVudC12aWV3IFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiICpuZ0lmPVwidmlld05hbWUgPT09ICdwYXltZW50LXZpZXcnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiIFtpc1Rha2VQYXltZW50XT1cIlRBS0VQQVlNRU5UXCIgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgW0lTUEFZTUVOVFNUQVRVU0VOQUJMRURdID0gXCJJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXCJcbiAgICA+PC9jY3BheS1wYXltZW50LXZpZXc+XG5cbiAgICA8Y2NwYXktcHJvY2Vzcy1yZWZ1bmQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3Byb2Nlc3MtcmVmdW5kJ1wiXG4gICAgW3JlZnVuZFJlZmVyZW5jZV09XCJyZWZ1bmRSZWZlcmVuY2VcIlxuICAgIFtyZWZ1bmRsaXN0c291cmNlXT1cInJlZnVuZGxpc3Rzb3VyY2VcIlxuICAgID48L2NjcGF5LXByb2Nlc3MtcmVmdW5kPlxuICAgIDxjY3BheS1wYmEtcGF5bWVudCAqbmdJZj1cInZpZXdOYW1lID09PSAncGJhLXBheW1lbnQnXCJcbiAgICBbcGJhUGF5T3JkZXJSZWZdPVwicGJhUGF5T3JkZXJSZWZcIlxuICAgID48L2NjcGF5LXBiYS1wYXltZW50PlxuICAgIDxjY3BheS1jYXNlLXRyYW5zYWN0aW9ucyBbaXNUYWtlUGF5bWVudF09XCJpc1Rha2VQYXltZW50XCIgW2lzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZV09XCJpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2VcIiBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIiAqbmdJZj1cInZpZXdOYW1lID09PSAnY2FzZS10cmFuc2FjdGlvbnMnXCI+PC9jY3BheS1jYXNlLXRyYW5zYWN0aW9ucz5cbiAgICA8YXBwLW1hcmstdW5pZGVudGlmaWVkLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3VuaWRlbnRpZmllZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuaWRlbnRpZmllZC1wYXltZW50PlxuICAgIDxhcHAtbWFyay11bnNvbGljaXRlZC1wYXltZW50ICpuZ0lmPVwidmlld05hbWUgPT09ICd1bnNvbGljaXRlZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuc29saWNpdGVkLXBheW1lbnQ+XG4gICAgPGFwcC1hbGxvY2F0ZS1wYXltZW50cyAqbmdJZj1cInZpZXdOYW1lID09PSAnYWxsb2NhdGUtcGF5bWVudHMnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiXG4gICAgW2Nhc2VUeXBlXT1cIkNBU0VUWVBFXCJcbiAgICA+PC9hcHAtYWxsb2NhdGUtcGF5bWVudHM+XG4gICAgPGNjcGF5LWZlZS1zdW1tYXJ5ICpuZ0lmPVwidmlld05hbWUgPT09ICdmZWUtc3VtbWFyeSdcIlxuICAgICAgW2NjZENhc2VOdW1iZXJdPVwiQ0NEX0NBU0VfTlVNQkVSXCJcbiAgICAgIFtwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwUmVmZXJlbmNlXCJcbiAgICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgICA+PC9jY3BheS1mZWUtc3VtbWFyeT5cbiAgICA8Y2NwYXktcmVwb3J0cyAqbmdJZj1cInZpZXdOYW1lID09PSAncmVwb3J0cydcIlxuICAgIFtJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXSA9IFwiSVNQQVlNRU5UU1RBVFVTRU5BQkxFRFwiXG4gICAgPjwvY2NwYXktcmVwb3J0cz5cbiAgICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6ICdQQVlNRU5UX0xJQicsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBheW1lbnRMaWJDb21wb25lbnQpIH1dXG59KVxuXG5leHBvcnQgY2xhc3MgUGF5bWVudExpYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnQVBJX1JPT1QnKSBBUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ0JVTEtTQ0FOX0FQSV9ST09UJykgQlVMS1NDQU5fQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdSRUZVTkRTX0FQSV9ST09UJykgUkVGVU5EU19BUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ05PVElGSUNBVElPTl9BUElfUk9PVCcpIE5PVElGSUNBVElPTl9BUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ0NBUkRQQVlNRU5UUkVUVVJOVVJMJykgQ0FSRFBBWU1FTlRSRVRVUk5VUkw6IHN0cmluZztcbiAgQElucHV0KCdDQ0RfQ0FTRV9OVU1CRVInKSBDQ0RfQ0FTRV9OVU1CRVI6IHN0cmluZztcbiAgQElucHV0KCdFWENfUkVGRVJFTkNFJykgRVhDX1JFRkVSRU5DRTogc3RyaW5nO1xuICBASW5wdXQoJ1BBWU1FTlRfTUVUSE9EJykgUEFZTUVOVF9NRVRIT0Q6IHN0cmluZztcbiAgQElucHV0KCdWSUVXJykgVklFVzogc3RyaW5nO1xuICBASW5wdXQoJ1ZJRVdTRVJWSUNFJykgVklFV1NFUlZJQ0U6IHN0cmluZztcbiAgQElucHV0KCdQQVlNRU5UX0dST1VQX1JFRicpIFBBWU1FTlRfR1JPVVBfUkVGPzogc3RyaW5nO1xuICBASW5wdXQoJ1RBS0VQQVlNRU5UJykgVEFLRVBBWU1FTlQ6IGJvb2xlYW47XG4gIEBJbnB1dCgnU0VSVklDRVJFUVVFU1QnKSBTRVJWSUNFUkVRVUVTVDogc3RyaW5nO1xuICBASW5wdXQoJ0RDTl9OVU1CRVInKSBEQ05fTlVNQkVSOiBzdHJpbmc7XG4gIEBJbnB1dCgnU0VMRUNURURfT1BUSU9OJykgU0VMRUNURURfT1BUSU9OOiBzdHJpbmc7XG4gIEBJbnB1dCgnSVNCU0VOQUJMRScpIElTQlNFTkFCTEU6IEJvb2xlYW47XG4gIEBJbnB1dCgnSVNTRkVOQUJMRScpIElTU0ZFTkFCTEU6IGJvb2xlYW47XG4gIEBJbnB1dCgnSVNUVVJOT0ZGJykgSVNUVVJOT0ZGOiBib29sZWFuO1xuICBASW5wdXQoJ0NBU0VUWVBFJykgQ0FTRVRZUEU6IHN0cmluZztcbiAgQElucHV0KCdJU1BBWU1FTlRTVEFUVVNFTkFCTEVEJykgSVNQQVlNRU5UU1RBVFVTRU5BQkxFRDogYm9vbGVhbjtcbiAgQElucHV0KCdyb290VXJsJykgcm9vdFVybDogYm9vbGVhbjtcbiAgQElucHV0KCdSRUZVTkRMSVNUJykgUkVGVU5ETElTVDogc3RyaW5nO1xuICBASW5wdXQoJ1VTRVJJRCcpIFVTRVJJRDogc3RyaW5nO1xuICBASW5wdXQoJ0xPR0dFRElOVVNFUlJPTEVTJykgTE9HR0VESU5VU0VSUk9MRVM6IGFueVtdO1xuICBASW5wdXQoJ0xPR0dFRElOVVNFUkVNQUlMJykgTE9HR0VESU5VU0VSRU1BSUw6IHN0cmluZztcbiAgQElucHV0KCdpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UnKSBpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U6IGJvb2xlYW47XG5cbiAgcGF5bWVudE1ldGhvZDogc3RyaW5nO1xuICBic3BheW1lbnRkY246IHN0cmluZztcbiAgdW5Qcm9jZXNzZWRQYXltZW50U2VydmljZUlkOiBzdHJpbmcgPSBudWxsO1xuICBwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZztcbiAgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nO1xuICByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgaXNGcm9tUGF5QnViYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZGxpc3Rzb3VyY2U6IGFueTtcbiAgdmlld05hbWU6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICB1blByb2Nlc3NlZFBheW1lbnQ6IElCU1BheW1lbnRzID0gbnVsbDtcbiAgaXNSZWZ1bmRTdGF0dXNWaWV3OiBib29sZWFuO1xuICBpc1JlZGlyZWN0RnJvbUNhc2VUcmFuc2FjdGlvblBhZ2U6IHN0cmluZztcbiAgaXNDYWxsRnJvbVJlZnVuZExpc3Q6IGJvb2xlYW47XG4gIGlzRnJvbVJlZnVuZFN0YXR1c1BhZ2U6IGJvb2xlYW47XG4gIGlzY2FuY2VsQ2xpY2tlZDogYm9vbGVhbjtcbiAgaXNGcm9tUGF5bWVudERldGFpbFBhZ2U6IGJvb2xlYW47XG4gIHBiYVBheU9yZGVyUmVmOiBJUGF5bWVudDtcbiAgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcblxuICBvcmRlckRldGFpbDogYW55W107XG4gIG9yZGVyUmVmOiBzdHJpbmc7XG4gIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIG9yZGVyUGFydHk6IHN0cmluZztcbiAgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIHNlcnZpY2VSZXF1ZXN0VmFsdWU6IHN0cmluZztcbiAgb3JkZXJBZGRCdG5FbmFibGU6IGJvb2xlYW47XG4gIG9yZGVyRmVlc1RvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyUGVuZGluZ1BheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlKSB7IH1cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0QXBpUm9vdFVybCh0aGlzLkFQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldEJ1bGtTY2FuQXBpUm9vdFVybCh0aGlzLkJVTEtTQ0FOX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldFJlZnVuZG5kc0FwaVJvb3RVcmwodGhpcy5SRUZVTkRTX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldE5vdGljYXRpb25BcGlSb290VXJsKHRoaXMuTk9USUZJQ0FUSU9OX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldENhcmRQYXltZW50UmV0dXJuVXJsKHRoaXMuQ0FSRFBBWU1FTlRSRVRVUk5VUkwpO1xuXG4gICAgaWYgKHRoaXMuTE9HR0VESU5VU0VSUk9MRVMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRVc2VyUm9sZXNMaXN0KHRoaXMuTE9HR0VESU5VU0VSUk9MRVMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5QQVlNRU5UX0dST1VQX1JFRikge1xuICAgICAgdGhpcy5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSB0aGlzLlBBWU1FTlRfR1JPVVBfUkVGO1xuICAgIH1cbiAgICBpZiAodGhpcy5EQ05fTlVNQkVSKSB7XG4gICAgICB0aGlzLmJzcGF5bWVudGRjbiA9IHRoaXMuRENOX05VTUJFUjtcbiAgICB9XG4gICAgaWYgKHRoaXMuUkVGVU5ETElTVCA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMuVklFVyA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gdGhpcy5WSUVXO1xuICAgIH1cbiAgICBpZiAodGhpcy5WSUVXID09PSAnZmVlLXN1bW1hcnknKSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ2ZlZS1zdW1tYXJ5JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuVklFVyAhPT0gJ3JlcG9ydHMnICYmIHRoaXMuVklFVyAhPT0gJ3JlZnVuZC1saXN0Jykge1xuICAgICAgdGhpcy52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSB0aGlzLlZJRVc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNUYWtlUGF5bWVudCkge1xuICAgICAgdGhpcy5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLkFQSV9ST09UID09ICdhcGkvcGF5bWVudC1oaXN0b3J5Jykge1xuICAgICAgdGhpcy5pc0Zyb21QYXlCdWJibGUgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9wYXltZW50LWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQWtEbEUsTUFBTSxPQUFPLG1CQUFtQjtJQWtFVjtJQUNWO0lBQ0E7SUFuRVMsUUFBUSxDQUFTO0lBQ1IsaUJBQWlCLENBQVM7SUFDM0IsZ0JBQWdCLENBQVM7SUFDcEIscUJBQXFCLENBQVM7SUFDL0Isb0JBQW9CLENBQVM7SUFDbEMsZUFBZSxDQUFTO0lBQzFCLGFBQWEsQ0FBUztJQUNyQixjQUFjLENBQVM7SUFDakMsSUFBSSxDQUFTO0lBQ04sV0FBVyxDQUFTO0lBQ2QsaUJBQWlCLENBQVU7SUFDakMsV0FBVyxDQUFVO0lBQ2xCLGNBQWMsQ0FBUztJQUMzQixVQUFVLENBQVM7SUFDZCxlQUFlLENBQVM7SUFDN0IsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsQ0FBVTtJQUNyQixTQUFTLENBQVU7SUFDcEIsUUFBUSxDQUFTO0lBQ0gsc0JBQXNCLENBQVU7SUFDL0MsT0FBTyxDQUFVO0lBQ2QsVUFBVSxDQUFTO0lBQ3ZCLE1BQU0sQ0FBUztJQUNKLGlCQUFpQixDQUFRO0lBQ3pCLGlCQUFpQixDQUFTO0lBQ25CLHdCQUF3QixDQUFVO0lBRXJFLGFBQWEsQ0FBUztJQUN0QixZQUFZLENBQVM7SUFDckIsMkJBQTJCLEdBQVcsSUFBSSxDQUFDO0lBQzNDLHFCQUFxQixDQUFTO0lBQzlCLGdCQUFn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S0FBSzt1QkFBQyxZQUFZO2dCQUNPLGVBQWU7c0JBQXhDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUNILFVBQVU7c0JBQTlCLEtBQUs7dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUE5QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ0MsU0FBUztzQkFBNUIsS0FBSzt1QkFBQyxXQUFXO2dCQUNDLFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFDZ0Isc0JBQXNCO3NCQUF0RCxLQUFLO3VCQUFDLHdCQUF3QjtnQkFDYixPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVM7Z0JBQ0ssVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNGLE1BQU07c0JBQXRCLEtBQUs7dUJBQUMsUUFBUTtnQkFDYSxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNFLGlCQUFpQjtzQkFBNUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ1Msd0JBQXdCO3NCQUExRCxLQUFLO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRMaWJTZXJ2aWNlIH0gZnJvbSAnLi9wYXltZW50LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IElCU1BheW1lbnRzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL0lCU1BheW1lbnRzJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtJUGF5bWVudEdyb3VwfSBmcm9tIFwiLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXBcIjtcbmltcG9ydCB7SVJlZnVuZExpc3R9IGZyb20gXCIuL2ludGVyZmFjZXMvSVJlZnVuZExpc3RcIjtcbmltcG9ydCB7SUZlZX0gZnJvbSBcIi4vaW50ZXJmYWNlcy9JRmVlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXBheW1lbnQtbGliJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGNjcGF5LXJlZnVuZC1saXN0IFtVU0VSSURdPVwiVVNFUklEXCIgW0xPR0dFRElOVVNFUlJPTEVTXT1cIkxPR0dFRElOVVNFUlJPTEVTXCIgW0xPR0dFRElOVVNFUkVNQUlMXT1cIkxPR0dFRElOVVNFUkVNQUlMXCIgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3JlZnVuZC1saXN0J1wiPjwvY2NwYXktcmVmdW5kLWxpc3Q+XG4gICAgPGNjcGF5LXBheW1lbnQtbGlzdCAqbmdJZj1cInZpZXdOYW1lID09PSAncGF5bWVudC1saXN0J1wiPjwvY2NwYXktcGF5bWVudC1saXN0PlxuICAgIDxjY3BheS1yZWZ1bmQtc3RhdHVzXG4gICAgW0xPR0dFRElOVVNFUlJPTEVTXT1cIkxPR0dFRElOVVNFUlJPTEVTXCJcbiAgICBbQVBJX1JPT1RdPVwiQVBJX1JPT1RcIlxuICAgICpuZ0lmPVwidmlld05hbWUgPT09ICdyZWZ1bmRzdGF0dXNsaXN0J1wiPiA8L2NjcGF5LXJlZnVuZC1zdGF0dXMgPlxuICAgIDxjY3BheS1wYXltZW50LXZpZXcgW0xPR0dFRElOVVNFUlJPTEVTXT1cIkxPR0dFRElOVVNFUlJPTEVTXCIgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3BheW1lbnQtdmlldydcIlxuICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCIgW2lzVGFrZVBheW1lbnRdPVwiVEFLRVBBWU1FTlRcIiAgW2Nhc2VUeXBlXT1cIkNBU0VUWVBFXCJcbiAgICBbSVNQQVlNRU5UU1RBVFVTRU5BQkxFRF0gPSBcIklTUEFZTUVOVFNUQVRVU0VOQUJMRURcIlxuICAgID48L2NjcGF5LXBheW1lbnQtdmlldz5cblxuICAgIDxjY3BheS1wcm9jZXNzLXJlZnVuZCAqbmdJZj1cInZpZXdOYW1lID09PSAncHJvY2Vzcy1yZWZ1bmQnXCJcbiAgICBbcmVmdW5kUmVmZXJlbmNlXT1cInJlZnVuZFJlZmVyZW5jZVwiXG4gICAgW3JlZnVuZGxpc3Rzb3VyY2VdPVwicmVmdW5kbGlzdHNvdXJjZVwiXG4gICAgPjwvY2NwYXktcHJvY2Vzcy1yZWZ1bmQ+XG4gICAgPGNjcGF5LXBiYS1wYXltZW50ICpuZ0lmPVwidmlld05hbWUgPT09ICdwYmEtcGF5bWVudCdcIlxuICAgIFtwYmFQYXlPcmRlclJlZl09XCJwYmFQYXlPcmRlclJlZlwiXG4gICAgPjwvY2NwYXktcGJhLXBheW1lbnQ+XG4gICAgPGNjcGF5LWNhc2UtdHJhbnNhY3Rpb25zIFtpc1Rha2VQYXltZW50XT1cImlzVGFrZVBheW1lbnRcIiBbaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlXT1cImlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZVwiIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiICpuZ0lmPVwidmlld05hbWUgPT09ICdjYXNlLXRyYW5zYWN0aW9ucydcIj48L2NjcGF5LWNhc2UtdHJhbnNhY3Rpb25zPlxuICAgIDxhcHAtbWFyay11bmlkZW50aWZpZWQtcGF5bWVudCAqbmdJZj1cInZpZXdOYW1lID09PSAndW5pZGVudGlmaWVkUGFnZSdcIlxuICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiPjwvYXBwLW1hcmstdW5pZGVudGlmaWVkLXBheW1lbnQ+XG4gICAgPGFwcC1tYXJrLXVuc29saWNpdGVkLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3Vuc29saWNpdGVkUGFnZSdcIlxuICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiPjwvYXBwLW1hcmstdW5zb2xpY2l0ZWQtcGF5bWVudD5cbiAgICA8YXBwLWFsbG9jYXRlLXBheW1lbnRzICpuZ0lmPVwidmlld05hbWUgPT09ICdhbGxvY2F0ZS1wYXltZW50cydcIlxuICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIlxuICAgID48L2FwcC1hbGxvY2F0ZS1wYXltZW50cz5cbiAgICA8Y2NwYXktZmVlLXN1bW1hcnkgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ2ZlZS1zdW1tYXJ5J1wiXG4gICAgICBbY2NkQ2FzZU51bWJlcl09XCJDQ0RfQ0FTRV9OVU1CRVJcIlxuICAgICAgW3BheW1lbnRHcm91cFJlZl09XCJwYXltZW50R3JvdXBSZWZlcmVuY2VcIlxuICAgICAgW2lzVHVybk9mZl09XCJJU1RVUk5PRkZcIlxuICAgICAgW2Nhc2VUeXBlXT1cIkNBU0VUWVBFXCJcbiAgICAgID48L2NjcGF5LWZlZS1zdW1tYXJ5PlxuICAgIDxjY3BheS1yZXBvcnRzICpuZ0lmPVwidmlld05hbWUgPT09ICdyZXBvcnRzJ1wiXG4gICAgW0lTUEFZTUVOVFNUQVRVU0VOQUJMRURdID0gXCJJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXCJcbiAgICA+PC9jY3BheS1yZXBvcnRzPlxuICAgIGAsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogJ1BBWU1FTlRfTElCJywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGF5bWVudExpYkNvbXBvbmVudCkgfV1cbn0pXG5cbmV4cG9ydCBjbGFzcyBQYXltZW50TGliQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdBUElfUk9PVCcpIEFQSV9ST09UOiBzdHJpbmc7XG4gIEBJbnB1dCgnQlVMS1NDQU5fQVBJX1JPT1QnKSBCVUxLU0NBTl9BUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ1JFRlVORFNfQVBJX1JPT1QnKSBSRUZVTkRTX0FQSV9ST09UOiBzdHJpbmc7XG4gIEBJbnB1dCgnTk9USUZJQ0FUSU9OX0FQSV9ST09UJykgTk9USUZJQ0FUSU9OX0FQSV9ST09UOiBzdHJpbmc7XG4gIEBJbnB1dCgnQ0FSRFBBWU1FTlRSRVRVUk5VUkwnKSBDQVJEUEFZTUVOVFJFVFVSTlVSTDogc3RyaW5nO1xuICBASW5wdXQoJ0NDRF9DQVNFX05VTUJFUicpIENDRF9DQVNFX05VTUJFUjogc3RyaW5nO1xuICBASW5wdXQoJ0VYQ19SRUZFUkVOQ0UnKSBFWENfUkVGRVJFTkNFOiBzdHJpbmc7XG4gIEBJbnB1dCgnUEFZTUVOVF9NRVRIT0QnKSBQQVlNRU5UX01FVEhPRDogc3RyaW5nO1xuICBASW5wdXQoJ1ZJRVcnKSBWSUVXOiBzdHJpbmc7XG4gIEBJbnB1dCgnVklFV1NFUlZJQ0UnKSBWSUVXU0VSVklDRTogc3RyaW5nO1xuICBASW5wdXQoJ1BBWU1FTlRfR1JPVVBfUkVGJykgUEFZTUVOVF9HUk9VUF9SRUY/OiBzdHJpbmc7XG4gIEBJbnB1dCgnVEFLRVBBWU1FTlQnKSBUQUtFUEFZTUVOVDogYm9vbGVhbjtcbiAgQElucHV0KCdTRVJWSUNFUkVRVUVTVCcpIFNFUlZJQ0VSRVFVRVNUOiBzdHJpbmc7XG4gIEBJbnB1dCgnRENOX05VTUJFUicpIERDTl9OVU1CRVI6IHN0cmluZztcbiAgQElucHV0KCdTRUxFQ1RFRF9PUFRJT04nKSBTRUxFQ1RFRF9PUFRJT046IHN0cmluZztcbiAgQElucHV0KCdJU0JTRU5BQkxFJykgSVNCU0VOQUJMRTogQm9vbGVhbjtcbiAgQElucHV0KCdJU1NGRU5BQkxFJykgSVNTRkVOQUJMRTogYm9vbGVhbjtcbiAgQElucHV0KCdJU1RVUk5PRkYnKSBJU1RVUk5PRkY6IGJvb2xlYW47XG4gIEBJbnB1dCgnQ0FTRVRZUEUnKSBDQVNFVFlQRTogc3RyaW5nO1xuICBASW5wdXQoJ0lTUEFZTUVOVFNUQVRVU0VOQUJMRUQnKSBJU1BBWU1FTlRTVEFUVVNFTkFCTEVEOiBib29sZWFuO1xuICBASW5wdXQoJ3Jvb3RVcmwnKSByb290VXJsOiBib29sZWFuO1xuICBASW5wdXQoJ1JFRlVORExJU1QnKSBSRUZVTkRMSVNUOiBzdHJpbmc7XG4gIEBJbnB1dCgnVVNFUklEJykgVVNFUklEOiBzdHJpbmc7XG4gIEBJbnB1dCgnTE9HR0VESU5VU0VSUk9MRVMnKSBMT0dHRURJTlVTRVJST0xFUzogYW55W107XG4gIEBJbnB1dCgnTE9HR0VESU5VU0VSRU1BSUwnKSBMT0dHRURJTlVTRVJFTUFJTDogc3RyaW5nO1xuICBASW5wdXQoJ2lzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZScpIGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZTogYm9vbGVhbjtcblxuICBwYXltZW50TWV0aG9kOiBzdHJpbmc7XG4gIGJzcGF5bWVudGRjbjogc3RyaW5nO1xuICB1blByb2Nlc3NlZFBheW1lbnRTZXJ2aWNlSWQ6IHN0cmluZyA9IG51bGw7XG4gIHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nO1xuICBwYXltZW50UmVmZXJlbmNlOiBzdHJpbmc7XG4gIHJlZnVuZFJlZmVyZW5jZTogc3RyaW5nO1xuICBpc0Zyb21QYXlCdWJibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVmdW5kbGlzdHNvdXJjZTogYW55O1xuICB2aWV3TmFtZTogc3RyaW5nO1xuICBpc1R1cm5PZmY6IGJvb2xlYW47XG4gIGNhc2VUeXBlOiBzdHJpbmc7XG4gIHVuUHJvY2Vzc2VkUGF5bWVudDogSUJTUGF5bWVudHMgPSBudWxsO1xuICBpc1JlZnVuZFN0YXR1c1ZpZXc6IGJvb2xlYW47XG4gIGlzUmVkaXJlY3RGcm9tQ2FzZVRyYW5zYWN0aW9uUGFnZTogc3RyaW5nO1xuICBpc0NhbGxGcm9tUmVmdW5kTGlzdDogYm9vbGVhbjtcbiAgaXNGcm9tUmVmdW5kU3RhdHVzUGFnZTogYm9vbGVhbjtcbiAgaXNjYW5jZWxDbGlja2VkOiBib29sZWFuO1xuICBpc0Zyb21QYXltZW50RGV0YWlsUGFnZTogYm9vbGVhbjtcbiAgcGJhUGF5T3JkZXJSZWY6IElQYXltZW50O1xuICBpc1Rha2VQYXltZW50OiBib29sZWFuO1xuXG4gIG9yZGVyRGV0YWlsOiBhbnlbXTtcbiAgb3JkZXJSZWY6IHN0cmluZztcbiAgb3JkZXJTdGF0dXM6IHN0cmluZztcbiAgb3JkZXJQYXJ0eTogc3RyaW5nO1xuICBvcmRlckNyZWF0ZWQ6IERhdGU7XG4gIG9yZGVyQ0NERXZlbnQ6IHN0cmluZztcbiAgc2VydmljZVJlcXVlc3RWYWx1ZTogc3RyaW5nO1xuICBvcmRlckFkZEJ0bkVuYWJsZTogYm9vbGVhbjtcbiAgb3JkZXJGZWVzVG90YWw6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyUmVtaXNzaW9uVG90YWw6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyVG90YWxQYXltZW50czogbnVtYmVyID0gMC4wMDtcbiAgb3JkZXJQZW5kaW5nUGF5bWVudHM6IG51bWJlciA9IDAuMDA7XG5cbiAgcGF5bWVudEdyb3VwOklQYXltZW50R3JvdXBcbiAgb3ZlclBheW1lbnRBbW91bnQ6IG51bWJlciA9IDAuMDA7XG4gIHJlZnVuZHM6IElSZWZ1bmRMaXN0W107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXltZW50TGliU2VydmljZTogUGF5bWVudExpYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UpIHsgfVxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5wYXltZW50TGliU2VydmljZS5zZXRBcGlSb290VXJsKHRoaXMuQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0QnVsa1NjYW5BcGlSb290VXJsKHRoaXMuQlVMS1NDQU5fQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0UmVmdW5kbmRzQXBpUm9vdFVybCh0aGlzLlJFRlVORFNfQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0Tm90aWNhdGlvbkFwaVJvb3RVcmwodGhpcy5OT1RJRklDQVRJT05fQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0Q2FyZFBheW1lbnRSZXR1cm5VcmwodGhpcy5DQVJEUEFZTUVOVFJFVFVSTlVSTCk7XG5cbiAgICBpZiAodGhpcy5MT0dHRURJTlVTRVJST0xFUy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldFVzZXJSb2xlc0xpc3QodGhpcy5MT0dHRURJTlVTRVJST0xFUyk7XG4gICAgfVxuICAgIGlmICh0aGlzLlBBWU1FTlRfR1JPVVBfUkVGKSB7XG4gICAgICB0aGlzLnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IHRoaXMuUEFZTUVOVF9HUk9VUF9SRUY7XG4gICAgfVxuICAgIGlmICh0aGlzLkRDTl9OVU1CRVIpIHtcbiAgICAgIHRoaXMuYnNwYXltZW50ZGNuID0gdGhpcy5EQ05fTlVNQkVSO1xuICAgIH1cbiAgICBpZiAodGhpcy5SRUZVTkRMSVNUID09PSBcInRydWVcIikge1xuICAgICAgdGhpcy5WSUVXID0gJ3JlZnVuZC1saXN0JztcbiAgICAgIHRoaXMudmlld05hbWUgPSB0aGlzLlZJRVc7XG4gICAgfVxuICAgIGlmICh0aGlzLlZJRVcgPT09ICdmZWUtc3VtbWFyeScpIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSAnZmVlLXN1bW1hcnknO1xuICAgIH0gZWxzZSBpZiAodGhpcy5WSUVXICE9PSAncmVwb3J0cycgJiYgdGhpcy5WSUVXICE9PSAncmVmdW5kLWxpc3QnKSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3TmFtZSA9IHRoaXMuVklFVztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1Rha2VQYXltZW50KSB7XG4gICAgICB0aGlzLlRBS0VQQVlNRU5UID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuQVBJX1JPT1QgPT0gJ2FwaS9wYXltZW50LWhpc3RvcnknKSB7XG4gICAgICB0aGlzLmlzRnJvbVBheUJ1YmJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVmdW5kcyBsaWJzIHNlY3Rpb24uXG5cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgb3V0IGlmIHRoZSBjdXJyZW50IHJlZnVuZHMgbGlzdCBhcmUgaW4gcHJvZ3Jlc3MgZm9yIHRoZSBmZWUgcGFzc2VkIGFzIHBhcmFtZXRlclxuICAgKiBAcGFyYW0gZmVlIHRoaXMgaXMgdGhlIGZlZSB1c2VkIHRvIGZpbmQgb3V0IGlmIHRoZSByZWZ1bmRzIGFyZSBpbiBwcm9ncmVzcy5cbiAgICovXG4gIGlzVGhlQ3VycmVudFJlZnVuZEluUHJvY2Vzc0ZvclRoaXNGZWUoZmVlOiBJRmVlKTogYm9vbGVhbntcbiAgICAvLyBObyByZWZ1bmRzXG4gICAgaWYgKHRoaXMucmVmdW5kcyA9PSBudWxsIHx8IHRoaXMucmVmdW5kcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICF0aGlzLmlzVGhlQ3VycmVudFJlZnVuZFJlamVjdGVkRm9yVGhlRmVlKGZlZS5pZC50b1N0cmluZygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBvdXQgaWYgaW4gY3VycmVudCBsaXN0IG9mIHJlZnVuZHMgYWxsIHJlZnVuZHMgaGFzIGJlZW4gcmVqZWN0ZWRcbiAgICogZm9yIHRoZSBmZWUgcGFzc2VkIGFzIHBhcmFtZXRlci5cbiAgICogQHBhcmFtIGZlZUNvZGUgdGhpcyBpcyB0aGUgZmVlIGNvZGUgdXNlZCB0byBmaW5kIG91dCBhbGwgcmVmdW5kcyByZWplY3RlZCByZWZ1bmRzLlxuICAgKi9cbiAgaXNUaGVDdXJyZW50UmVmdW5kUmVqZWN0ZWRGb3JUaGVGZWUoZmVlQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBsZXQgcmVmdW5kc0J5RmVlID0gdGhpcy5yZWZ1bmRzLmZpbHRlcihyZWZ1bmQgPT4gcmVmdW5kLmZlZV9pZHMgPT09IGZlZUNvZGUpO1xuICAgIGxldCByZWZ1bmRzQnlGZWVBbmRSZWplY3RlZCA9IHRoaXMucmVmdW5kcy5maWx0ZXIocmVmdW5kID0+IHJlZnVuZC5yZWZ1bmRfc3RhdHVzLm5hbWUgPT09ICdSZWplY3RlZCcpO1xuXG4gICAgLy8gUmVmdW5kcyA+IDAgIGFuZCBvdmVyUGF5bWVudCAtLT4gcmVmdW5kcyBpbiBwcm9jZXNzIG9yIFJlamVjdGVkLlxuICAgIGlmIChyZWZ1bmRzQnlGZWUubGVuZ3RoID09PSByZWZ1bmRzQnlGZWVBbmRSZWplY3RlZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG59XG4iXX0=
@@ -73,9 +73,14 @@ export class XlFileService {
73
73
  for (let i = 0; i < headers.length; i++) {
74
74
  worksheet.columns[i].key = headers[i];
75
75
  }
76
- let obj = Object;
77
76
  for (let i = 0; i < json.length; i++) {
78
- worksheet.addRow(json[i]);
77
+ let row = json[i];
78
+ for (let key in row) {
79
+ if (row[key] && typeof row[key] === 'string') {
80
+ row[key] = this.sanitizeString(row[key]);
81
+ }
82
+ }
83
+ worksheet.addRow(row);
79
84
  }
80
85
  return worksheet;
81
86
  }
@@ -155,10 +160,22 @@ export class XlFileService {
155
160
  worksheet.getCell('K1').value = "Updated Name";
156
161
  return worksheet;
157
162
  }
163
+ sanitizeString(value) {
164
+ if (value) {
165
+ // Remove tabs, carriage returns, and newlines
166
+ value = value.replace(/^[\t\r\n@]+|[\t\r\n@]/g, (match, offset) => offset === 0 ? '' : ' ');
167
+ // Check if the first character is '=' and remove it
168
+ if (value.charAt(0) === '=') {
169
+ value = value.substring(1);
170
+ }
171
+ return value;
172
+ }
173
+ return '';
174
+ }
158
175
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: XlFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
159
176
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: XlFileService });
160
177
  }
161
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: XlFileService, decorators: [{
162
179
  type: Injectable
163
180
  }], ctorParameters: () => [] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGwtZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy94bC1maWxlL3hsLWZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDOztBQUV4QyxNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFHaEMsTUFBTSxPQUFPLGFBQWE7SUFDeEIsZ0JBQWdCLENBQUM7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7UUFDekQsSUFBSSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFJLElBQUksRUFBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxDQUFDLFdBQVcsRUFBQyxtQkFBbUIsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLGlCQUFpQixFQUFDLG1CQUFtQixFQUFDLGFBQWEsRUFBQyxXQUFXLEVBQUMsZ0JBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0osU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDO2FBQU0sSUFBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFJLElBQUksRUFBQyxDQUFDO1lBQ3BELE9BQU8sR0FBRyxDQUFDLGlCQUFpQixFQUFDLG1CQUFtQixFQUFDLGVBQWUsRUFBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLFdBQVcsRUFBQyxtQkFBbUIsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLGdCQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pLLFNBQVMsR0FBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekQsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELFNBQVMsR0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLElBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxLQUFJLElBQUksRUFBQyxDQUFDO1lBQzlELE9BQU8sR0FBRyxDQUFDLGlCQUFpQixFQUFDLG1CQUFtQixFQUFDLG1CQUFtQixFQUFDLGtCQUFrQixFQUFDLG1CQUFtQixFQUFDLHlCQUF5QixFQUFDLG9CQUFvQixFQUFDLG1CQUFtQixFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsYUFBYSxFQUFDLFdBQVcsRUFBQyxnQkFBZ0IsRUFBQyxRQUFRLENBQUMsQ0FBQztZQUN6UCxTQUFTLEdBQUksSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xFLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxTQUFTLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7YUFBTSxJQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSSxJQUFJLEVBQUMsQ0FBQztZQUN4RCxPQUFPLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQyxlQUFlLEVBQUMseUJBQXlCLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxtQkFBbUIsRUFBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxZQUFZLEVBQUMsWUFBWSxFQUFDLHNCQUFzQixFQUFDLG9CQUFvQixFQUFDLGtCQUFrQixFQUFDLGVBQWUsRUFBQyxhQUFhLENBQUMsQ0FBQztZQUNoUixTQUFTLEdBQUksSUFBSSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVELFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxTQUFTLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxHQUFHLENBQUMsaUJBQWlCLEVBQUMsbUJBQW1CLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLGdCQUFnQixFQUFDLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDek0sU0FBUyxHQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsU0FBUyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDdEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxhQUFhLEdBQUcsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUUsU0FBNEIsRUFBQyxJQUFRO1FBQzNELElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxHQUFHLEdBQVEsTUFBTSxDQUFDO1FBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLElBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBQyxDQUFDO29CQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixDQUFDO2dCQUNELGVBQWUsQ0FBQyxDQUFDLENBQUM7b0JBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07d0JBQzlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUM7d0JBQ2pCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBQyxDQUFDO29CQUNqQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7UUFDRCxTQUFTLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUM3QixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8sVUFBVSxDQUFFLFNBQTRCLEVBQUMsSUFBUSxFQUFDLE9BQU87UUFDL0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksR0FBRyxHQUFRLE1BQU0sQ0FBQztRQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyx3QkFBd0IsQ0FBRSxTQUE0QjtRQUM1RCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDNUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDcEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUNoRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztRQUNsRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztRQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDOUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDO1FBQ2pELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN6QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sMkJBQTJCLENBQUUsU0FBNEI7UUFDL0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUM7UUFDbEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDcEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMxQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDOUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDO1FBQ3BELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7UUFDaEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDakQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxvQ0FBb0MsQ0FBRSxTQUE0QjtRQUN4RSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztRQUNsRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztRQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztRQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztRQUNuRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztRQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztRQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDcEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUNoRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDOUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDO1FBQ2pELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN6QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sOEJBQThCLENBQUUsU0FBNEI7UUFDbEUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDcEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLHlCQUF5QixDQUFDO1FBQzFELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUN4QyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDcEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDakQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUM7UUFDbEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1FBQzdDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUM3QyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxzQkFBc0IsQ0FBQztRQUN2RCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQztRQUNyRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztRQUNuRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7UUFDaEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQzlDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyx5QkFBeUIsQ0FBRSxTQUE0QjtRQUM3RCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztRQUNsRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztRQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyw0QkFBNEIsQ0FBQztRQUM3RCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDakQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUNoRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQUNqRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDekMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQzlDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO3VHQTVKVSxhQUFhOzJHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBFeGNlbEpTIGZyb20gJ2V4Y2VsanMnO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFhsRmlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdmFyIHdvcmtib29rID0gbmV3IEV4Y2VsSlMuV29ya2Jvb2soKTtcbiAgICB2YXIgd29ya3NoZWV0ID0gd29ya2Jvb2suYWRkV29ya3NoZWV0KGV4Y2VsRmlsZU5hbWUpO1xuICAgIHZhciBoZWFkZXJzID0gW107XG5cbiAgICBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdEYXRhX0xvc3MnKSE9PSBudWxsKXtcbiAgICAgIGhlYWRlcnMgPSBbJ2xvc3NfcmVzcCcsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdkYXRlX2JhbmtlZCcsJ2JnY19iYXRjaCcsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J107XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLnNldERhdGFMb3NzUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmFkZFJvd0RhdGEod29ya3NoZWV0LGpzb24saGVhZGVycyk7XG4gICAgfSBlbHNlIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ1VucHJvY2Vzc2VkJykhPT0gbnVsbCl7XG4gICAgICBoZWFkZXJzID0gWydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2V4Y2VwdGlvbl9yZWYnLCdjY2RfcmVmJywnZGF0ZV9iYW5rZWQnLCdiZ2NfYmF0Y2gnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J107XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRVbnByb2Nlc3NlZFJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuYWRkUm93RGF0YSh3b3Jrc2hlZXQsanNvbixoZWFkZXJzKTtcbiAgICB9IGVsc2UgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnUHJvY2Vzc2VkX1VuYWxsb2NhdGVkJykhPT0gbnVsbCl7XG4gICAgICBoZWFkZXJzID0gWydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2FsbG9jYXRpb25fc3RhdHVzJywncmVjZWl2aW5nX29mZmljZScsJ2FsbG9jYXRpb25fcmVhc29uJywnY2NkX2V4Y2VwdGlvbl9yZWZlcmVuY2UnLCdjY2RfY2FzZV9yZWZlcmVuY2UnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ2RhdGVfYmFua2VkJywnYmdjX2JhdGNoJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFByb2Nlc3NlZFVuYWxsb2NhdGVkUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5hZGRSb3dEYXRhKHdvcmtzaGVldCxqc29uLGhlYWRlcnMpO1xuICAgIH0gZWxzZSBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdQYXltZW50IGZhaWx1cmUnKSE9PSBudWxsKXtcbiAgICAgIGhlYWRlcnMgPSBbJ3BheW1lbnRfcmVmZXJlbmNlJywnY2NkX3JlZmVyZW5jZScsJ2RvY3VtZW50X2NvbnRyb2xfbnVtYmVyJywnb3JnX2lkJywnc2VydmljZV9uYW1lJywnZmFpbHVyZV9yZWZlcmVuY2UnLCdmYWlsdXJlX3JlYXNvbicsJ2Rpc3B1dGVkX2Ftb3VudCcsJ2V2ZW50X25hbWUnLCdldmVudF9kYXRlJywncmVwcmVzZW50bWVudF9zdGF0dXMnLCdyZXByZXNlbnRtZW50X2RhdGUnLCdyZWZ1bmRfcmVmZXJlbmNlJywncmVmdW5kX2Ftb3VudCcsJ3JlZnVuZF9kYXRlJ107XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRQYXltZW50RmFpbHVyZVJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuYWRkUm93RGF0YSh3b3Jrc2hlZXQsanNvbixoZWFkZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVycyA9IFsncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdzdXJwbHVzX3Nob3J0ZmFsbCcsJ2JhbGFuY2UnLCdwYXltZW50X2Ftb3VudCcsJ2NjZF9jYXNlX3JlZmVyZW5jZScsICdjY2RfZXhjZXB0aW9uX3JlZmVyZW5jZScsICdwcm9jZXNzZWRfZGF0ZScsICdyZWFzb24nLCAnZXhwbGFuYXRpb24nLCAndXNlcl9uYW1lJ107XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRTaG9ydEZhbGxSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLmFkZFJvd0RhdGEod29ya3NoZWV0LGpzb24saGVhZGVycyk7XG4gICAgfVxuXG4gICAgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpLnRoZW4oKGJ1ZmZlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBFWENFTF9UWVBFIH0pO1xuICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMoYmxvYiwgYCR7ZXhjZWxGaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0ZpdENvbHVtbnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQsanNvbjphbnkpIDogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIGxldCBvYmplY3RNYXhMZW5ndGggPSBbXTtcbiAgICBsZXQgQ29sV2lkdGggPSBbXTtcbiAgICBsZXQgb2JqID0gPGFueT5PYmplY3Q7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGpzb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IHZhbHVlID0gb2JqLnZhbHVlcyhqc29uW2ldKTtcbiAgICAgICAgbGV0IGtleSA9IG9iai5rZXlzKGpzb25baV0pO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgaWYodmFsdWVbal0gPT09IG51bGwpe1xuICAgICAgICAgICAgdmFsdWVbal0gPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID1cbiAgICAgICAgICAgIGtleVtqXS5sZW5ndGggPj0gdmFsdWVbal0ubGVuZ3RoXG4gICAgICAgICAgICAgID8ga2V5W2pdLmxlbmd0aCsyXG4gICAgICAgICAgICAgIDogdmFsdWVbal0ubGVuZ3RoKzE7XG4gICAgICAgICAgICAgIGlmKCB2YWx1ZVtqXS5sZW5ndGggPT09IHVuZGVmaW5lZCl7XG4gICAgICAgICAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID0gIGtleVtqXS5sZW5ndGgrMjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICBDb2xXaWR0aC5wdXNoKHsnd2lkdGgnOiArb2JqZWN0TWF4TGVuZ3RoW2pdfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHdvcmtzaGVldC5jb2x1bW5zID0gQ29sV2lkdGg7XG4gICAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSb3dEYXRhICh3b3Jrc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LGpzb246YW55LGhlYWRlcnMpIDogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVhZGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgd29ya3NoZWV0LmNvbHVtbnNbaV0ua2V5ID0gaGVhZGVyc1tpXTtcbiAgICB9XG4gICAgbGV0IG9iaiA9IDxhbnk+T2JqZWN0O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHdvcmtzaGVldC5hZGRSb3coanNvbltpXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREYXRhTG9zc1JlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQpOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0ExJykudmFsdWUgPSBcIkxvc3NfUmVzcFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdCMScpLnZhbHVlID0gXCJQYXltZW50X0Fzc2V0X0RDTlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdDMScpLnZhbHVlID0gXCJFbnZlbG9wZV9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiQkdDX0JhdGNoXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkFtb3VudFwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIHNldFVucHJvY2Vzc2VkUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0IxJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0MxJykudmFsdWUgPSBcIkV4Y2VwdGlvbl9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiQ0NEX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJEYXRlX0JhbmtlZFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdGMScpLnZhbHVlID0gXCJCR0NfQmF0Y2hcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSjEnKS52YWx1ZSA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSzEnKS52YWx1ZSA9IFwiQW1vdW50XCI7XG4gICAgcmV0dXJuIHdvcmtzaGVldDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvY2Vzc2VkVW5hbGxvY2F0ZWRSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0KTogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdBMScpLnZhbHVlID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQjEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQzEnKS52YWx1ZSA9IFwiQWxsb2NhdGlvbl9TdGF0dXNcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiUmVjZWl2aW5nX09mZmljZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJBbGxvY2F0aW9uX1JlYXNvblwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdGMScpLnZhbHVlID0gXCJDQ0RfRXhjZXB0aW9uX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdHMScpLnZhbHVlID0gXCJDQ0RfQ2FzZV9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSTEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSzEnKS52YWx1ZSA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnTDEnKS52YWx1ZSA9IFwiQkdDX0JhdGNoXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ00xJykudmFsdWUgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ04xJykudmFsdWUgPSBcIkFtb3VudFwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIHNldFBheW1lbnRGYWlsdXJlUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUGF5bWVudCByZWZlcmVuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQjEnKS52YWx1ZSA9IFwiQ0NEIHJlZmVyZW5jZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdDMScpLnZhbHVlID0gXCJEb2N1bWVudCBDb250cm9sIE51bWJlclwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdEMScpLnZhbHVlID0gXCJPcmdJRFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJTZXJ2aWNlIG5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiRmFpbHVyZSByZWZlcmVuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiRmFpbHVyZSByZWFzb25cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiRGlzcHV0ZWQgYW1vdW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIkV2ZW50IG5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSjEnKS52YWx1ZSA9IFwiRXZlbnQgZGF0ZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdLMScpLnZhbHVlID0gXCJSZXByZXNlbnRtZW50IHN0YXR1c1wiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdMMScpLnZhbHVlID0gXCJSZXByZXNlbnRtZW50IGRhdGVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnTTEnKS52YWx1ZSA9IFwiUmVmdW5kIHJlZmVyZW5jZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdOMScpLnZhbHVlID0gXCJSZWZ1bmQgYW1vdW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ08xJykudmFsdWUgPSBcIlJlZnVuZCBkYXRlXCI7XG4gICAgcmV0dXJuIHdvcmtzaGVldDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2hvcnRGYWxsUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0IxJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0MxJykudmFsdWUgPSBcIk92ZXIgUGF5bWVudF9VbmRlciBQYXltZW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0QxJykudmFsdWUgPSBcIkJhbGFuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRTEnKS52YWx1ZSA9IFwiUGF5bWVudF9BbW91bnRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiQ0NEX0Nhc2VfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0cxJykudmFsdWUgPSBcIkV4Y2VwdGlvbl9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiUHJvY2Vzc2VkX0RhdGVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSTEnKS52YWx1ZSA9IFwiUmVhc29uXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkV4cGxhbmF0aW9uXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0sxJykudmFsdWUgPSBcIlVwZGF0ZWQgTmFtZVwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxufVxuIl19
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGwtZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy94bC1maWxlL3hsLWZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDOztBQUV4QyxNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFHaEMsTUFBTSxPQUFPLGFBQWE7SUFDeEIsZ0JBQWdCLENBQUM7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7UUFDekQsSUFBSSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFJLElBQUksRUFBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxDQUFDLFdBQVcsRUFBQyxtQkFBbUIsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLGlCQUFpQixFQUFDLG1CQUFtQixFQUFDLGFBQWEsRUFBQyxXQUFXLEVBQUMsZ0JBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0osU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsU0FBUyxHQUFHLElBQUksQ0FBQyxV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RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7dUdBOUtRLGFBQWE7MkdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIEV4Y2VsSlMgZnJvbSAnZXhjZWxqcyc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5cbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWGxGaWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB2YXIgd29ya2Jvb2sgPSBuZXcgRXhjZWxKUy5Xb3JrYm9vaygpO1xuICAgIHZhciB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoZXhjZWxGaWxlTmFtZSk7XG4gICAgdmFyIGhlYWRlcnMgPSBbXTtcblxuICAgIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ0RhdGFfTG9zcycpIT09IG51bGwpe1xuICAgICAgaGVhZGVycyA9IFsnbG9zc19yZXNwJywncGF5bWVudF9hc3NldF9kY24nLCdlbnZfcmVmJywnZW52X2l0ZW0nLCdyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2RhdGVfYmFua2VkJywnYmdjX2JhdGNoJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuc2V0RGF0YUxvc3NSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYWRkUm93RGF0YSh3b3Jrc2hlZXQsanNvbixoZWFkZXJzKTtcbiAgICB9IGVsc2UgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnVW5wcm9jZXNzZWQnKSE9PSBudWxsKXtcbiAgICAgIGhlYWRlcnMgPSBbJ3Jlc3Bfc2VydmljZV9pZCcsJ3Jlc3Bfc2VydmljZV9uYW1lJywnZXhjZXB0aW9uX3JlZicsJ2NjZF9yZWYnLCdkYXRlX2JhbmtlZCcsJ2JnY19iYXRjaCcsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFVucHJvY2Vzc2VkUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5hZGRSb3dEYXRhKHdvcmtzaGVldCxqc29uLGhlYWRlcnMpO1xuICAgIH0gZWxzZSBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdQcm9jZXNzZWRfVW5hbGxvY2F0ZWQnKSE9PSBudWxsKXtcbiAgICAgIGhlYWRlcnMgPSBbJ3Jlc3Bfc2VydmljZV9pZCcsJ3Jlc3Bfc2VydmljZV9uYW1lJywnYWxsb2NhdGlvbl9zdGF0dXMnLCdyZWNlaXZpbmdfb2ZmaWNlJywnYWxsb2NhdGlvbl9yZWFzb24nLCdjY2RfZXhjZXB0aW9uX3JlZmVyZW5jZScsJ2NjZF9jYXNlX3JlZmVyZW5jZScsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywnZGF0ZV9iYW5rZWQnLCdiZ2NfYmF0Y2gnLCdwYXltZW50X21ldGhvZCcsJ2Ftb3VudCddO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0UHJvY2Vzc2VkVW5hbGxvY2F0ZWRSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLmFkZFJvd0RhdGEod29ya3NoZWV0LGpzb24saGVhZGVycyk7XG4gICAgfSBlbHNlIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ1BheW1lbnQgZmFpbHVyZScpIT09IG51bGwpe1xuICAgICAgaGVhZGVycyA9IFsncGF5bWVudF9yZWZlcmVuY2UnLCdjY2RfcmVmZXJlbmNlJywnZG9jdW1lbnRfY29udHJvbF9udW1iZXInLCdvcmdfaWQnLCdzZXJ2aWNlX25hbWUnLCdmYWlsdXJlX3JlZmVyZW5jZScsJ2ZhaWx1cmVfcmVhc29uJywnZGlzcHV0ZWRfYW1vdW50JywnZXZlbnRfbmFtZScsJ2V2ZW50X2RhdGUnLCdyZXByZXNlbnRtZW50X3N0YXR1cycsJ3JlcHJlc2VudG1lbnRfZGF0ZScsJ3JlZnVuZF9yZWZlcmVuY2UnLCdyZWZ1bmRfYW1vdW50JywncmVmdW5kX2RhdGUnXTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFBheW1lbnRGYWlsdXJlUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5hZGRSb3dEYXRhKHdvcmtzaGVldCxqc29uLGhlYWRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkZXJzID0gWydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ3N1cnBsdXNfc2hvcnRmYWxsJywnYmFsYW5jZScsJ3BheW1lbnRfYW1vdW50JywnY2NkX2Nhc2VfcmVmZXJlbmNlJywgJ2NjZF9leGNlcHRpb25fcmVmZXJlbmNlJywgJ3Byb2Nlc3NlZF9kYXRlJywgJ3JlYXNvbicsICdleHBsYW5hdGlvbicsICd1c2VyX25hbWUnXTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFNob3J0RmFsbFJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuYWRkUm93RGF0YSh3b3Jrc2hlZXQsanNvbixoZWFkZXJzKTtcbiAgICB9XG5cbiAgICB3b3JrYm9vay54bHN4LndyaXRlQnVmZmVyKCkudGhlbigoYnVmZmVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7IHR5cGU6IEVYQ0VMX1RZUEUgfSk7XG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBgJHtleGNlbEZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OfWApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRvRml0Q29sdW1ucyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCxqc29uOmFueSkgOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgbGV0IG9iamVjdE1heExlbmd0aCA9IFtdO1xuICAgIGxldCBDb2xXaWR0aCA9IFtdO1xuICAgIGxldCBvYmogPSA8YW55Pk9iamVjdDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgdmFsdWUgPSBvYmoudmFsdWVzKGpzb25baV0pO1xuICAgICAgICBsZXQga2V5ID0gb2JqLmtleXMoanNvbltpXSk7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBpZih2YWx1ZVtqXSA9PT0gbnVsbCl7XG4gICAgICAgICAgICB2YWx1ZVtqXSA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYmplY3RNYXhMZW5ndGhbal0gPVxuICAgICAgICAgICAga2V5W2pdLmxlbmd0aCA+PSB2YWx1ZVtqXS5sZW5ndGhcbiAgICAgICAgICAgICAgPyBrZXlbal0ubGVuZ3RoKzJcbiAgICAgICAgICAgICAgOiB2YWx1ZVtqXS5sZW5ndGgrMTtcbiAgICAgICAgICAgICAgaWYoIHZhbHVlW2pdLmxlbmd0aCA9PT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgICBvYmplY3RNYXhMZW5ndGhbal0gPSAga2V5W2pdLmxlbmd0aCsyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgIENvbFdpZHRoLnB1c2goeyd3aWR0aCc6ICtvYmplY3RNYXhMZW5ndGhbal19KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgd29ya3NoZWV0LmNvbHVtbnMgPSBDb2xXaWR0aDtcbiAgICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIGFkZFJvd0RhdGEgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQsanNvbjphbnksaGVhZGVycykgOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB3b3Jrc2hlZXQuY29sdW1uc1tpXS5rZXkgPSBoZWFkZXJzW2ldO1xuICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgcm93ID0ganNvbltpXTtcbiAgICAgICAgZm9yIChsZXQga2V5IGluIHJvdykge1xuICAgICAgICAgICAgICBpZiAocm93W2tleV0gJiYgdHlwZW9mIHJvd1trZXldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJvd1trZXldID0gdGhpcy5zYW5pdGl6ZVN0cmluZyhyb3dba2V5XSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgd29ya3NoZWV0LmFkZFJvdyhyb3cpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdvcmtzaGVldDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGF0YUxvc3NSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0KTogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdBMScpLnZhbHVlID0gXCJMb3NzX1Jlc3BcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQjEnKS52YWx1ZSA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQzEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0QxJykudmFsdWUgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRTEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0YxJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0cxJykudmFsdWUgPSBcIkRhdGVfQmFua2VkXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0gxJykudmFsdWUgPSBcIkJHQ19CYXRjaFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdJMScpLnZhbHVlID0gXCJQYXltZW50X01ldGhvZFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdKMScpLnZhbHVlID0gXCJBbW91bnRcIjtcbiAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRVbnByb2Nlc3NlZFJlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQpOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0ExJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBJRFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdCMScpLnZhbHVlID0gXCJSZXNwX1NlcnZpY2UgTmFtZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdDMScpLnZhbHVlID0gXCJFeGNlcHRpb25fUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0QxJykudmFsdWUgPSBcIkNDRF9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRTEnKS52YWx1ZSA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiQkdDX0JhdGNoXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0cxJykudmFsdWUgPSBcIlBheW1lbnRfQXNzZXRfRENOXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0gxJykudmFsdWUgPSBcIkVudmVsb3BlX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdJMScpLnZhbHVlID0gXCJFbnZlbG9wZV9JdGVtXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0sxJykudmFsdWUgPSBcIkFtb3VudFwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIHNldFByb2Nlc3NlZFVuYWxsb2NhdGVkUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0IxJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0MxJykudmFsdWUgPSBcIkFsbG9jYXRpb25fU3RhdHVzXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0QxJykudmFsdWUgPSBcIlJlY2VpdmluZ19PZmZpY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRTEnKS52YWx1ZSA9IFwiQWxsb2NhdGlvbl9SZWFzb25cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiQ0NEX0V4Y2VwdGlvbl9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiQ0NEX0Nhc2VfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0gxJykudmFsdWUgPSBcIlBheW1lbnRfQXNzZXRfRENOXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIkVudmVsb3BlX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdKMScpLnZhbHVlID0gXCJFbnZlbG9wZV9JdGVtXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0sxJykudmFsdWUgPSBcIkRhdGVfQmFua2VkXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0wxJykudmFsdWUgPSBcIkJHQ19CYXRjaFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdNMScpLnZhbHVlID0gXCJQYXltZW50X01ldGhvZFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdOMScpLnZhbHVlID0gXCJBbW91bnRcIjtcbiAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXltZW50RmFpbHVyZVJlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQpOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0ExJykudmFsdWUgPSBcIlBheW1lbnQgcmVmZXJlbmNlXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0IxJykudmFsdWUgPSBcIkNDRCByZWZlcmVuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQzEnKS52YWx1ZSA9IFwiRG9jdW1lbnQgQ29udHJvbCBOdW1iZXJcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiT3JnSURcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRTEnKS52YWx1ZSA9IFwiU2VydmljZSBuYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0YxJykudmFsdWUgPSBcIkZhaWx1cmUgcmVmZXJlbmNlXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0cxJykudmFsdWUgPSBcIkZhaWx1cmUgcmVhc29uXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0gxJykudmFsdWUgPSBcIkRpc3B1dGVkIGFtb3VudFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdJMScpLnZhbHVlID0gXCJFdmVudCBuYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkV2ZW50IGRhdGVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSzEnKS52YWx1ZSA9IFwiUmVwcmVzZW50bWVudCBzdGF0dXNcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnTDEnKS52YWx1ZSA9IFwiUmVwcmVzZW50bWVudCBkYXRlXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ00xJykudmFsdWUgPSBcIlJlZnVuZCByZWZlcmVuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnTjEnKS52YWx1ZSA9IFwiUmVmdW5kIGFtb3VudFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdPMScpLnZhbHVlID0gXCJSZWZ1bmQgZGF0ZVwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIHNldFNob3J0RmFsbFJlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQpOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0ExJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBJRFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdCMScpLnZhbHVlID0gXCJSZXNwX1NlcnZpY2UgTmFtZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdDMScpLnZhbHVlID0gXCJPdmVyIFBheW1lbnRfVW5kZXIgUGF5bWVudFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdEMScpLnZhbHVlID0gXCJCYWxhbmNlXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0UxJykudmFsdWUgPSBcIlBheW1lbnRfQW1vdW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0YxJykudmFsdWUgPSBcIkNDRF9DYXNlX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdHMScpLnZhbHVlID0gXCJFeGNlcHRpb25fUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0gxJykudmFsdWUgPSBcIlByb2Nlc3NlZF9EYXRlXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIlJlYXNvblwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdKMScpLnZhbHVlID0gXCJFeHBsYW5hdGlvblwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdLMScpLnZhbHVlID0gXCJVcGRhdGVkIE5hbWVcIjtcbiAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGl6ZVN0cmluZyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgLy8gUmVtb3ZlIHRhYnMsIGNhcnJpYWdlIHJldHVybnMsIGFuZCBuZXdsaW5lc1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL15bXFx0XFxyXFxuQF0rfFtcXHRcXHJcXG5AXS9nLCAobWF0Y2gsIG9mZnNldCkgPT4gb2Zmc2V0ID09PSAwID8gJycgOiAnICcpO1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzICc9JyBhbmQgcmVtb3ZlIGl0XG4gICAgICAgIGlmICh2YWx1ZS5jaGFyQXQoMCkgPT09ICc9Jykge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbn1cbiJdfQ==