@esolve/ng-esolve-connect 0.64.0 → 0.64.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/cart/esolve-cart.service.mjs +3 -2
- package/esm2022/lib/cart/interfaces/esolve-checkout-body.interface.mjs +1 -1
- package/esm2022/lib/transactions/esolve-transactions.service.mjs +7 -1
- package/esm2022/lib/transactions/interfaces/esolve-transaction-options.interface.mjs +1 -1
- package/esm2022/lib/transactions/types/esolve-transaction-sort-field.type.mjs +1 -1
- package/fesm2022/esolve-ng-esolve-connect.mjs +8 -1
- package/fesm2022/esolve-ng-esolve-connect.mjs.map +1 -1
- package/lib/cart/esolve-cart.service.d.ts +1 -1
- package/lib/cart/interfaces/esolve-checkout-body.interface.d.ts +1 -0
- package/lib/transactions/interfaces/esolve-transaction-options.interface.d.ts +2 -0
- package/package.json +1 -1
|
@@ -164,7 +164,7 @@ export class EsolveCartService {
|
|
|
164
164
|
*
|
|
165
165
|
* @returns An `Observable` with the transaction ID
|
|
166
166
|
*/
|
|
167
|
-
checkout(type, addresses_id, shipping_id, payment_method_id = 0, location_id = 0, comments = '', time_slot) {
|
|
167
|
+
checkout(type, addresses_id, shipping_id, payment_method_id = 0, location_id = 0, comments = '', time_slot, apply_wallet) {
|
|
168
168
|
const body = {
|
|
169
169
|
type,
|
|
170
170
|
addresses_id,
|
|
@@ -174,6 +174,7 @@ export class EsolveCartService {
|
|
|
174
174
|
comments,
|
|
175
175
|
tracking: 0,
|
|
176
176
|
time_slot,
|
|
177
|
+
apply_wallet,
|
|
177
178
|
};
|
|
178
179
|
return this.getTrackingCode().pipe(switchMap((tracking) => {
|
|
179
180
|
if (tracking <= 0) {
|
|
@@ -301,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
301
302
|
providedIn: 'root',
|
|
302
303
|
}]
|
|
303
304
|
}] });
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUlILDRCQUE0QixFQUM1QixvQkFBb0IsR0FFdkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxXQUFXLENBQUM7O0FBd0JuQixNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZ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cUIsRUFBRSxDQUFDO1FBRXhDLElBQUksaUJBQWlCLEVBQUU7WUFDbkIsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFO2dCQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzthQUN6RDtTQUNKO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLHVCQUF1QixDQUMzQixPQUFzQztRQUV0QyxNQUFNLFlBQVksR0FBOEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUxRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUMxQixZQUFZLENBQUMsR0FBRyxDQUNaLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDZixJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUNwQyxDQUFDO1NBQ0w7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FDckIsTUFBOEI7UUFFOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDcEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNmLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDYixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUNYLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDaEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUNoQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLENBQUM7UUFFRixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzhHQWhkUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07OzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBIdHRwQ2xpZW50LFxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBQYXJhbXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgaWlmLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVzb2x2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzJztcbmltcG9ydCB7XG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXG4gICAgRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSxcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxuICAgIEVzb2x2ZVJlc3BvbnNlUmVzdWx0LFxuICAgIEVzb2x2ZVNldFJlc3BvbnNlLFxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xuaW1wb3J0IHsgRXNvbHZlUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xuXG5pbXBvcnQgeyBFc29sdmVDb3Vwb25zU2VydmljZSB9IGZyb20gJy4uL2NvdXBvbnMnO1xuaW1wb3J0IHsgRXNvbHZlVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEVzb2x2ZVZvdWNoZXJzU2VydmljZSB9IGZyb20gJy4uL3ZvdWNoZXJzJztcblxuaW1wb3J0IHtcbiAgICBFc29sdmVDYXJ0QWx0ZXJuYXRpdmUsXG4gICAgRXNvbHZlQ2FydEl0ZW0sXG4gICAgRXNvbHZlQ2FydFRvdGFscyxcbiAgICBFc29sdmVDaGVja291dFJlc3VsdCxcbiAgICBFc29sdmVFbXB0eUNhcnRSZXN1bHQsXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhLFxufSBmcm9tICcuL2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFc29sdmVBZGRpdGlvbmFsV2hlcmUsXG4gICAgRXNvbHZlQ2FydEFsdGVybmF0aXZlUmVjb3JkLFxuICAgIEVzb2x2ZUNhcnRJdGVtUmVjb3JkLFxuICAgIEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2UsXG4gICAgRXNvbHZlQ2FydFNldEl0ZW0sXG4gICAgRXNvbHZlQ2FydFRvdGFsc1JlY29yZCxcbiAgICBFc29sdmVDaGVja291dEJvZHksXG4gICAgRXNvbHZlQ2hlY2tvdXRSZXNwb25zZSxcbiAgICBFc29sdmVUaW1lU2xvdENoZWNrb3V0LFxuICAgIEVzb2x2ZVRyYWNraW5nQ29kZSxcbiAgICBFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGFSZWNvcmQsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICAgIEVzb2x2ZUNhcnQsXG4gICAgRXNvbHZlQ2FydFNldEFjdGlvbixcbiAgICBFc29sdmVDYXJ0RW1wdHlSZXNwb25zZSxcbiAgICBFc29sdmVDYXJ0QWx0ZXJuYXRpdmVzTWFwLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEVzb2x2ZUNvbmZpZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9ySGFuZGxlciA9IGluamVjdChFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlSGFuZGxlciA9IGluamVjdChFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdXBvbnMgPSBpbmplY3QoRXNvbHZlQ291cG9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdm91Y2hlcnMgPSBpbmplY3QoRXNvbHZlVm91Y2hlcnNTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX2NhY2hlZF90cmFja2luZyA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY2FydFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgY2FydCBpdGVtc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJ0KCk6IE9ic2VydmFibGU8RXNvbHZlQ2FydD4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICBjb25zdCBjb3Vwb25zID0gdGhpcy5jb3Vwb25zLmdldEFwcGxpZWRDb3Vwb25LZXlzKCk7XG5cbiAgICAgICAgaWYgKGNvdXBvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY291cG9ucycsIGNvdXBvbnMuam9pbignLCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2FydEl0ZW1SZWNvcmRbXT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LnBocGAsXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydChyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgY2FydCBieSBwcmVmb3JtaW5nIHZhcmlvdXMgYWN0aW9ucywgc3VjaCBhcyBhZGRpbmcsIGVkaXRpbmcgb3IgcmVtb3ZpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBvcHRpb25zIHRvIHVwZGF0ZSB0aGUgY2FydFxuICAgICAqIEBwYXJhbSBhY3Rpb24gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHByZWZvcm1cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHJlc3BvbnNlcyB0aGF0IGdpdmVzIGZlZWRiYWNrIG9uIHRoZSByZXF1ZXN0ZWQgY2hhbmdlc1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDYXJ0KFxuICAgICAgICBpdGVtczogRXNvbHZlQ2FydFNldEl0ZW1bXSxcbiAgICAgICAgYWN0aW9uOiBFc29sdmVDYXJ0U2V0QWN0aW9uID0gJ2FkZCcsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlW10+IHtcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2U+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1pdGVtLnBocGAsXG4gICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXNwb25zZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q2FydEVtcHR5KFxuICAgICAgICB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXG4gICAgICAgIGFkZGl0aW9uYWxfd2hlcmU6IEVzb2x2ZUFkZGl0aW9uYWxXaGVyZVtdLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlRW1wdHlDYXJ0UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWRkaXRpb25hbF93aGVyZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0RW1wdHlSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWVtcHR5LnBocGAsXG4gICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUVtcHR5Q2FydFJlc3VsdChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1jYXJ0LWVtcHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHRvdGFscyBvZiB0aGUgY2FydCB3aXRoIGFsbCB0aGUgdG90YWxzIGNhbGN1bGF0ZWRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGNhcnQgdG90YWxzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvdGFscyhcbiAgICAgICAgdHlwZT86IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRUb3RhbHM+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiB0eXBlID8/ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgdm91Y2hlcnMgPSB0aGlzLnZvdWNoZXJzLmdldEFwcGxpZWRWb3VjaGVyS2V5cygpO1xuXG4gICAgICAgIGlmICh2b3VjaGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd2b3VjaGVycycsIHZvdWNoZXJzLmpvaW4oJywnKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQ+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC10b3RhbHMucGhwYCxcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDYXJ0VG90YWxzKHJlc3BvbnNlLnJlY29yZHMpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSB0cmFja2luZyBjb2RlIGZvciB0aGUgY2FydFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIGNhcnQgdHJhY2tpbmcgY29kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIGlpZihcbiAgICAgICAgICAgICgpID0+IHRoaXMuX2NhY2hlZF90cmFja2luZyA+IDAsXG4gICAgICAgICAgICBvZih0aGlzLl9jYWNoZWRfdHJhY2tpbmcpLFxuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFja2luZ0NvZGU+PihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNoZWNrb3V0LXRyYWNraW5nLnBocGAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgZGF0YSBvZiB0aGUgdHJhbnNhY3Rpb24gZm9yIHRoZSBhbmFseXRpY3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdXNlZCBpbiBlU29sdmVcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBhbmFseXRpY3MgZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VCA9IGFueT4oXG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBudW1iZXIsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGFSZWNvcmQ8VD4+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtdHJhbnNhY3Rpb24tYW5hbHl0aWNzLWRhdGEucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YTxUPihcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYXRlcyBjaGVja291dCBvZiB0aGUgY2FydCBpdGVtc1xuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIGNhcnQgdHlwZSB0aGF0IG5lZWRzIHRvIGJlIGNoZWNrZWQgb3V0XG4gICAgICogQHBhcmFtIGFkZHJlc3Nlc19pZCBUaGUgSUQgb2YgdGhlIGRlbGl2ZXJ5IGFkZHJlc3NcbiAgICAgKiBAcGFyYW0gc2hpcHBpbmdfaWQgVGhlIElEIG9mIHRoZSBzaGlwcGluZyBtZXRob2RcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RfaWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxuICAgICAqIEBwYXJhbSBsb2NhdGlvbl9pZCBUaGUgSUQgb2YgdGhlIHNlbGVjdGVkIGJyYW5jaCBmcm9tIHdpdGggc2hpcHBpbmcgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZFxuICAgICAqIEBwYXJhbSBjb21tZW50cyBBZGRpdGlvbmFsIGNvbW1lbnRzIG9uIHRoZSBjYXJ0XG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgdHJhbnNhY3Rpb24gSURcbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tvdXQoXG4gICAgICAgIHR5cGU6IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSxcbiAgICAgICAgYWRkcmVzc2VzX2lkOiBudW1iZXIsXG4gICAgICAgIHNoaXBwaW5nX2lkOiBudW1iZXIsXG4gICAgICAgIHBheW1lbnRfbWV0aG9kX2lkID0gMCxcbiAgICAgICAgbG9jYXRpb25faWQgPSAwLFxuICAgICAgICBjb21tZW50cyA9ICcnLFxuICAgICAgICB0aW1lX3Nsb3Q/OiBFc29sdmVUaW1lU2xvdENoZWNrb3V0LFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2hlY2tvdXRSZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgYm9keTogRXNvbHZlQ2hlY2tvdXRCb2R5ID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFkZHJlc3Nlc19pZCxcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkLFxuICAgICAgICAgICAgcGF5bWVudF9tZXRob2RfaWQsXG4gICAgICAgICAgICBsb2NhdGlvbl9pZCxcbiAgICAgICAgICAgIGNvbW1lbnRzLFxuICAgICAgICAgICAgdHJhY2tpbmc6IDAsXG4gICAgICAgICAgICB0aW1lX3Nsb3QsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2tpbmdDb2RlKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHJhY2tpbmcgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyB0cmFja2luZztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBib2R5LnRyYWNraW5nID0gdHJhY2tpbmc7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2b3VjaGVyX2tleXMgPSB0aGlzLnZvdWNoZXJzLmdldEFwcGxpZWRWb3VjaGVyS2V5cygpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZvdWNoZXJfa2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkudm91Y2hlcnMgPSB2b3VjaGVyX2tleXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2hlY2tvdXQucGhwYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3Vwb25zLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZvdWNoZXJzLnJlc2V0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2hlY2tvdXRSZXN1bHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY2hlY2tvdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2FydEFsdGVybmF0aXZlcygpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRBbHRlcm5hdGl2ZXNNYXA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0QWx0ZXJuYXRpdmVSZWNvcmRbXT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LWFsdGVybmF0aXZlcy5waHBgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDYXJ0QWx0ZXJuYXRpdmVzKHJlc3BvbnNlLnJlY29yZHMpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYW4gYWx0ZXJuYXRpdmUgc3RvY2sgaXRlbSB0byBjdXJyZW50IGNhcnQgaXRlbVxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIEl0IGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIGNhcnQgaXRlbSBmb3Igd2hpY2ggdGhlIGFsdGVybmF0aXZlIGlzIGJlaW5nIHNldFxuICAgICAqIEBwYXJhbSBhbHRlcm5hdGl2ZSBUaGUgYWx0ZXJuYXRpdmUgdmFsdWUgdGhhdCB5b3Ugd2FudCB0byBzZXQgZm9yIGEgc3BlY2lmaWMgY2FydCBpdGVtLlxuICAgICAqIEByZXR1cm5zIGFuIE9ic2VydmFibGUgb2YgdHlwZSBFc29sdmVSZXNwb25zZVJlc3VsdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q2FydEFsdGVybmF0aXZlKFxuICAgICAgICBpZDogbnVtYmVyLFxuICAgICAgICBhbHRlcm5hdGl2ZTogc3RyaW5nLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUmVzcG9uc2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlUG9zdFJlc3BvbnNlSXRlbT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWFsdGVybmF0aXZlcy5waHBgLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aXZlOiBhbHRlcm5hdGl2ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiBuZXcgRXNvbHZlUmVzcG9uc2VSZXN1bHQocmVzcG9uc2UpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1jYXJ0LWFsdGVybmF0aXZlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZUNhcnRBbHRlcm5hdGl2ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZTxFc29sdmVEZWxldGVSZXNwb25zZT4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZGVsZXRlLWNhcnQtYWx0ZXJuYXRpdmUucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBpZCB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyAhPT0gJ3N1Y2Nlc3MnXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgaHR0cF9yZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlUmVzdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuY29kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwRGVsZXRlRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLWNhcnQtYWx0ZXJuYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHRyZWUgcmVjb3Jkc1xuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnRfaXRlbV9yZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBjYXJ0IGl0ZW1zXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydChjYXJ0X2l0ZW1fcmVjb3JkczogRXNvbHZlQ2FydEl0ZW1SZWNvcmRbXSk6IEVzb2x2ZUNhcnQge1xuICAgICAgICBjb25zdCBjYXJ0X2l0ZW1zOiBFc29sdmVDYXJ0SXRlbVtdID0gW107XG5cbiAgICAgICAgaWYgKGNhcnRfaXRlbV9yZWNvcmRzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcnRfaXRlbV9yZWNvcmQgb2YgY2FydF9pdGVtX3JlY29yZHMpIHtcbiAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1zLnB1c2gobmV3IEVzb2x2ZUNhcnRJdGVtKGNhcnRfaXRlbV9yZWNvcmQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYXJ0X2l0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIGNhcnQgYWx0ZXJuYXRpdmVzIHJlY29yZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xuICAgICAqXG4gICAgICogQHJldHVybnMgQSBgTWFwYCBvZiBwcm9jZXNzZWQgY2FydCBhbHRlcm5hdGl2ZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0QWx0ZXJuYXRpdmVzKFxuICAgICAgICByZWNvcmRzOiBFc29sdmVDYXJ0QWx0ZXJuYXRpdmVSZWNvcmRbXSxcbiAgICApOiBFc29sdmVDYXJ0QWx0ZXJuYXRpdmVzTWFwIHtcbiAgICAgICAgY29uc3QgYWx0ZXJuYXRpdmVzOiBFc29sdmVDYXJ0QWx0ZXJuYXRpdmVzTWFwID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgIGFsdGVybmF0aXZlcy5zZXQoXG4gICAgICAgICAgICAgICAgK3JlY29yZC5pdGVtX2lkLFxuICAgICAgICAgICAgICAgIG5ldyBFc29sdmVDYXJ0QWx0ZXJuYXRpdmUocmVjb3JkKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWx0ZXJuYXRpdmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIGNhcnQgdG90YWxzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVjb3JkIERhdGEgdG8gcHJvY2Vzc1xuICAgICAqIEByZXR1cm5zIFByb2Nlc3NlZCBjYXJ0IHRvdGFsc1xuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnRUb3RhbHMoXG4gICAgICAgIHJlY29yZDogRXNvbHZlQ2FydFRvdGFsc1JlY29yZCxcbiAgICApOiBFc29sdmVDYXJ0VG90YWxzIHtcbiAgICAgICAgY29uc3QgY2FydF90b3RhbHMgPSBuZXcgRXNvbHZlQ2FydFRvdGFscyhcbiAgICAgICAgICAgICtyZWNvcmQucmVjb3JkcyxcbiAgICAgICAgICAgICtyZWNvcmQuaXRlbXMsXG4gICAgICAgICAgICArcmVjb3JkLnRvdGFsLFxuICAgICAgICAgICAgK3JlY29yZC52YXQsXG4gICAgICAgICAgICArcmVjb3JkLmRpc2NvdW50LFxuICAgICAgICAgICAgK3JlY29yZC52b3VjaGVycyxcbiAgICAgICAgICAgICtyZWNvcmQuYWxsb3dhbmNlLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjYXJ0X3RvdGFscztcbiAgICB9XG59XG4iXX0=
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUlILDRCQUE0QixFQUM1QixvQkFBb0IsR0FFdkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxXQUFXLENBQUM7O0FBd0JuQixNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZ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Y29yZSc7XG5cbmltcG9ydCB7XG4gICAgSHR0cENsaWVudCxcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBIdHRwUGFyYW1zLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFc29sdmVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycyc7XG5pbXBvcnQge1xuICAgIEVzb2x2ZURlbGV0ZVJlc3BvbnNlLFxuICAgIEVzb2x2ZUdldFJlc3BvbnNlLFxuICAgIEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0sXG4gICAgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcbiAgICBFc29sdmVSZXNwb25zZVJlc3VsdCxcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcbmltcG9ydCB7IEVzb2x2ZVJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzdWx0Lm1vZGVsJztcblxuaW1wb3J0IHsgRXNvbHZlQ291cG9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb3Vwb25zJztcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBFc29sdmVWb3VjaGVyc1NlcnZpY2UgfSBmcm9tICcuLi92b3VjaGVycyc7XG5cbmltcG9ydCB7XG4gICAgRXNvbHZlQ2FydEFsdGVybmF0aXZlLFxuICAgIEVzb2x2ZUNhcnRJdGVtLFxuICAgIEVzb2x2ZUNhcnRUb3RhbHMsXG4gICAgRXNvbHZlQ2hlY2tvdXRSZXN1bHQsXG4gICAgRXNvbHZlRW1wdHlDYXJ0UmVzdWx0LFxuICAgIEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YSxcbn0gZnJvbSAnLi9jbGFzc2VzJztcbmltcG9ydCB7XG4gICAgRXNvbHZlQWRkaXRpb25hbFdoZXJlLFxuICAgIEVzb2x2ZUNhcnRBbHRlcm5hdGl2ZVJlY29yZCxcbiAgICBFc29sdmVDYXJ0SXRlbVJlY29yZCxcbiAgICBFc29sdmVDYXJ0SXRlbVJlc3BvbnNlLFxuICAgIEVzb2x2ZUNhcnRTZXRJdGVtLFxuICAgIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXG4gICAgRXNvbHZlQ2hlY2tvdXRCb2R5LFxuICAgIEVzb2x2ZUNoZWNrb3V0UmVzcG9uc2UsXG4gICAgRXNvbHZlVGltZVNsb3RDaGVja291dCxcbiAgICBFc29sdmVUcmFja2luZ0NvZGUsXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBFc29sdmVDYXJ0LFxuICAgIEVzb2x2ZUNhcnRTZXRBY3Rpb24sXG4gICAgRXNvbHZlQ2FydEVtcHR5UmVzcG9uc2UsXG4gICAgRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhcnRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChFc29sdmVDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvckhhbmRsZXIgPSBpbmplY3QoRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUhhbmRsZXIgPSBpbmplY3QoRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25zID0gaW5qZWN0KEVzb2x2ZUNvdXBvbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZvdWNoZXJzID0gaW5qZWN0KEVzb2x2ZVZvdWNoZXJzU2VydmljZSk7XG5cbiAgICBwcml2YXRlIF9jYWNoZWRfdHJhY2tpbmcgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGNhcnRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIGNhcnQgaXRlbXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FydCgpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnQ+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgY29uc3QgY291cG9ucyA9IHRoaXMuY291cG9ucy5nZXRBcHBsaWVkQ291cG9uS2V5cygpO1xuXG4gICAgICAgIGlmIChjb3Vwb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NvdXBvbnMnLCBjb3Vwb25zLmpvaW4oJywnKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC5waHBgLFxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnQocmVzcG9uc2UucmVjb3Jkcyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGNhcnQgYnkgcHJlZm9ybWluZyB2YXJpb3VzIGFjdGlvbnMsIHN1Y2ggYXMgYWRkaW5nLCBlZGl0aW5nIG9yIHJlbW92aW5nIGl0ZW1zIGZyb20gdGhlIGNhcnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2Ygb3B0aW9ucyB0byB1cGRhdGUgdGhlIGNhcnRcbiAgICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBkZWZhdWx0IGFjdGlvbiB0byBwcmVmb3JtXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiByZXNwb25zZXMgdGhhdCBnaXZlcyBmZWVkYmFjayBvbiB0aGUgcmVxdWVzdGVkIGNoYW5nZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q2FydChcbiAgICAgICAgaXRlbXM6IEVzb2x2ZUNhcnRTZXRJdGVtW10sXG4gICAgICAgIGFjdGlvbjogRXNvbHZlQ2FydFNldEFjdGlvbiA9ICdhZGQnLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2FydEl0ZW1SZXNwb25zZVtdPiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNhcnQtaXRlbS5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVzcG9uc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3BvbnNlcztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENhcnRFbXB0eShcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgICBhZGRpdGlvbmFsX3doZXJlOiBFc29sdmVBZGRpdGlvbmFsV2hlcmVbXSxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUVtcHR5Q2FydFJlc3VsdD4ge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxfd2hlcmUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEVtcHR5UmVzcG9uc2U+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1lbXB0eS5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVFbXB0eUNhcnRSZXN1bHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY2FydC1lbXB0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSB0b3RhbHMgb2YgdGhlIGNhcnQgd2l0aCBhbGwgdGhlIHRvdGFscyBjYWxjdWxhdGVkXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBjYXJ0IHRvdGFsc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb3RhbHMoXG4gICAgICAgIHR5cGU/OiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0VG90YWxzPiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogdHlwZSA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHZvdWNoZXJzID0gdGhpcy52b3VjaGVycy5nZXRBcHBsaWVkVm91Y2hlcktleXMoKTtcblxuICAgICAgICBpZiAodm91Y2hlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndm91Y2hlcnMnLCB2b3VjaGVycy5qb2luKCcsJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0VG90YWxzUmVjb3JkPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNhcnQtdG90YWxzLnBocGAsXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydFRvdGFscyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgdHJhY2tpbmcgY29kZSBmb3IgdGhlIGNhcnRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBjYXJ0IHRyYWNraW5nIGNvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VHJhY2tpbmdDb2RlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBpaWYoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPiAwLFxuICAgICAgICAgICAgb2YodGhpcy5fY2FjaGVkX3RyYWNraW5nKSxcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhY2tpbmdDb2RlPj4oXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jaGVja291dC10cmFja2luZy5waHBgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkcy50cmFja2luZztcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGRhdGEgb2YgdGhlIHRyYW5zYWN0aW9uIGZvciB0aGUgYW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25faWQgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHVzZWQgaW4gZVNvbHZlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgYW5hbHl0aWNzIGRhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQgPSBhbnk+KFxuICAgICAgICB0cmFuc2FjdGlvbl9pZDogbnVtYmVyLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkPFQ+Pj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyYW5zYWN0aW9uLWFuYWx5dGljcy1kYXRhLnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2lkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4oXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZXMgY2hlY2tvdXQgb2YgdGhlIGNhcnQgaXRlbXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIFRoZSBjYXJ0IHR5cGUgdGhhdCBuZWVkcyB0byBiZSBjaGVja2VkIG91dFxuICAgICAqIEBwYXJhbSBhZGRyZXNzZXNfaWQgVGhlIElEIG9mIHRoZSBkZWxpdmVyeSBhZGRyZXNzXG4gICAgICogQHBhcmFtIHNoaXBwaW5nX2lkIFRoZSBJRCBvZiB0aGUgc2hpcHBpbmcgbWV0aG9kXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcbiAgICAgKiBAcGFyYW0gbG9jYXRpb25faWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBicmFuY2ggZnJvbSB3aXRoIHNoaXBwaW5nIG5lZWRzIHRvIGJlIGNhbGN1bGF0ZWRcbiAgICAgKiBAcGFyYW0gY29tbWVudHMgQWRkaXRpb25hbCBjb21tZW50cyBvbiB0aGUgY2FydFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHRyYW5zYWN0aW9uIElEXG4gICAgICovXG4gICAgcHVibGljIGNoZWNrb3V0KFxuICAgICAgICB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXG4gICAgICAgIGFkZHJlc3Nlc19pZDogbnVtYmVyLFxuICAgICAgICBzaGlwcGluZ19pZDogbnVtYmVyLFxuICAgICAgICBwYXltZW50X21ldGhvZF9pZCA9IDAsXG4gICAgICAgIGxvY2F0aW9uX2lkID0gMCxcbiAgICAgICAgY29tbWVudHMgPSAnJyxcbiAgICAgICAgdGltZV9zbG90PzogRXNvbHZlVGltZVNsb3RDaGVja291dCxcbiAgICAgICAgYXBwbHlfd2FsbGV0PzogYm9vbGVhbixcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNoZWNrb3V0UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZUNoZWNrb3V0Qm9keSA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBhZGRyZXNzZXNfaWQsXG4gICAgICAgICAgICBzaGlwcGluZ19pZCxcbiAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kX2lkLFxuICAgICAgICAgICAgbG9jYXRpb25faWQsXG4gICAgICAgICAgICBjb21tZW50cyxcbiAgICAgICAgICAgIHRyYWNraW5nOiAwLFxuICAgICAgICAgICAgdGltZV9zbG90LFxuICAgICAgICAgICAgYXBwbHlfd2FsbGV0LFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHRyYWNraW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRyYWNraW5nIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgdm91Y2hlcl9rZXlzID0gdGhpcy52b3VjaGVycy5nZXRBcHBsaWVkVm91Y2hlcktleXMoKTtcblxuICAgICAgICAgICAgICAgIGlmICh2b3VjaGVyX2tleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBib2R5LnZvdWNoZXJzID0gdm91Y2hlcl9rZXlzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2hlY2tvdXRSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNoZWNrb3V0LnBocGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY291cG9ucy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52b3VjaGVycy5yZXNldCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNoZWNrb3V0UmVzdWx0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0LWNoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhcnRBbHRlcm5hdGl2ZXMoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0QWx0ZXJuYXRpdmVzTWFwPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2FydEFsdGVybmF0aXZlUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC1hbHRlcm5hdGl2ZXMucGhwYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydEFsdGVybmF0aXZlcyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGFuIGFsdGVybmF0aXZlIHN0b2NrIGl0ZW0gdG8gY3VycmVudCBjYXJ0IGl0ZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBJdCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBjYXJ0IGl0ZW0gZm9yIHdoaWNoIHRoZSBhbHRlcm5hdGl2ZSBpcyBiZWluZyBzZXRcbiAgICAgKiBAcGFyYW0gYWx0ZXJuYXRpdmUgVGhlIGFsdGVybmF0aXZlIHZhbHVlIHRoYXQgeW91IHdhbnQgdG8gc2V0IGZvciBhIHNwZWNpZmljIGNhcnQgaXRlbS5cbiAgICAgKiBAcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIHR5cGUgRXNvbHZlUmVzcG9uc2VSZXN1bHQuXG4gICAgICovXG4gICAgcHVibGljIHNldENhcnRBbHRlcm5hdGl2ZShcbiAgICAgICAgaWQ6IG51bWJlcixcbiAgICAgICAgYWx0ZXJuYXRpdmU6IHN0cmluZyxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVJlc3BvbnNlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1hbHRlcm5hdGl2ZXMucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZTogYWx0ZXJuYXRpdmUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4gbmV3IEVzb2x2ZVJlc3BvbnNlUmVzdWx0KHJlc3BvbnNlKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY2FydC1hbHRlcm5hdGl2ZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGVDYXJ0QWx0ZXJuYXRpdmUoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS1jYXJ0LWFsdGVybmF0aXZlLnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgaWQgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMgIT09ICdzdWNjZXNzJ1xuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGh0dHBfcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVJlc3VsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LmNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cERlbGV0ZUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS1jYXJ0LWFsdGVybmF0aXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0X2l0ZW1fcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnQoY2FydF9pdGVtX3JlY29yZHM6IEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10pOiBFc29sdmVDYXJ0IHtcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGlmIChjYXJ0X2l0ZW1fcmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgY2FydF9pdGVtcy5wdXNoKG5ldyBFc29sdmVDYXJ0SXRlbShjYXJ0X2l0ZW1fcmVjb3JkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FydF9pdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IGFsdGVybmF0aXZlcyByZWNvcmRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgYE1hcGAgb2YgcHJvY2Vzc2VkIGNhcnQgYWx0ZXJuYXRpdmVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydEFsdGVybmF0aXZlcyhcbiAgICAgICAgcmVjb3JkczogRXNvbHZlQ2FydEFsdGVybmF0aXZlUmVjb3JkW10sXG4gICAgKTogRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCB7XG4gICAgICAgIGNvbnN0IGFsdGVybmF0aXZlczogRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCA9IG5ldyBNYXAoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICAgICAgICBhbHRlcm5hdGl2ZXMuc2V0KFxuICAgICAgICAgICAgICAgICtyZWNvcmQuaXRlbV9pZCxcbiAgICAgICAgICAgICAgICBuZXcgRXNvbHZlQ2FydEFsdGVybmF0aXZlKHJlY29yZCksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFsdGVybmF0aXZlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZCBEYXRhIHRvIHByb2Nlc3NcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0VG90YWxzKFxuICAgICAgICByZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXG4gICAgKTogRXNvbHZlQ2FydFRvdGFscyB7XG4gICAgICAgIGNvbnN0IGNhcnRfdG90YWxzID0gbmV3IEVzb2x2ZUNhcnRUb3RhbHMoXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXG4gICAgICAgICAgICArcmVjb3JkLml0ZW1zLFxuICAgICAgICAgICAgK3JlY29yZC50b3RhbCxcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxuICAgICAgICAgICAgK3JlY29yZC5kaXNjb3VudCxcbiAgICAgICAgICAgICtyZWNvcmQudm91Y2hlcnMsXG4gICAgICAgICAgICArcmVjb3JkLmFsbG93YW5jZSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY2FydF90b3RhbHM7XG4gICAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNoZWNrb3V0LWJvZHkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhcnQvaW50ZXJmYWNlcy9lc29sdmUtY2hlY2tvdXQtYm9keS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9ucyc7XG5cbmltcG9ydCB7IEVzb2x2ZVRpbWVTbG90Q2hlY2tvdXQgfSBmcm9tICcuL2Vzb2x2ZS10aW1lLXNsb3QtY2hlY2tvdXQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFc29sdmVDaGVja291dEJvZHkge1xuICAgIHR5cGU6IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZTtcbiAgICBhZGRyZXNzZXNfaWQ6IG51bWJlcjtcbiAgICBzaGlwcGluZ19pZDogbnVtYmVyO1xuICAgIHBheW1lbnRfbWV0aG9kX2lkOiBudW1iZXI7XG4gICAgbG9jYXRpb25faWQ6IG51bWJlcjtcbiAgICBjb21tZW50czogc3RyaW5nO1xuICAgIHRyYWNraW5nOiBudW1iZXI7XG4gICAgdGltZV9zbG90PzogRXNvbHZlVGltZVNsb3RDaGVja291dDtcbiAgICB2b3VjaGVycz86IHN0cmluZ1tdO1xuICAgIGFwcGx5X3dhbGxldD86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -61,6 +61,12 @@ export class EsolveTransactionsService {
|
|
|
61
61
|
if (options.pick_status) {
|
|
62
62
|
params = params.set('pick_status', options.pick_status);
|
|
63
63
|
}
|
|
64
|
+
if (options.from_id) {
|
|
65
|
+
params = params.set('from_id', options.from_id);
|
|
66
|
+
}
|
|
67
|
+
if (options.to_id) {
|
|
68
|
+
params = params.set('to_id', options.to_id);
|
|
69
|
+
}
|
|
64
70
|
if (options.sort) {
|
|
65
71
|
const sort = options.sort;
|
|
66
72
|
if (sort.field) {
|
|
@@ -143,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImpor
|
|
|
143
149
|
providedIn: 'root',
|
|
144
150
|
}]
|
|
145
151
|
}], ctorParameters: function () { return []; } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3RyYW5zYWN0aW9ucy9lc29sdmUtdHJhbnNhY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBS2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLckUsTUFBTSxPQUFPLHlCQUF5QjtJQVFsQyxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDNUIsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQ7UUFuQmlCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENB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VCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFbEQsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsQztTQUNKO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQzs4R0EvTFEseUJBQXlCO2tIQUF6Qix5QkFBeUIsY0FGdEIsTUFBTTs7MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVzb2x2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IEVzb2x2ZUZpbHRlckZhY3RvcnkgfSBmcm9tICcuLi9zaGFyZWQvZmlsdGVycyc7XG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycyc7XG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24nO1xuaW1wb3J0IHtcbiAgICBFc29sdmVUcmFuc2FjdGlvbk9wdGlvbnMsXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25SZWNvcmQsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvbiwgRXNvbHZlVHJhbnNhY3Rpb25MaXN0IH0gZnJvbSAnLi9jbGFzc2VzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXNvbHZlVHJhbnNhY3Rpb25zU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoRXNvbHZlQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoRXNvbHZlU2Vzc2lvblNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JIYW5kbGVyID0gaW5qZWN0KEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBfdXNlcl9pZCA9IDA7XG5cbiAgICBwdWJsaWMgZ2V0IHVzZXJfaWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJfaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB1c2VyX2lkKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZSA+IDAgPyB2YWx1ZSA6IDA7XG5cbiAgICAgICAgaWYgKHRoaXMuX3VzZXJfaWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl91c2VyX2lkID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5nZXRTZXNzaW9uKCkuc3Vic2NyaWJlKChzZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvbi50b2tlbiAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJfaWQgPSBzZXNzaW9uLnVzZXJfaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUcmFuc2FjdGlvbnMoXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZVRyYW5zYWN0aW9uT3B0aW9ucyA9IHt9LFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVHJhbnNhY3Rpb25MaXN0PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2luR3VhcmQoKTtcblxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3VzZXJfaWQnLCB0aGlzLnVzZXJfaWQpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VyX2lkICYmIG9wdGlvbnMudXNlcl9pZCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd1c2VyX2lkJywgLTEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5lcnBfaWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2VycF9pZGVudGlmaWVyJywgb3B0aW9ucy5lcnBfaWRlbnRpZmllcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxvY2F0aW9uX2lkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbG9jYXRpb25faWQnLCBvcHRpb25zLmxvY2F0aW9uX2lkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3R5cGUnLCBvcHRpb25zLnR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyb3dzJywgb3B0aW9ucy5yb3dzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZnJvbV9kYXRlKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZnJvbV9kYXRlJywgb3B0aW9ucy5mcm9tX2RhdGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy50b19kYXRlKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG9fZGF0ZScsIG9wdGlvbnMudG9fZGF0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBpY2tfc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGlja19zdGF0dXMnLCBvcHRpb25zLnBpY2tfc3RhdHVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLnNvcnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoc29ydC5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnb3JkZXInLCBzb3J0Lm9yZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVycyA9IG9wdGlvbnMuZmlsdGVycztcblxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXJzKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzID0gRXNvbHZlRmlsdGVyRmFjdG9yeS5jb3ZlcnRGcm9tT2JqKGZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IEVzb2x2ZUZpbHRlckZhY3RvcnkuY29udmVydFRvSHR0cFBhcmFtcyhcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVRyYW5zYWN0aW9uUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyYW5zYWN0aW9ucy5waHBgLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgK3Jlc3BvbnNlLmFkZGl0aW9uYWxfZGF0YS50b3RhbF9yZWNvcmRzID8/IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gb3B0aW9ucy5yb3dzID8/IHRvdGFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnMucGFnZSB8fCAxO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uTGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRyYW5zYWN0aW9uKFxuICAgICAgICBpZDogbnVtYmVyLFxuICAgICAgICB1c2VyX2lkPzogbnVtYmVyLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVHJhbnNhY3Rpb24+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubG9naW5HdWFyZCgpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvblJlY29yZFtdPj4oXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmFuc2FjdGlvbnMucGhwYCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZDogdXNlcl9pZCA/PyB0aGlzLnVzZXJfaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc1swXTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbG9naW5HdWFyZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudXNlcl9pZCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ySGFuZGxlci50aHJvd0Vycm9yKCdsb2dpbl9yZXF1aXJlZCcsICdMb2dpbiBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJhbnNhY3Rpb25zKFxuICAgICAgICByZWNvcmRzOiBFc29sdmVUcmFuc2FjdGlvblJlY29yZFtdLFxuICAgICk6IEVzb2x2ZVRyYW5zYWN0aW9uW10ge1xuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbnM6IEVzb2x2ZVRyYW5zYWN0aW9uW10gPSBbXTtcblxuICAgICAgICBpZiAocmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uKHJlY29yZCk7XG5cbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbnMucHVzaCh0cmFuc2FjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25zO1xuICAgIH1cbn1cbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3RyYW5zYWN0aW9ucy9lc29sdmUtdHJhbnNhY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBS2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLckUsTUFBTSxPQUFPLHlCQUF5QjtJQVFsQyxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDNUIsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQ7UUFuQmlCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENB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QUFDO0lBRU8sVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFTyxtQkFBbUIsQ0FDdkIsT0FBa0M7UUFFbEMsTUFBTSxZQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUU3QyxJQUFJLE9BQU8sRUFBRTtZQUNULEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVsRCxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2xDO1NBQ0o7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDOzhHQXZNUSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ0QixNQUFNOzsyRkFFVCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRXNvbHZlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgRXNvbHZlRmlsdGVyRmFjdG9yeSB9IGZyb20gJy4uL3NoYXJlZC9maWx0ZXJzJztcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzJztcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbic7XG5pbXBvcnQge1xuICAgIEVzb2x2ZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgICBFc29sdmVUcmFuc2FjdGlvblJlY29yZCxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uLCBFc29sdmVUcmFuc2FjdGlvbkxpc3QgfSBmcm9tICcuL2NsYXNzZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFc29sdmVUcmFuc2FjdGlvbnNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChFc29sdmVDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU2VydmljZSA9IGluamVjdChFc29sdmVTZXNzaW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvckhhbmRsZXIgPSBpbmplY3QoRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSk7XG5cbiAgICBwcml2YXRlIF91c2VyX2lkID0gMDtcblxuICAgIHB1YmxpYyBnZXQgdXNlcl9pZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlcl9pZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHVzZXJfaWQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlID4gMCA/IHZhbHVlIDogMDtcblxuICAgICAgICBpZiAodGhpcy5fdXNlcl9pZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3VzZXJfaWQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFNlc3Npb24oKS5zdWJzY3JpYmUoKHNlc3Npb24pID0+IHtcbiAgICAgICAgICAgIGlmIChzZXNzaW9uLnRva2VuICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlcl9pZCA9IHNlc3Npb24udXNlcl9pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRyYW5zYWN0aW9ucyhcbiAgICAgICAgb3B0aW9uczogRXNvbHZlVHJhbnNhY3Rpb25PcHRpb25zID0ge30sXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVUcmFuc2FjdGlvbkxpc3Q+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubG9naW5HdWFyZCgpO1xuXG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndXNlcl9pZCcsIHRoaXMudXNlcl9pZCk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVzZXJfaWQgJiYgb3B0aW9ucy51c2VyX2lkID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3VzZXJfaWQnLCAtMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmVycF9pZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZXJwX2lkZW50aWZpZXInLCBvcHRpb25zLmVycF9pZGVudGlmaWVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubG9jYXRpb25faWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdsb2NhdGlvbl9pZCcsIG9wdGlvbnMubG9jYXRpb25faWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy50eXBlKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndHlwZScsIG9wdGlvbnMudHlwZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgb3B0aW9ucy5wYWdlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMucm93cykge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5mcm9tX2RhdGUpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdmcm9tX2RhdGUnLCBvcHRpb25zLmZyb21fZGF0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvX2RhdGUpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b19kYXRlJywgb3B0aW9ucy50b19kYXRlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGlja19zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwaWNrX3N0YXR1cycsIG9wdGlvbnMucGlja19zdGF0dXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5mcm9tX2lkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZnJvbV9pZCcsIG9wdGlvbnMuZnJvbV9pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvX2lkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG9faWQnLCBvcHRpb25zLnRvX2lkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLnNvcnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoc29ydC5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnb3JkZXInLCBzb3J0Lm9yZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVycyA9IG9wdGlvbnMuZmlsdGVycztcblxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXJzKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzID0gRXNvbHZlRmlsdGVyRmFjdG9yeS5jb3ZlcnRGcm9tT2JqKGZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IEVzb2x2ZUZpbHRlckZhY3RvcnkuY29udmVydFRvSHR0cFBhcmFtcyhcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVRyYW5zYWN0aW9uUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyYW5zYWN0aW9ucy5waHBgLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgK3Jlc3BvbnNlLmFkZGl0aW9uYWxfZGF0YS50b3RhbF9yZWNvcmRzID8/IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gb3B0aW9ucy5yb3dzID8/IHRvdGFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnMucGFnZSB8fCAxO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uTGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRyYW5zYWN0aW9uKFxuICAgICAgICBpZDogbnVtYmVyLFxuICAgICAgICB1c2VyX2lkPzogbnVtYmVyLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVHJhbnNhY3Rpb24+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubG9naW5HdWFyZCgpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvblJlY29yZFtdPj4oXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmFuc2FjdGlvbnMucGhwYCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZDogdXNlcl9pZCA/PyB0aGlzLnVzZXJfaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc1swXTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbG9naW5HdWFyZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudXNlcl9pZCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ySGFuZGxlci50aHJvd0Vycm9yKCdsb2dpbl9yZXF1aXJlZCcsICdMb2dpbiBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJhbnNhY3Rpb25zKFxuICAgICAgICByZWNvcmRzOiBFc29sdmVUcmFuc2FjdGlvblJlY29yZFtdLFxuICAgICk6IEVzb2x2ZVRyYW5zYWN0aW9uW10ge1xuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbnM6IEVzb2x2ZVRyYW5zYWN0aW9uW10gPSBbXTtcblxuICAgICAgICBpZiAocmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uKHJlY29yZCk7XG5cbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbnMucHVzaCh0cmFuc2FjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25zO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3RyYW5zYWN0aW9ucy9pbnRlcmZhY2VzL2Vzb2x2ZS10cmFuc2FjdGlvbi1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU29ydCB9IGZyb20gJy4uLy4uL3NoYXJlZC9zb3J0JztcbmltcG9ydCB7IEVzb2x2ZUZpbHRlciwgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZmlsdGVycyc7XG5cbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uU29ydEZpZWxkLCBFc29sdmVUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgICB0eXBlPzogRXNvbHZlVHJhbnNhY3Rpb25UeXBlO1xuICAgIHVzZXJfaWQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3RyYW5zYWN0aW9ucy9pbnRlcmZhY2VzL2Vzb2x2ZS10cmFuc2FjdGlvbi1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU29ydCB9IGZyb20gJy4uLy4uL3NoYXJlZC9zb3J0JztcbmltcG9ydCB7IEVzb2x2ZUZpbHRlciwgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZmlsdGVycyc7XG5cbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uU29ydEZpZWxkLCBFc29sdmVUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgICB0eXBlPzogRXNvbHZlVHJhbnNhY3Rpb25UeXBlO1xuICAgIHVzZXJfaWQ/OiBudW1iZXI7XG4gICAgcGFnZT86IG51bWJlcjtcbiAgICByb3dzPzogbnVtYmVyO1xuICAgIGZyb21fZGF0ZT86IHN0cmluZztcbiAgICB0b19kYXRlPzogc3RyaW5nO1xuICAgIGZyb21faWQ/OiBudW1iZXI7XG4gICAgdG9faWQ/OiBudW1iZXI7XG4gICAgZXJwX2lkZW50aWZpZXI/OiBzdHJpbmc7XG4gICAgbG9jYXRpb25faWQ/OiBudW1iZXI7XG4gICAgcGlja19zdGF0dXM/OiBzdHJpbmc7XG4gICAgZmlsdGVycz86IEVzb2x2ZUZpbHRlcltdIHwgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnM7XG4gICAgc29ydD86IEVzb2x2ZVNvcnQ8RXNvbHZlVHJhbnNhY3Rpb25Tb3J0RmllbGQ+O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLXNvcnQtZmllbGQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi90cmFuc2FjdGlvbnMvdHlwZXMvZXNvbHZlLXRyYW5zYWN0aW9uLXNvcnQtZmllbGQudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRXNvbHZlVHJhbnNhY3Rpb25Tb3J0RmllbGQgPVxuICAgIHwgJ2lkJ1xuICAgIHwgJ2RhdGUnXG4gICAgfCAnc3RhdHVzJ1xuICAgIHwgJ2NsaWVudHNfaWQnXG4gICAgfCAnbG9jYXRpb25faWQnXG4gICAgfCAndXNlcl9pZCdcbiAgICB8ICdwaWNrX3N0YXJ0X2RhdGUnXG4gICAgfCAncGlja19lbmRfZGF0ZSdcbiAgICB8ICd0aW1lX3Nsb3RfdGFyZ2V0X2RhdGUnO1xuIl19
|
|
@@ -3518,7 +3518,7 @@ class EsolveCartService {
|
|
|
3518
3518
|
*
|
|
3519
3519
|
* @returns An `Observable` with the transaction ID
|
|
3520
3520
|
*/
|
|
3521
|
-
checkout(type, addresses_id, shipping_id, payment_method_id = 0, location_id = 0, comments = '', time_slot) {
|
|
3521
|
+
checkout(type, addresses_id, shipping_id, payment_method_id = 0, location_id = 0, comments = '', time_slot, apply_wallet) {
|
|
3522
3522
|
const body = {
|
|
3523
3523
|
type,
|
|
3524
3524
|
addresses_id,
|
|
@@ -3528,6 +3528,7 @@ class EsolveCartService {
|
|
|
3528
3528
|
comments,
|
|
3529
3529
|
tracking: 0,
|
|
3530
3530
|
time_slot,
|
|
3531
|
+
apply_wallet,
|
|
3531
3532
|
};
|
|
3532
3533
|
return this.getTrackingCode().pipe(switchMap$1((tracking) => {
|
|
3533
3534
|
if (tracking <= 0) {
|
|
@@ -4239,6 +4240,12 @@ class EsolveTransactionsService {
|
|
|
4239
4240
|
if (options.pick_status) {
|
|
4240
4241
|
params = params.set('pick_status', options.pick_status);
|
|
4241
4242
|
}
|
|
4243
|
+
if (options.from_id) {
|
|
4244
|
+
params = params.set('from_id', options.from_id);
|
|
4245
|
+
}
|
|
4246
|
+
if (options.to_id) {
|
|
4247
|
+
params = params.set('to_id', options.to_id);
|
|
4248
|
+
}
|
|
4242
4249
|
if (options.sort) {
|
|
4243
4250
|
const sort = options.sort;
|
|
4244
4251
|
if (sort.field) {
|