@esolve/ng-esolve-connect 0.17.0 → 0.17.1

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.
@@ -139,19 +139,21 @@ export class EsolvePaymentService {
139
139
  const body = {
140
140
  payment: {
141
141
  cart_id: transaction_id,
142
- payment_methods_id
142
+ payment_methods_id,
143
143
  },
144
144
  };
145
- if (typeof card === 'number') {
146
- body.payment.user_vault_id = card;
147
- }
148
- else {
149
- body.card = {
150
- card_number: card.card_number,
151
- card_name: card.name,
152
- card_cvv: card.cvv,
153
- card_expiry: this.generateExpiry(card),
154
- };
145
+ if (card) {
146
+ if (typeof card === 'number') {
147
+ body.payment.user_vault_id = card;
148
+ }
149
+ else {
150
+ body.card = {
151
+ card_number: card.card_number,
152
+ card_name: card.name,
153
+ card_cvv: card.cvv,
154
+ card_expiry: this.generateExpiry(card),
155
+ };
156
+ }
155
157
  }
156
158
  return this.http
157
159
  .post(`${this.config.api_url}/set-payment.php`, body, {
@@ -223,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
223
225
  type: Inject,
224
226
  args: [ESOLVE_CONNECT_CONFIG]
225
227
  }] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvcGF5bWVudC9lc29sdmUtcGF5bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFRN0QsT0FBTyxFQUNILG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHFCQUFxQixHQUN4QixNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFlbkIsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QztRQUhkLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtJQUNyRCxDQUFDO0lBRUw7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCLENBQUMsT0FBb0M7UUFDekQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTywwQkFBMEIsRUFDaEQsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQzdCO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDaEMsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxnQkFBZ0IsQ0FBQyxjQUFzQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHlCQUF5QixFQUMvQyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUMxQzthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxrQkFBMkI7UUFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixJQUFJLE9BQU8sa0JBQWtCLEtBQUssV0FBVyxFQUFFO1lBQzNDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUN0QyxFQUFFLE1BQU0sRUFBRSxDQUNiO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDaEMsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUNmLGtCQUEwQixFQUMxQixTQUF5QjtRQUV6QixNQUFNLElBQUksR0FBRztZQUNULEtBQUssRUFBRTtnQkFDSCxrQkFBa0I7Z0JBQ2xCLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVztnQkFDbEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUN6QixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzthQUM5QztTQUNKLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsSUFBSSxDQUNELEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUN0QyxJQUFJLEVBQ0o7WUFDSSxPQUFPLEVBQUU7Z0JBQ0wsY0FBYyxFQUFFLGtEQUFrRDthQUNyRTtZQUNELFlBQVksRUFBRSxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxNQUFNO1NBQ2xCLENBQ0o7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUNsRSxhQUFhLEVBQ2IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQ3BELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxRQUFpQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWUsQ0FBQyxFQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxNQUFNLENBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sbUJBQW1CLEVBQ3pDO1lBQ0ksTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2QsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFLE1BQU07U0FDbEIsQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNsQixJQUNJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7Z0JBQ3BDLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQy9CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLEVBQzdDO2dCQUNFLE1BQU0sYUFBYSxDQUFDO2FBQ3ZCO1lBRUQsT0FBTyxJQUFJLFlBQVksQ0FDbkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQzNCLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUN6QixhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDL0IsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQzFDLGNBQWMsRUFDZCxRQUFRLENBQ1gsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVSxDQUNiLGNBQXNCLEVBQ3RCLGtCQUEwQixFQUMxQixJQUE2QjtRQUU3QixNQUFNLElBQUksR0FBeUI7WUFDL0IsT0FBTyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixrQkFBa0I7YUFDckI7U0FDSixDQUFDO1FBRUYsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO2FBQU07WUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHO2dCQUNSLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzthQUN6QyxDQUFDO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsSUFBSSxDQUNELEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGtCQUFrQixFQUN4QyxJQUFJLEVBQ0o7WUFDSSxPQUFPLEVBQUU7Z0JBQ0wsY0FBYyxFQUFFLGtEQUFrRDthQUNyRTtZQUNELFlBQVksRUFBRSxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxNQUFNO1NBQ2xCLENBQ0o7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUNsRSxhQUFhLEVBQ2IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQ2xELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxRQUFpQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLHFCQUFxQixDQUFDLE9BQW9DO1FBQzlELE1BQU0sZUFBZSxHQUEwQixFQUFFLENBQUM7UUFFbEQsSUFBSSxPQUFPLEVBQUU7WUFDVCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFdkQsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN4QztTQUNKO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGlCQUFpQixDQUFDLE9BQTRCO1FBQ2xELE1BQU0sS0FBSyxHQUFzQixFQUFFLENBQUM7UUFFcEMsSUFBSSxPQUFPLEVBQUU7WUFDVCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQ2xDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFDVixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDMUIsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDMUIsQ0FBQztnQkFFRixLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzFCO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssY0FBYyxDQUFDLFNBQXlCO1FBQzVDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFM0QsT0FBTyxHQUFHLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDOztpSEFqU1Esb0JBQW9CLGtCQUVqQixxQkFBcUI7cUhBRnhCLG9CQUFvQixjQUZqQixNQUFNOzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9lcnJvcnMvZXNvbHZlLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzdWx0Lm1vZGVsJztcclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZURlbGV0ZVJlc3BvbnNlLFxyXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgRXNvbHZlU2V0UmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVQYXltZW50TWV0aG9kLFxyXG4gICAgRXNvbHZlUGF5bWVudFJlc3VsdCxcclxuICAgIEVzb2x2ZVZhdWx0SXRlbSxcclxuICAgIEVzb2x2ZVZhdWx0SXRlbVJlc3VsdCxcclxufSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQ2FyZERhdGEsXHJcbiAgICBFc29sdmVQYXltZW50TWV0aG9kT3B0aW9ucyxcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmQsXHJcbiAgICBFc29sdmVQYXltZW50UmVzcG9uc2UsXHJcbiAgICBFc29sdmVWYXVsdFJlY29yZCxcclxuICAgIEVzb2x2ZVZhdWx0UmVzcG9uc2UsXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlUGF5bWVudFNldEJvZHkgfSBmcm9tICcuL2ludGVyZmFjZXMvZXNvbHZlLXBheW1lbnQtc2V0LWJvZHkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUGF5bWVudFN0YXR1cyB9IGZyb20gJy4vaW50ZXJmYWNlcy9lc29sdmUtcGF5bWVudC1zdGF0dXMuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVBheW1lbnRTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZXNwb25zZUhhbmRsZXI6IEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBwYXltZW50IG1ldGhvZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBwYXltZW50IG1ldGhvZHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBheW1lbnRNZXRob2RzKG9wdGlvbnM/OiBFc29sdmVQYXltZW50TWV0aG9kT3B0aW9ucyk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudE1ldGhvZFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXBheW1lbnQtbWV0aG9kcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgLi4ub3B0aW9ucyB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQYXltZW50TWV0aG9kcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIHBheW1lbnQgc3RhdHVzIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb25cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25faWQgSUQgb2YgdGhlIHRyYW5zYWN0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHN1Y2Nlc3Mgc3RhdHVzIG9mIHRoZSBwYXltZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQYXltZW50U3RhdHVzKHRyYW5zYWN0aW9uX2lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudFN0YXR1cz4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXBheW1lbnQtc3RhdHVzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBjYXJ0X2lkOiB0cmFuc2FjdGlvbl9pZCB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnN1Y2Nlc3M7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc2F2ZWQgY2FyZHMgZnJvbSB0aGUgdmF1bHQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBlU29sdmUgSUQgb2YgYSBwYXltZW50IG1ldGhvZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHNhdmVkIGJhbmsgY2FyZHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFZhdWx0KHBheW1lbnRfbWV0aG9kc19pZD86IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlVmF1bHRJdGVtW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBwYXltZW50X21ldGhvZHNfaWQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BheW1lbnRfbWV0aG9kc19pZCcsIHBheW1lbnRfbWV0aG9kc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVmF1bHRJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIG5ldyBjYXJkIGluIHRoZSB2YXVsdCBPUiB1cGRhdGVzIGFuIGV4aXN0aW5nIG9uZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIFNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gY2FyZF9kYXRhIEluZm9ybWF0aW9uIG9mIGJhbmsgY2FyZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHZhdWx0IHNldC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhdWx0SXRlbShcclxuICAgICAgICBwYXltZW50X21ldGhvZHNfaWQ6IG51bWJlcixcclxuICAgICAgICBjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVWYXVsdEl0ZW1SZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB2YXVsdDoge1xyXG4gICAgICAgICAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkLFxyXG4gICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmRfZGF0YS5jYXJkX251bWJlcixcclxuICAgICAgICAgICAgICAgIGNhcmRfbmFtZTogY2FyZF9kYXRhLm5hbWUsXHJcbiAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZF9kYXRhLmN2dixcclxuICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5OiB0aGlzLmdlbmVyYXRlRXhwaXJ5KGNhcmRfZGF0YSksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVWYXVsdFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtdmF1bHQucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OydcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiBuZXcgRXNvbHZlVmF1bHRJdGVtUmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC12YXVsdCcsIGVycm9yUmVzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlIGEgY2FyZCBpbiB0aGUgdmF1bHRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHZhdWx0IGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSB2YXVsdCBkZWxldGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxldGVWYXVsdEl0ZW0oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZGVsZXRlPEVzb2x2ZURlbGV0ZVJlc3BvbnNlPihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS12YXVsdC5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBpZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHR0cF9yZXNwb25zZS5yZXN1bHQgPT09IG51bGwpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMgIT09ICdzdWNjZXNzJylcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgaHR0cF9yZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlUmVzdWx0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBEZWxldGVFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS12YXVsdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHBheW1lbnQgZm9yIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24gdXNpbmcgc2VsZWN0ZWQgcGF5bWVudFxyXG4gICAgICogbWV0aG9kLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBlU29sdmUgSUQgdG8gdGhlIHRyYW5zYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIGVTb2x2ZSBJRCB0byB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcclxuICAgICAqIEBwYXJhbSBjYXJkIElEIG9mIHNlbGVjdGVkIGNhcmQgZnJvbSB0aGUgdmF1bHQgb3IgaW5mb3JtYXRpb24gdG8gYSBicmFuZCBuZXcgY2FyZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHBheW1lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFBheW1lbnQoXHJcbiAgICAgICAgdHJhbnNhY3Rpb25faWQ6IG51bWJlcixcclxuICAgICAgICBwYXltZW50X21ldGhvZHNfaWQ6IG51bWJlcixcclxuICAgICAgICBjYXJkOiBFc29sdmVDYXJkRGF0YSB8IG51bWJlcixcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZVBheW1lbnRTZXRCb2R5ID0ge1xyXG4gICAgICAgICAgICBwYXltZW50OiB7XHJcbiAgICAgICAgICAgICAgICBjYXJ0X2lkOiB0cmFuc2FjdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgY2FyZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgYm9keS5wYXltZW50LnVzZXJfdmF1bHRfaWQgPSBjYXJkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGJvZHkuY2FyZCA9IHtcclxuICAgICAgICAgICAgICAgIGNhcmRfbnVtYmVyOiBjYXJkLmNhcmRfbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgY2FyZF9uYW1lOiBjYXJkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZC5jdnYsXHJcbiAgICAgICAgICAgICAgICBjYXJkX2V4cGlyeTogdGhpcy5nZW5lcmF0ZUV4cGlyeShjYXJkKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtcGF5bWVudC5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7J1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVQYXltZW50UmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1wYXltZW50JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBwYXltZW50IG1ldGhvZCByZWNvcmRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBwYXltZW50IG1ldGhvZHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BheW1lbnRNZXRob2RzKHJlY29yZHM6IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXSk6IEVzb2x2ZVBheW1lbnRNZXRob2RbXSB7XHJcbiAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2RzOiBFc29sdmVQYXltZW50TWV0aG9kW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2QgPSBuZXcgRXNvbHZlUGF5bWVudE1ldGhvZChyZWNvcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kcy5wdXNoKHBheW1lbnRfbWV0aG9kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBheW1lbnRfbWV0aG9kcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHZhdWx0IHJlY29yZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHZhdWx0IGl0ZW1zIChhLmsuYS4gY2FyZHMpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1ZhdWx0SXRlbXMocmVjb3JkczogRXNvbHZlVmF1bHRSZWNvcmRbXSk6IEVzb2x2ZVZhdWx0SXRlbVtdIHtcclxuICAgICAgICBjb25zdCB2YXVsdDogRXNvbHZlVmF1bHRJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmF1bHRfaXRlbSA9IG5ldyBFc29sdmVWYXVsdEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLnBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQubGFzdDQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmJyYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5leHBpcnlfdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXVsdC5wdXNoKHZhdWx0X2l0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZSBhIGNvbmNhdGVuYXRlZCBzdHJpbmcgd2l0aCB0aGUgZXhwaXJ5IG1vbnRoIGFuZCB5ZWFyXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBDcmVkaXQgY2FyZCBkYXRhXHJcbiAgICAgKlxyXG4gICAgICogIEByZXR1cm5zIEV4cGlyeSBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUV4cGlyeShjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBtb250aF9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X21vbnRoLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgeWVhcl9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X3llYXIucGFkU3RhcnQoNCwgJzAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke21vbnRoX3N0cmluZ30ke3llYXJfc3RyaW5nfWA7XHJcbiAgICB9XHJcbn1cclxuIl19
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvcGF5bWVudC9lc29sdmUtcGF5bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFRN0QsT0FBTyxFQUNILG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHFCQUFxQixHQUN4QixNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFlbkIsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QztRQUhkLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtJQUNyRCxDQUFDO0lBRUw7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCLENBQUMsT0FBb0M7UUFDekQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTywwQkFBMEIsRUFDaEQsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQzdCO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFB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RCxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0o7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQUMsT0FBNEI7UUFDbEQsTUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUVwQyxJQUFJLE9BQU8sRUFBRTtZQUNULEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FDbEMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUNWLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUMxQixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLGdCQUFnQixDQUMxQixDQUFDO2dCQUVGLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUI7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxjQUFjLENBQUMsU0FBeUI7UUFDNUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUzRCxPQUFPLEdBQUcsWUFBWSxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQzNDLENBQUM7O2lIQW5TUSxvQkFBb0Isa0JBRWpCLHFCQUFxQjtxSEFGeEIsb0JBQW9CLGNBRmpCLE1BQU07MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycy9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2QsXHJcbiAgICBFc29sdmVQYXltZW50UmVzdWx0LFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtLFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtUmVzdWx0LFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDYXJkRGF0YSxcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2RPcHRpb25zLFxyXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZCxcclxuICAgIEVzb2x2ZVBheW1lbnRSZXNwb25zZSxcclxuICAgIEVzb2x2ZVZhdWx0UmVjb3JkLFxyXG4gICAgRXNvbHZlVmF1bHRSZXNwb25zZSxcclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVQYXltZW50U2V0Qm9keSB9IGZyb20gJy4vaW50ZXJmYWNlcy9lc29sdmUtcGF5bWVudC1zZXQtYm9keS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVQYXltZW50U3RhdHVzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Vzb2x2ZS1wYXltZW50LXN0YXR1cy5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlUGF5bWVudFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlc3BvbnNlSGFuZGxlcjogRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHBheW1lbnQgbWV0aG9kcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBGaWx0ZXIgb3B0aW9uc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHBheW1lbnQgbWV0aG9kc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGF5bWVudE1ldGhvZHMob3B0aW9ucz86IEVzb2x2ZVBheW1lbnRNZXRob2RPcHRpb25zKTogT2JzZXJ2YWJsZTxFc29sdmVQYXltZW50TWV0aG9kW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtcGF5bWVudC1tZXRob2RzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyAuLi5vcHRpb25zIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1BheW1lbnRNZXRob2RzKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSB0aGUgcGF5bWVudCBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBJRCBvZiB0aGUgdHJhbnNhY3Rpb25cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgc3VjY2VzcyBzdGF0dXMgb2YgdGhlIHBheW1lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBheW1lbnRTdGF0dXModHJhbnNhY3Rpb25faWQ6IG51bWJlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVQYXltZW50U3RhdHVzPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtcGF5bWVudC1zdGF0dXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IGNhcnRfaWQ6IHRyYW5zYWN0aW9uX2lkIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHMuc3VjY2VzcztcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBzYXZlZCBjYXJkcyBmcm9tIHRoZSB2YXVsdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RzX2lkIGVTb2x2ZSBJRCBvZiBhIHBheW1lbnQgbWV0aG9kXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2Ygc2F2ZWQgYmFuayBjYXJkc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VmF1bHQocGF5bWVudF9tZXRob2RzX2lkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVWYXVsdEl0ZW1bXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHBheW1lbnRfbWV0aG9kc19pZCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGF5bWVudF9tZXRob2RzX2lkJywgcGF5bWVudF9tZXRob2RzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVWYXVsdFJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtdmF1bHQucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NWYXVsdEl0ZW1zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGEgbmV3IGNhcmQgaW4gdGhlIHZhdWx0IE9SIHVwZGF0ZXMgYW4gZXhpc3Rpbmcgb25lLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgU2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcclxuICAgICAqIEBwYXJhbSBjYXJkX2RhdGEgSW5mb3JtYXRpb24gb2YgYmFuayBjYXJkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgdmF1bHQgc2V0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmF1bHRJdGVtKFxyXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxyXG4gICAgICAgIGNhcmRfZGF0YTogRXNvbHZlQ2FyZERhdGEsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVZhdWx0SXRlbVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIHZhdWx0OiB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50X21ldGhvZHNfaWQsXHJcbiAgICAgICAgICAgICAgICBjYXJkX251bWJlcjogY2FyZF9kYXRhLmNhcmRfbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgY2FyZF9uYW1lOiBjYXJkX2RhdGEubmFtZSxcclxuICAgICAgICAgICAgICAgIGNhcmRfY3Z2OiBjYXJkX2RhdGEuY3Z2LFxyXG4gICAgICAgICAgICAgICAgY2FyZF9leHBpcnk6IHRoaXMuZ2VuZXJhdGVFeHBpcnkoY2FyZF9kYXRhKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZVZhdWx0UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC12YXVsdC5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7J1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVWYXVsdEl0ZW1SZXN1bHQocmVzcG9uc2UpLFxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LXZhdWx0JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWxldGUgYSBjYXJkIGluIHRoZSB2YXVsdFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdmF1bHQgaXRlbVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHZhdWx0IGRlbGV0ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlbGV0ZVZhdWx0SXRlbShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZGVsZXRlLXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gbnVsbCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyAhPT0gJ3N1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVSZXN1bHQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cERlbGV0ZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLXZhdWx0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcGF5bWVudCBmb3IgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvbiB1c2luZyBzZWxlY3RlZCBwYXltZW50XHJcbiAgICAgKiBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIGVTb2x2ZSBJRCB0byB0aGUgdHJhbnNhY3Rpb25cclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIHRvIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGNhcmQgSUQgb2Ygc2VsZWN0ZWQgY2FyZCBmcm9tIHRoZSB2YXVsdCBvciBpbmZvcm1hdGlvbiB0byBhIGJyYW5kIG5ldyBjYXJkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgcGF5bWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0UGF5bWVudChcclxuICAgICAgICB0cmFuc2FjdGlvbl9pZDogbnVtYmVyLFxyXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxyXG4gICAgICAgIGNhcmQ/OiBFc29sdmVDYXJkRGF0YSB8IG51bWJlcixcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUGF5bWVudFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZVBheW1lbnRTZXRCb2R5ID0ge1xyXG4gICAgICAgICAgICBwYXltZW50OiB7XHJcbiAgICAgICAgICAgICAgICBjYXJ0X2lkOiB0cmFuc2FjdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoY2FyZCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhcmQgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICBib2R5LnBheW1lbnQudXNlcl92YXVsdF9pZCA9IGNhcmQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBib2R5LmNhcmQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9udW1iZXI6IGNhcmQuY2FyZF9udW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9uYW1lOiBjYXJkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9jdnY6IGNhcmQuY3Z2LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcmRfZXhwaXJ5OiB0aGlzLmdlbmVyYXRlRXhwaXJ5KGNhcmQpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQYXltZW50UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1wYXltZW50LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4gbmV3IEVzb2x2ZVBheW1lbnRSZXN1bHQocmVzcG9uc2UpLFxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LXBheW1lbnQnLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHBheW1lbnQgbWV0aG9kIHJlY29yZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHBheW1lbnQgbWV0aG9kcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUGF5bWVudE1ldGhvZHMocmVjb3JkczogRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZFtdKTogRXNvbHZlUGF5bWVudE1ldGhvZFtdIHtcclxuICAgICAgICBjb25zdCBwYXltZW50X21ldGhvZHM6IEVzb2x2ZVBheW1lbnRNZXRob2RbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXltZW50X21ldGhvZCA9IG5ldyBFc29sdmVQYXltZW50TWV0aG9kKHJlY29yZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcGF5bWVudF9tZXRob2RzLnB1c2gocGF5bWVudF9tZXRob2QpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGF5bWVudF9tZXRob2RzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgdmF1bHQgcmVjb3Jkcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgdmF1bHQgaXRlbXMgKGEuay5hLiBjYXJkcylcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVmF1bHRJdGVtcyhyZWNvcmRzOiBFc29sdmVWYXVsdFJlY29yZFtdKTogRXNvbHZlVmF1bHRJdGVtW10ge1xyXG4gICAgICAgIGNvbnN0IHZhdWx0OiBFc29sdmVWYXVsdEl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YXVsdF9pdGVtID0gbmV3IEVzb2x2ZVZhdWx0SXRlbShcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQucGF5bWVudF9tZXRob2RzX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5sYXN0NCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuYnJhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmV4cGlyeV90aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhdWx0LnB1c2godmF1bHRfaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YXVsdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlIGEgY29uY2F0ZW5hdGVkIHN0cmluZyB3aXRoIHRoZSBleHBpcnkgbW9udGggYW5kIHllYXJcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2FyZF9kYXRhIENyZWRpdCBjYXJkIGRhdGFcclxuICAgICAqXHJcbiAgICAgKiAgQHJldHVybnMgRXhwaXJ5IHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlRXhwaXJ5KGNhcmRfZGF0YTogRXNvbHZlQ2FyZERhdGEpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoX3N0cmluZyA9IGNhcmRfZGF0YS5leHBpcnlfbW9udGgucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCB5ZWFyX3N0cmluZyA9IGNhcmRfZGF0YS5leHBpcnlfeWVhci5wYWRTdGFydCg0LCAnMCcpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7bW9udGhfc3RyaW5nfSR7eWVhcl9zdHJpbmd9YDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -42,6 +42,14 @@ export class EsolveStockItemBase {
42
42
  * Featured state
43
43
  */
44
44
  this.featured = false;
45
+ /**
46
+ * Number of stock available
47
+ */
48
+ this.amount_in_stock = 0;
49
+ /**
50
+ * Total items linked to the item as a recipe
51
+ */
52
+ this.total_recipe_items = 0;
45
53
  /**
46
54
  * Height measured in meters (m)
47
55
  */
@@ -126,6 +134,8 @@ export class EsolveStockItemBase {
126
134
  this.ranges_id = +(record.ranges_id ?? 0);
127
135
  this.active = !!+(record.is_active ?? false);
128
136
  this.featured = !!+(record.is_featured ?? false);
137
+ this.amount_in_stock = +(record.onhand ?? 0);
138
+ this.total_recipe_items = +(record.total_recipe_items ?? 0);
129
139
  this.height = +(record.height ?? 0);
130
140
  this.width = +(record.width ?? 0);
131
141
  this.length = +(record.length ?? 0);
@@ -214,6 +224,9 @@ export class EsolveStockItemBase {
214
224
  get original_image_src() {
215
225
  return this.getImagePath('original');
216
226
  }
227
+ get available() {
228
+ return (this.amount_in_stock > 0);
229
+ }
217
230
  getImagePath(image_size) {
218
231
  if (this.image_name !== '') {
219
232
  return `/images/stock/${image_size}/${this.image_name}`;
@@ -221,4 +234,4 @@ export class EsolveStockItemBase {
221
234
  return '';
222
235
  }
223
236
  }
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2staXRlbS1iYXNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE1BQU0sT0FBTyxtQkFBbUI7SUFzSzVCLFlBQVksU0FBNEMsRUFBRTtRQXJLMUQ7O1dBRUc7UUFDSSxPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCOztXQUVHO1FBQ0ksU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUN6Qjs7V0FFRztRQUNJLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDekI7O1dBRUc7UUFDSSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQzdCOztXQUVHO1FBQ0ksZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx5QkFBb0IsR0FB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QWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBaUpNLFlBQVksQ0FBQyxVQUFnQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDM0Q7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcywgRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuaW1wb3J0IHsgRXNvbHZlU2VvRGV0YWlscywgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZW8nO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NhdGVnb3J5LXRyZWUnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuLi8uLi9tYW51ZmFjdHVyZXJzJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuLi8uLi9yYW5nZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi8uLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi8uLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJbWFnZVNpemUsIEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYXNlUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrUHJpY2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1wcmljZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbG91ciB9IGZyb20gJy4vZXNvbHZlLWNvbG91ci5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtQmFzZTxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4gaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogZVNvbHZlIEdlbmVyYXRlZCBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIENvZGUgaWRlbnRpZnlpbmcgdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvZGU6IHN0cmluZyA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogU2VhcmNoIGVuZ2luZSBmcmllbmRseSBuYW1lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWZfbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFNob3J0IGRlc2NyaXB0aW9uIG9mIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRnVsbCBkZXNjcmlwdGlvbiBvZiBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBleHRlbmRlZF9kZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2ZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIEZlYXR1cmVkIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmZWF0dXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBIZWlnaHQgbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaWR0aCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGVuZ3RoIC8gZGVwdGggbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZWlnaHQgbWVhc3VyZWQgaW4ga2lsb2dyYW1zIChrZylcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlaWdodDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogVW5pdHMgdXNlZCB0byBtZWFzdXJlIHRoZSBxdWFudGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdW5pdF9vZl9tZWFzdXJlOiBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgPSAndW5pdCc7XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGRlZmF1bHQgY2F0ZWdvcnkgbGlua2VkIHRvIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBjYXRlZ29yeS5lc29sdmVfaWRgIGZpZWxkIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5X2lkOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBsaW5rZWQgY2F0ZWdvcnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5PzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbTtcclxuICAgIC8qKlxyXG4gICAgICogSUQgb2YgZGVmYXVsdCBzdWJjYXRlZ29yeSBsaW5rZWQgdG8gdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHN1YmNhdGVnb3J5LmVzb2x2ZV9pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3ViY2F0ZWdvcnlfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgbGlua2VkIHN1YmNhdGVnb3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGxpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYG1hbnVmYWN0dXJlci5pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyc19pZDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyPzogRXNvbHZlTWFudWZhY3R1cmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBsaW5rZWQgcmFuZ2VcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJhbmdlLmlkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByYW5nZXNfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCByYW5nZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmFuZ2U/OiBFc29sdmVSYW5nZTtcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBwcmljZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJpY2U6IEVzb2x2ZVN0b2NrUHJpY2U7XHJcbiAgICAvKipcclxuICAgICAqIFNFTyBwYWdlIGRldGFpbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlb19kZXRhaWxzOiBFc29sdmVTZW9JbmZvO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgdGFnc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFnczogRXNvbHZlVGFnW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIHRvcGljc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9waWNzOiBFc29sdmVUb3BpY1tdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIFN0b2NrIGJhZGdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYmFkZ2VzOiBFc29sdmVTdG9ja0JhZGdlW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgaXRlbSBjdXN0b20gZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3VzdG9tX2ZpZWxkcz86IEVzb2x2ZUN1c3RvbUZpZWxkczxUPjtcclxuICAgIC8qKlxyXG4gICAgICogQ29sb3Vyc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sb3VyczogRXNvbHZlQ29sb3VyW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgSXRlbSBMZWFkIFRpbWVzIGZvciBzdXBwbHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxlYWRfdGltZXM/OiBFc29sdmVTdG9ja0xlYWRUaW1lcztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltYWdlIGZpbGVuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW1hZ2VfbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIHRpbnkgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aW55X2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGlueScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aHVtYm5haWwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aHVtYicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBzbWFsbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNtYWxsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnc21hbGwnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gYmlnIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYmlnX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnYmlnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIG9yaWdpbmFsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdvcmlnaW5hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogUGFydGlhbDxFc29sdmVTdG9ja0Jhc2VSZWNvcmQ8VD4+ID0ge30pIHtcclxuICAgICAgICBsZXQgc2VvX3RpdGxlID0gJyc7XHJcbiAgICAgICAgbGV0IHNlb19rZXl3b3JkcyA9ICcnO1xyXG4gICAgICAgIGxldCBiYXNlX3ByaWNlID0gMDtcclxuICAgICAgICBsZXQgYmFzZV9wcmljZV93aXRoX3RheCA9IDA7XHJcbiAgICAgICAgbGV0IHNlbGxfcHJpY2UgPSAwO1xyXG4gICAgICAgIGxldCBzZWxsX3ByaWNlX3dpdGhfdGF4ID0gMDtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gKyhyZWNvcmQuaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHJlY29yZC5jb2RlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSByZWNvcmQubmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zZWZfbmFtZSA9IHJlY29yZC5zZWZfbmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHJlY29yZC5kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5leHRlbmRlZF9kZXNjcmlwdGlvbiA9IHJlY29yZC5leHRlbmRlZF9kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5pbWFnZV9uYW1lID0gcmVjb3JkLmltYWdlX25hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlfaWQgPSByZWNvcmQuY2F0ZWdvcnlfaWQgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnlfaWQgPSArKHJlY29yZC5zdWJjYXRlZ29yeV9pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5tYW51ZmFjdHVyZXJzX2lkID0gKyhyZWNvcmQubWFudWZhY3R1cmVyc19pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXNfaWQgPSArKHJlY29yZC5yYW5nZXNfaWQgPz8gMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICEhKyhyZWNvcmQuaXNfYWN0aXZlID8/IGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5mZWF0dXJlZCA9ICEhKyhyZWNvcmQuaXNfZmVhdHVyZWQgPz8gZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSArKHJlY29yZC5oZWlnaHQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSArKHJlY29yZC53aWR0aCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSArKHJlY29yZC5sZW5ndGggPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMud2VpZ2h0ID0gKyhyZWNvcmQud2VpZ2h0ID8/IDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC51bml0X29mX21lYXN1cmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5pdF9vZl9tZWFzdXJlID0gcmVjb3JkLnVuaXRfb2ZfbWVhc3VyZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYmFzZV9wcmljZSA9ICsocmVjb3JkLnJlZ3VsYXJfc2VsbHByaWNlID8/IDApO1xyXG4gICAgICAgICAgICBiYXNlX3ByaWNlX3dpdGhfdGF4ID0gKyhyZWNvcmQucmVndWxhcl9zZWxscHJpY2VfaW5jbHVzaXZlID8/IDApO1xyXG4gICAgICAgICAgICBzZWxsX3ByaWNlID0gKyhyZWNvcmQuc2VsbHByaWNlID8/IDApO1xyXG4gICAgICAgICAgICBzZWxsX3ByaWNlX3dpdGhfdGF4ID0gKyhyZWNvcmQuc2VsbHByaWNlX2luY2x1c2l2ZSA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmICgocmVjb3JkLnRhZ3MpICYmIChyZWNvcmQudGFncy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgcmVjb3JkLnRhZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MucHVzaChuZXcgRXNvbHZlVGFnKHRhZykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC50b3BpY3MpICYmIChyZWNvcmQudG9waWNzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRvcGljIG9mIHJlY29yZC50b3BpY3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcGljcy5wdXNoKG5ldyBFc29sdmVUb3BpYyh0b3BpYykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC5iYWRnZXMpICYmIChyZWNvcmQuYmFkZ2VzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGJhZGdlIG9mIHJlY29yZC5iYWRnZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhZGdlcy5wdXNoKG5ldyBFc29sdmVTdG9ja0JhZGdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICArYmFkZ2UuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLnRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmZvbnRfY29sb3VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS5iYWRnZV9jb2xvdXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICtiYWRnZS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuc3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnkgPSBuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnBhcmVudF9pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlZl9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGlzcGxheV9vbmx5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5pbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19rZXl3b3JkcyxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5tYW51ZmFjdHVyZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFudWZhY3R1cmVyID0gbmV3IEVzb2x2ZU1hbnVmYWN0dXJlcihyZWNvcmQubWFudWZhY3R1cmVyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5yYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYW5nZSA9IG5ldyBFc29sdmVSYW5nZShyZWNvcmQucmFuZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNvbG91cnMgJiYgcmVjb3JkLmNvbG91cnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2xvdXIgb2YgcmVjb3JkLmNvbG91cnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbG91cnMucHVzaChuZXcgRXNvbHZlQ29sb3VyKGNvbG91cikpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmxlYWRfdGltZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVhZF90aW1lcyA9IG5ldyBFc29sdmVTdG9ja0xlYWRUaW1lcyhyZWNvcmQubGVhZF90aW1lcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuY3VzdG9tX2ZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21fZmllbGRzID0gcmVjb3JkLmN1c3RvbV9maWVsZHM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHJlY29yZC5zZW9fcGFnZV90aXRsZSA/PyAnJztcclxuICAgICAgICAgICAgc2VvX2tleXdvcmRzID0gcmVjb3JkLnNlb19rZXl3b3JkcyA/PyAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJpY2UgPSBuZXcgRXNvbHZlU3RvY2tQcmljZShcclxuICAgICAgICAgICAgYmFzZV9wcmljZSxcclxuICAgICAgICAgICAgYmFzZV9wcmljZV93aXRoX3RheCxcclxuICAgICAgICAgICAgc2VsbF9wcmljZSxcclxuICAgICAgICAgICAgc2VsbF9wcmljZV93aXRoX3RheCxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoc2VvX3RpdGxlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgc2VvX3RpdGxlID0gdGhpcy5uYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZW9fZGV0YWlscyA9IG5ldyBFc29sdmVTZW9JbmZvKFxyXG4gICAgICAgICAgICBzZW9fdGl0bGUsXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHNlb19rZXl3b3JkcyxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJbWFnZVBhdGgoaW1hZ2Vfc2l6ZTogRXNvbHZlU3RvY2tJbWFnZVNpemUpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgL2ltYWdlcy9zdG9jay8ke2ltYWdlX3NpemV9LyR7dGhpcy5pbWFnZV9uYW1lfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn1cclxuIl19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2staXRlbS1iYXNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE1BQU0sT0FBTyxtQkFBbUI7SUFrTDVCLFlBQVksU0FBNEMsRUFBRTtRQWpMMUQ7O1dBRUc7UUFDSSxPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCOztXQUVHO1FBQ0ksU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUN6Qjs7V0FFRztRQUNJLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDekI7O1dBRUc7UUFDSSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQzdCOztXQUVHO1FBQ0ksZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx5QkFBb0IsR0FB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WSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBb0pNLFlBQVksQ0FBQyxVQUFnQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDM0Q7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcywgRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuaW1wb3J0IHsgRXNvbHZlU2VvRGV0YWlscywgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZW8nO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NhdGVnb3J5LXRyZWUnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuLi8uLi9tYW51ZmFjdHVyZXJzJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuLi8uLi9yYW5nZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi8uLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi8uLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJbWFnZVNpemUsIEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYXNlUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrUHJpY2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1wcmljZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbG91ciB9IGZyb20gJy4vZXNvbHZlLWNvbG91ci5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtQmFzZTxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4gaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogZVNvbHZlIEdlbmVyYXRlZCBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIENvZGUgaWRlbnRpZnlpbmcgdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvZGU6IHN0cmluZyA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogU2VhcmNoIGVuZ2luZSBmcmllbmRseSBuYW1lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWZfbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFNob3J0IGRlc2NyaXB0aW9uIG9mIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRnVsbCBkZXNjcmlwdGlvbiBvZiBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBleHRlbmRlZF9kZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2ZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIEZlYXR1cmVkIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmZWF0dXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1iZXIgb2Ygc3RvY2sgYXZhaWxhYmxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhbW91bnRfaW5fc3RvY2s6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIFRvdGFsIGl0ZW1zIGxpbmtlZCB0byB0aGUgaXRlbSBhcyBhIHJlY2lwZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG90YWxfcmVjaXBlX2l0ZW1zOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBIZWlnaHQgbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaWR0aCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGVuZ3RoIC8gZGVwdGggbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZWlnaHQgbWVhc3VyZWQgaW4ga2lsb2dyYW1zIChrZylcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlaWdodDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogVW5pdHMgdXNlZCB0byBtZWFzdXJlIHRoZSBxdWFudGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdW5pdF9vZl9tZWFzdXJlOiBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgPSAndW5pdCc7XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGRlZmF1bHQgY2F0ZWdvcnkgbGlua2VkIHRvIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBjYXRlZ29yeS5lc29sdmVfaWRgIGZpZWxkIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5X2lkOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBsaW5rZWQgY2F0ZWdvcnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5PzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbTtcclxuICAgIC8qKlxyXG4gICAgICogSUQgb2YgZGVmYXVsdCBzdWJjYXRlZ29yeSBsaW5rZWQgdG8gdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHN1YmNhdGVnb3J5LmVzb2x2ZV9pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3ViY2F0ZWdvcnlfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgbGlua2VkIHN1YmNhdGVnb3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGxpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYG1hbnVmYWN0dXJlci5pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyc19pZDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyPzogRXNvbHZlTWFudWZhY3R1cmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBsaW5rZWQgcmFuZ2VcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJhbmdlLmlkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByYW5nZXNfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCByYW5nZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmFuZ2U/OiBFc29sdmVSYW5nZTtcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBwcmljZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJpY2U6IEVzb2x2ZVN0b2NrUHJpY2U7XHJcbiAgICAvKipcclxuICAgICAqIFNFTyBwYWdlIGRldGFpbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlb19kZXRhaWxzOiBFc29sdmVTZW9JbmZvO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgdGFnc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFnczogRXNvbHZlVGFnW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIHRvcGljc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9waWNzOiBFc29sdmVUb3BpY1tdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIFN0b2NrIGJhZGdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYmFkZ2VzOiBFc29sdmVTdG9ja0JhZGdlW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgaXRlbSBjdXN0b20gZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3VzdG9tX2ZpZWxkcz86IEVzb2x2ZUN1c3RvbUZpZWxkczxUPjtcclxuICAgIC8qKlxyXG4gICAgICogQ29sb3Vyc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sb3VyczogRXNvbHZlQ29sb3VyW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgSXRlbSBMZWFkIFRpbWVzIGZvciBzdXBwbHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxlYWRfdGltZXM/OiBFc29sdmVTdG9ja0xlYWRUaW1lcztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltYWdlIGZpbGVuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW1hZ2VfbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIHRpbnkgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aW55X2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGlueScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aHVtYm5haWwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aHVtYicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBzbWFsbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNtYWxsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnc21hbGwnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gYmlnIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYmlnX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnYmlnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIG9yaWdpbmFsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdvcmlnaW5hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5hbW91bnRfaW5fc3RvY2sgPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ6IFBhcnRpYWw8RXNvbHZlU3RvY2tCYXNlUmVjb3JkPFQ+PiA9IHt9KSB7XHJcbiAgICAgICAgbGV0IHNlb190aXRsZSA9ICcnO1xyXG4gICAgICAgIGxldCBzZW9fa2V5d29yZHMgPSAnJztcclxuICAgICAgICBsZXQgYmFzZV9wcmljZSA9IDA7XHJcbiAgICAgICAgbGV0IGJhc2VfcHJpY2Vfd2l0aF90YXggPSAwO1xyXG4gICAgICAgIGxldCBzZWxsX3ByaWNlID0gMDtcclxuICAgICAgICBsZXQgc2VsbF9wcmljZV93aXRoX3RheCA9IDA7XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5pZCA9ICsocmVjb3JkLmlkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGUgPSByZWNvcmQuY29kZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5uYW1lID0gcmVjb3JkLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2VmX25hbWUgPSByZWNvcmQuc2VmX25hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZWNvcmQuZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kZWRfZGVzY3JpcHRpb24gPSByZWNvcmQuZXh0ZW5kZWRfZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VfbmFtZSA9IHJlY29yZC5pbWFnZV9uYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5X2lkID0gcmVjb3JkLmNhdGVnb3J5X2lkID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnN1YmNhdGVnb3J5X2lkID0gKyhyZWNvcmQuc3ViY2F0ZWdvcnlfaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMubWFudWZhY3R1cmVyc19pZCA9ICsocmVjb3JkLm1hbnVmYWN0dXJlcnNfaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMucmFuZ2VzX2lkID0gKyhyZWNvcmQucmFuZ2VzX2lkID8/IDApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSAhISsocmVjb3JkLmlzX2FjdGl2ZSA/PyBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmVhdHVyZWQgPSAhISsocmVjb3JkLmlzX2ZlYXR1cmVkID8/IGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50X2luX3N0b2NrID0gKyhyZWNvcmQub25oYW5kID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsX3JlY2lwZV9pdGVtcyA9ICsocmVjb3JkLnRvdGFsX3JlY2lwZV9pdGVtcyA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gKyhyZWNvcmQuaGVpZ2h0ID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLndpZHRoID0gKyhyZWNvcmQud2lkdGggPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gKyhyZWNvcmQubGVuZ3RoID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLndlaWdodCA9ICsocmVjb3JkLndlaWdodCA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQudW5pdF9vZl9tZWFzdXJlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVuaXRfb2ZfbWVhc3VyZSA9IHJlY29yZC51bml0X29mX21lYXN1cmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2UgPSArKHJlY29yZC5yZWd1bGFyX3NlbGxwcmljZSA/PyAwKTtcclxuICAgICAgICAgICAgYmFzZV9wcmljZV93aXRoX3RheCA9ICsocmVjb3JkLnJlZ3VsYXJfc2VsbHByaWNlX2luY2x1c2l2ZSA/PyAwKTtcclxuICAgICAgICAgICAgc2VsbF9wcmljZSA9ICsocmVjb3JkLnNlbGxwcmljZSA/PyAwKTtcclxuICAgICAgICAgICAgc2VsbF9wcmljZV93aXRoX3RheCA9ICsocmVjb3JkLnNlbGxwcmljZV9pbmNsdXNpdmUgPz8gMCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC50YWdzKSAmJiAocmVjb3JkLnRhZ3MubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHJlY29yZC50YWdzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdzLnB1c2gobmV3IEVzb2x2ZVRhZyh0YWcpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKChyZWNvcmQudG9waWNzKSAmJiAocmVjb3JkLnRvcGljcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0b3BpYyBvZiByZWNvcmQudG9waWNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BpY3MucHVzaChuZXcgRXNvbHZlVG9waWModG9waWMpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKChyZWNvcmQuYmFkZ2VzKSAmJiAocmVjb3JkLmJhZGdlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBiYWRnZSBvZiByZWNvcmQuYmFkZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWRnZXMucHVzaChuZXcgRXNvbHZlU3RvY2tCYWRnZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgK2JhZGdlLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS50ZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS5pZGVudGlmaWVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS5mb250X2NvbG91cixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFkZ2UuYmFkZ2VfY29sb3VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICArYmFkZ2Uuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkucGFyZW50X2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5kaXNwbGF5X29ubHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnN1YmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1YmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQubWFudWZhY3R1cmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hbnVmYWN0dXJlciA9IG5ldyBFc29sdmVNYW51ZmFjdHVyZXIocmVjb3JkLm1hbnVmYWN0dXJlcik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQucmFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBuZXcgRXNvbHZlUmFuZ2UocmVjb3JkLnJhbmdlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5jb2xvdXJzICYmIHJlY29yZC5jb2xvdXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sb3VyIG9mIHJlY29yZC5jb2xvdXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvdXJzLnB1c2gobmV3IEVzb2x2ZUNvbG91cihjb2xvdXIpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5sZWFkX3RpbWVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlYWRfdGltZXMgPSBuZXcgRXNvbHZlU3RvY2tMZWFkVGltZXMocmVjb3JkLmxlYWRfdGltZXMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmN1c3RvbV9maWVsZHMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tX2ZpZWxkcyA9IHJlY29yZC5jdXN0b21fZmllbGRzO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSByZWNvcmQuc2VvX3BhZ2VfdGl0bGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHNlb19rZXl3b3JkcyA9IHJlY29yZC5zZW9fa2V5d29yZHMgPz8gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByaWNlID0gbmV3IEVzb2x2ZVN0b2NrUHJpY2UoXHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2UsXHJcbiAgICAgICAgICAgIGJhc2VfcHJpY2Vfd2l0aF90YXgsXHJcbiAgICAgICAgICAgIHNlbGxfcHJpY2UsXHJcbiAgICAgICAgICAgIHNlbGxfcHJpY2Vfd2l0aF90YXgsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHNlb190aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHRoaXMubmFtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VvX2RldGFpbHMgPSBuZXcgRXNvbHZlU2VvSW5mbyhcclxuICAgICAgICAgICAgc2VvX3RpdGxlLFxyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SW1hZ2VQYXRoKGltYWdlX3NpemU6IEVzb2x2ZVN0b2NrSW1hZ2VTaXplKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZV9uYW1lICE9PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYC9pbWFnZXMvc3RvY2svJHtpbWFnZV9zaXplfS8ke3RoaXMuaW1hZ2VfbmFtZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWJhc2UtcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svaW50ZXJmYWNlcy9lc29sdmUtc3RvY2stYmFzZS1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRXNvbHZlQ3VzdG9tRmllbGRzLFxyXG4gICAgRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcyxcclxufSBmcm9tICcuLi8uLi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkIH0gZnJvbSAnLi4vLi4vY2F0ZWdvcnktdHJlZSc7XHJcbmltcG9ydCB7IEVzb2x2ZU1hbnVmYWN0dXJlclJlY29yZCB9IGZyb20gJy4uLy4uL21hbnVmYWN0dXJlcnMnO1xyXG5pbXBvcnQgeyBFc29sdmVSYW5nZVJlY29yZCB9IGZyb20gJy4uLy4uL3Jhbmdlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVRhZ1JlY29yZCB9IGZyb20gJy4uLy4uL3RhZ3MnO1xyXG5pbXBvcnQgeyBFc29sdmVUb3BpY1JlY29yZCB9IGZyb20gJy4uLy4uL3RvcGljcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2VSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ29sb3VyUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY29sb3VyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0xlYWRUaW1lc1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWxlYWQtdGltZXMtcmVjb3JkLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVN0b2NrQmFzZVJlY29yZDxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4ge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIGNvZGU6IHN0cmluZztcclxuICAgIHN1cHBsaWVyX2NvZGU6IHN0cmluZztcclxuICAgIGV4dGVybmFsX3N5c3RlbV9jb2RlOiBzdHJpbmc7XHJcbiAgICBiYXJjb2RlOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBzZWZfbmFtZTogc3RyaW5nO1xyXG4gICAgc2VvX3BhZ2VfdGl0bGU6IHN0cmluZztcclxuICAgIHNlb19rZXl3b3Jkczogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGV4dGVuZGVkX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBjYXRlZ29yeV9pZDogc3RyaW5nO1xyXG4gICAgY2F0ZWdvcnlfZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGNhdGVnb3J5OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkO1xyXG4gICAgc3ViY2F0ZWdvcnlfaWQ6IG51bWJlcjtcclxuICAgIHN1YmNhdGVnb3J5X2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBzdWJjYXRlZ29yeTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZDtcclxuICAgIG1hbnVmYWN0dXJlcnNfaWQ6IG51bWJlcjtcclxuICAgIG1hbnVmYWN0dXJlcjogRXNvbHZlTWFudWZhY3R1cmVyUmVjb3JkO1xyXG4gICAgcmFuZ2VzX2lkOiBudW1iZXI7XHJcbiAgICByYW5nZTogRXNvbHZlUmFuZ2VSZWNvcmQ7XHJcbiAgICBpbWFnZV9uYW1lOiBzdHJpbmc7XHJcbiAgICBpbWFnZV9jaGVja3N1bT86IHN0cmluZztcclxuICAgIGltYWdlX2xhc3RfbW9kaWZpZWQ/OiBzdHJpbmc7XHJcbiAgICBtdXN0X2NvbGxlY3Q6IGJvb2xlYW47XHJcbiAgICBkZWxpdmVyeV9jYXRlZ29yeTogc3RyaW5nO1xyXG4gICAgaXNfYWN0aXZlOiBib29sZWFuO1xyXG4gICAgaXNfZmVhdHVyZWQ6IGJvb2xlYW47XHJcbiAgICB2YXRfaXRlbTogYm9vbGVhbjtcclxuICAgIHZhdF9yYXRlOiBudW1iZXI7XHJcbiAgICB2YXRfcGVyY2VudGFnZTogbnVtYmVyO1xyXG4gICAgaXRlbXNfaW5fcGFjazogbnVtYmVyO1xyXG4gICAgcmVndWxhcl9zZWxscHJpY2U6IG51bWJlcjtcclxuICAgIHJlZ3VsYXJfc2VsbHByaWNlX2luY2x1c2l2ZTogbnVtYmVyO1xyXG4gICAgc2VsbHByaWNlOiBudW1iZXI7XHJcbiAgICBzZWxscHJpY2VfaW5jbHVzaXZlOiBudW1iZXI7XHJcbiAgICBkaXNjb3VudHNfb25fY29kZTogYW55W107XHJcbiAgICB0YWdzOiBFc29sdmVUYWdSZWNvcmRbXTtcclxuICAgIHRvcGljczogRXNvbHZlVG9waWNSZWNvcmRbXTtcclxuICAgIGJhZGdlczogRXNvbHZlU3RvY2tCYWRnZVJlY29yZFtdO1xyXG4gICAgbGVhZF90aW1lczogRXNvbHZlU3RvY2tMZWFkVGltZXNSZWNvcmQ7XHJcbiAgICBjb2xvdXJzOiBFc29sdmVDb2xvdXJSZWNvcmRbXTtcclxuICAgIGN1c3RvbV9maWVsZHM6IEVzb2x2ZUN1c3RvbUZpZWxkczxUPjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGxlbmd0aDogbnVtYmVyO1xyXG4gICAgd2VpZ2h0OiBudW1iZXI7XHJcbiAgICB1bml0X29mX21lYXN1cmU6IEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWJhc2UtcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svaW50ZXJmYWNlcy9lc29sdmUtc3RvY2stYmFzZS1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRXNvbHZlQ3VzdG9tRmllbGRzLFxyXG4gICAgRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcyxcclxufSBmcm9tICcuLi8uLi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkIH0gZnJvbSAnLi4vLi4vY2F0ZWdvcnktdHJlZSc7XHJcbmltcG9ydCB7IEVzb2x2ZU1hbnVmYWN0dXJlclJlY29yZCB9IGZyb20gJy4uLy4uL21hbnVmYWN0dXJlcnMnO1xyXG5pbXBvcnQgeyBFc29sdmVSYW5nZVJlY29yZCB9IGZyb20gJy4uLy4uL3Jhbmdlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVRhZ1JlY29yZCB9IGZyb20gJy4uLy4uL3RhZ3MnO1xyXG5pbXBvcnQgeyBFc29sdmVUb3BpY1JlY29yZCB9IGZyb20gJy4uLy4uL3RvcGljcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2VSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ29sb3VyUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY29sb3VyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0xlYWRUaW1lc1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWxlYWQtdGltZXMtcmVjb3JkLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVN0b2NrQmFzZVJlY29yZDxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4ge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIGNvZGU6IHN0cmluZztcclxuICAgIHN1cHBsaWVyX2NvZGU6IHN0cmluZztcclxuICAgIGV4dGVybmFsX3N5c3RlbV9jb2RlOiBzdHJpbmc7XHJcbiAgICBiYXJjb2RlOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBzZWZfbmFtZTogc3RyaW5nO1xyXG4gICAgc2VvX3BhZ2VfdGl0bGU6IHN0cmluZztcclxuICAgIHNlb19rZXl3b3Jkczogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGV4dGVuZGVkX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBjYXRlZ29yeV9pZDogc3RyaW5nO1xyXG4gICAgY2F0ZWdvcnlfZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGNhdGVnb3J5OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkO1xyXG4gICAgc3ViY2F0ZWdvcnlfaWQ6IG51bWJlcjtcclxuICAgIHN1YmNhdGVnb3J5X2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBzdWJjYXRlZ29yeTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZDtcclxuICAgIG1hbnVmYWN0dXJlcnNfaWQ6IG51bWJlcjtcclxuICAgIG1hbnVmYWN0dXJlcjogRXNvbHZlTWFudWZhY3R1cmVyUmVjb3JkO1xyXG4gICAgcmFuZ2VzX2lkOiBudW1iZXI7XHJcbiAgICByYW5nZTogRXNvbHZlUmFuZ2VSZWNvcmQ7XHJcbiAgICBpbWFnZV9uYW1lOiBzdHJpbmc7XHJcbiAgICBpbWFnZV9jaGVja3N1bT86IHN0cmluZztcclxuICAgIGltYWdlX2xhc3RfbW9kaWZpZWQ/OiBzdHJpbmc7XHJcbiAgICBtdXN0X2NvbGxlY3Q6IGJvb2xlYW47XHJcbiAgICBkZWxpdmVyeV9jYXRlZ29yeTogc3RyaW5nO1xyXG4gICAgaXNfYWN0aXZlOiBib29sZWFuO1xyXG4gICAgaXNfZmVhdHVyZWQ6IGJvb2xlYW47XHJcbiAgICB2YXRfaXRlbTogYm9vbGVhbjtcclxuICAgIHZhdF9yYXRlOiBudW1iZXI7XHJcbiAgICB2YXRfcGVyY2VudGFnZTogbnVtYmVyO1xyXG4gICAgaXRlbXNfaW5fcGFjazogbnVtYmVyO1xyXG4gICAgcmVndWxhcl9zZWxscHJpY2U6IG51bWJlcjtcclxuICAgIHJlZ3VsYXJfc2VsbHByaWNlX2luY2x1c2l2ZTogbnVtYmVyO1xyXG4gICAgc2VsbHByaWNlOiBudW1iZXI7XHJcbiAgICBzZWxscHJpY2VfaW5jbHVzaXZlOiBudW1iZXI7XHJcbiAgICBkaXNjb3VudHNfb25fY29kZTogYW55W107XHJcbiAgICB0YWdzOiBFc29sdmVUYWdSZWNvcmRbXTtcclxuICAgIHRvcGljczogRXNvbHZlVG9waWNSZWNvcmRbXTtcclxuICAgIGJhZGdlczogRXNvbHZlU3RvY2tCYWRnZVJlY29yZFtdO1xyXG4gICAgbGVhZF90aW1lczogRXNvbHZlU3RvY2tMZWFkVGltZXNSZWNvcmQ7XHJcbiAgICBjb2xvdXJzOiBFc29sdmVDb2xvdXJSZWNvcmRbXTtcclxuICAgIGN1c3RvbV9maWVsZHM6IEVzb2x2ZUN1c3RvbUZpZWxkczxUPjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGxlbmd0aDogbnVtYmVyO1xyXG4gICAgd2VpZ2h0OiBudW1iZXI7XHJcbiAgICB1bml0X29mX21lYXN1cmU6IEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZTtcclxuICAgIG9uaGFuZDogbnVtYmVyO1xyXG4gICAgdG90YWxfcmVjaXBlX2l0ZW1zOiBudW1iZXI7XHJcbn1cclxuIl19
@@ -2953,7 +2953,7 @@ class EsolveStockLeadTimes {
2953
2953
 
2954
2954
  class EsolveStockItemBase {
2955
2955
  constructor(record = {}) {
2956
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
2956
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
2957
2957
  /**
2958
2958
  * eSolve Generated ID
2959
2959
  */
@@ -2986,6 +2986,14 @@ class EsolveStockItemBase {
2986
2986
  * Featured state
2987
2987
  */
2988
2988
  this.featured = false;
2989
+ /**
2990
+ * Number of stock available
2991
+ */
2992
+ this.amount_in_stock = 0;
2993
+ /**
2994
+ * Total items linked to the item as a recipe
2995
+ */
2996
+ this.total_recipe_items = 0;
2989
2997
  /**
2990
2998
  * Height measured in meters (m)
2991
2999
  */
@@ -3070,17 +3078,19 @@ class EsolveStockItemBase {
3070
3078
  this.ranges_id = +((_l = record.ranges_id) !== null && _l !== void 0 ? _l : 0);
3071
3079
  this.active = !!+((_m = record.is_active) !== null && _m !== void 0 ? _m : false);
3072
3080
  this.featured = !!+((_o = record.is_featured) !== null && _o !== void 0 ? _o : false);
3073
- this.height = +((_p = record.height) !== null && _p !== void 0 ? _p : 0);
3074
- this.width = +((_q = record.width) !== null && _q !== void 0 ? _q : 0);
3075
- this.length = +((_r = record.length) !== null && _r !== void 0 ? _r : 0);
3076
- this.weight = +((_s = record.weight) !== null && _s !== void 0 ? _s : 0);
3081
+ this.amount_in_stock = +((_p = record.onhand) !== null && _p !== void 0 ? _p : 0);
3082
+ this.total_recipe_items = +((_q = record.total_recipe_items) !== null && _q !== void 0 ? _q : 0);
3083
+ this.height = +((_r = record.height) !== null && _r !== void 0 ? _r : 0);
3084
+ this.width = +((_s = record.width) !== null && _s !== void 0 ? _s : 0);
3085
+ this.length = +((_t = record.length) !== null && _t !== void 0 ? _t : 0);
3086
+ this.weight = +((_u = record.weight) !== null && _u !== void 0 ? _u : 0);
3077
3087
  if (record.unit_of_measure) {
3078
3088
  this.unit_of_measure = record.unit_of_measure;
3079
3089
  }
3080
- base_price = +((_t = record.regular_sellprice) !== null && _t !== void 0 ? _t : 0);
3081
- base_price_with_tax = +((_u = record.regular_sellprice_inclusive) !== null && _u !== void 0 ? _u : 0);
3082
- sell_price = +((_v = record.sellprice) !== null && _v !== void 0 ? _v : 0);
3083
- sell_price_with_tax = +((_w = record.sellprice_inclusive) !== null && _w !== void 0 ? _w : 0);
3090
+ base_price = +((_v = record.regular_sellprice) !== null && _v !== void 0 ? _v : 0);
3091
+ base_price_with_tax = +((_w = record.regular_sellprice_inclusive) !== null && _w !== void 0 ? _w : 0);
3092
+ sell_price = +((_x = record.sellprice) !== null && _x !== void 0 ? _x : 0);
3093
+ sell_price_with_tax = +((_y = record.sellprice_inclusive) !== null && _y !== void 0 ? _y : 0);
3084
3094
  if ((record.tags) && (record.tags.length > 0)) {
3085
3095
  for (const tag of record.tags) {
3086
3096
  this.tags.push(new EsolveTag(tag));
@@ -3119,8 +3129,8 @@ class EsolveStockItemBase {
3119
3129
  if (record.custom_fields) {
3120
3130
  this.custom_fields = record.custom_fields;
3121
3131
  }
3122
- seo_title = (_x = record.seo_page_title) !== null && _x !== void 0 ? _x : '';
3123
- seo_keywords = (_y = record.seo_keywords) !== null && _y !== void 0 ? _y : '';
3132
+ seo_title = (_z = record.seo_page_title) !== null && _z !== void 0 ? _z : '';
3133
+ seo_keywords = (_0 = record.seo_keywords) !== null && _0 !== void 0 ? _0 : '';
3124
3134
  }
3125
3135
  this.price = new EsolveStockPrice(base_price, base_price_with_tax, sell_price, sell_price_with_tax);
3126
3136
  if (seo_title.trim() === '') {
@@ -3158,6 +3168,9 @@ class EsolveStockItemBase {
3158
3168
  get original_image_src() {
3159
3169
  return this.getImagePath('original');
3160
3170
  }
3171
+ get available() {
3172
+ return (this.amount_in_stock > 0);
3173
+ }
3161
3174
  getImagePath(image_size) {
3162
3175
  if (this.image_name !== '') {
3163
3176
  return `/images/stock/${image_size}/${this.image_name}`;
@@ -4310,19 +4323,21 @@ class EsolvePaymentService {
4310
4323
  const body = {
4311
4324
  payment: {
4312
4325
  cart_id: transaction_id,
4313
- payment_methods_id
4326
+ payment_methods_id,
4314
4327
  },
4315
4328
  };
4316
- if (typeof card === 'number') {
4317
- body.payment.user_vault_id = card;
4318
- }
4319
- else {
4320
- body.card = {
4321
- card_number: card.card_number,
4322
- card_name: card.name,
4323
- card_cvv: card.cvv,
4324
- card_expiry: this.generateExpiry(card),
4325
- };
4329
+ if (card) {
4330
+ if (typeof card === 'number') {
4331
+ body.payment.user_vault_id = card;
4332
+ }
4333
+ else {
4334
+ body.card = {
4335
+ card_number: card.card_number,
4336
+ card_name: card.name,
4337
+ card_cvv: card.cvv,
4338
+ card_expiry: this.generateExpiry(card),
4339
+ };
4340
+ }
4326
4341
  }
4327
4342
  return this.http
4328
4343
  .post(`${this.config.api_url}/set-payment.php`, body, {