@colijnit/transaction 1.9.29 → 12.0.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.
Files changed (61) hide show
  1. package/app/component/checkout/checkout/checkout.component.d.ts +1 -1
  2. package/app/component/checkout/checkout-login/checkout-login.component.d.ts +1 -1
  3. package/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +1 -1
  4. package/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +2 -2
  5. package/app/component/checkout/ione-checkout.component.d.ts +1 -1
  6. package/app/component/common/icon/icon.component.d.ts +1 -2
  7. package/app/component/common/no-image-display/no-image-display.component.d.ts +1 -1
  8. package/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.d.ts +1 -1
  9. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +1 -1
  10. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +2 -2
  11. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.d.ts +1 -1
  12. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
  13. package/bundles/colijnit-transaction.umd.js +747 -807
  14. package/bundles/colijnit-transaction.umd.js.map +1 -1
  15. package/colijnit-transaction.d.ts +14 -14
  16. package/colijnit-transaction.metadata.json +1 -1
  17. package/esm2015/app/component/checkout/checkout/checkout.component.js +24 -26
  18. package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +18 -27
  19. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +26 -49
  20. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +17 -24
  21. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +19 -23
  22. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +28 -41
  23. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +20 -21
  24. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +27 -36
  25. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +18 -24
  26. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +16 -21
  27. package/esm2015/app/component/checkout/ione-checkout.component.js +28 -33
  28. package/esm2015/app/component/checkout/ione-checkout.module.js +55 -58
  29. package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +17 -17
  30. package/esm2015/app/component/common/icon/icon.component.js +18 -20
  31. package/esm2015/app/component/common/image-display/image-display.component.js +19 -36
  32. package/esm2015/app/component/common/no-image-display/no-image-display.component.js +15 -21
  33. package/esm2015/app/component/core/core.module.js +32 -34
  34. package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +21 -26
  35. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +32 -47
  36. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +51 -52
  37. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +31 -49
  38. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +27 -38
  39. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +28 -37
  40. package/esm2015/app/component/shopping-cart/stock-status-indicator/stock-status-indicator.component.js +13 -17
  41. package/esm2015/app/model/business-object.js +6 -6
  42. package/esm2015/app/pipe/append.pipe.js +6 -8
  43. package/esm2015/app/pipe/co-currency.pipe.js +8 -11
  44. package/esm2015/app/pipe/date-duration.pipe.js +10 -10
  45. package/esm2015/app/pipe/delivery-time.pipe.js +10 -10
  46. package/esm2015/app/pipe/localize.pipe.js +13 -16
  47. package/esm2015/app/pipe/safe-style-pipe.js +12 -12
  48. package/esm2015/app/service/dictionary.service.js +10 -10
  49. package/esm2015/app/service/ione-connector-adapter.service.js +8 -8
  50. package/esm2015/app/service/options.service.js +8 -8
  51. package/esm2015/app/service/transaction-event.service.js +6 -8
  52. package/esm2015/app/service/transaction.service.js +15 -14
  53. package/esm2015/colijnit-transaction.js +15 -15
  54. package/esm2015/factory/decorators/complex-field.decorator.js +2 -2
  55. package/fesm2015/colijnit-transaction.js +638 -763
  56. package/fesm2015/colijnit-transaction.js.map +1 -1
  57. package/package.json +31 -19
  58. package/bundles/colijnit-transaction.umd.min.js +0 -16
  59. package/bundles/colijnit-transaction.umd.min.js.map +0 -1
  60. package/enum/icon.enum.d.ts +0 -281
  61. package/esm2015/enum/icon.enum.js +0 -283
@@ -1,12 +1,10 @@
1
- var CoCurrencyPipe_1;
2
- import { __decorate } from "tslib";
3
1
  /**
4
2
  * A pipe for transforming strings or numbers to currency formatted strings for display as a price text, e.g. the number 1300.82 to "€ 1,300.82"
5
3
  * or the string "9000" to "€ 9000,-"
6
4
  */
7
5
  import { Pipe } from "@angular/core";
8
6
  import { NumberUtils } from "@colijnit/transactionapi/build/utils/number-utils";
9
- let CoCurrencyPipe = CoCurrencyPipe_1 = class CoCurrencyPipe {
7
+ export class CoCurrencyPipe {
10
8
  transform(value, allowZero = false) {
11
9
  if (value === null || value === undefined) {
12
10
  if (allowZero) {
@@ -26,7 +24,7 @@ let CoCurrencyPipe = CoCurrencyPipe_1 = class CoCurrencyPipe {
26
24
  }
27
25
  // append ,- if integer
28
26
  if (NumberUtils.IsInteger(valueAsFloat)) {
29
- suffix = CoCurrencyPipe_1._WholeNumberedPriceSuffix;
27
+ suffix = CoCurrencyPipe._WholeNumberedPriceSuffix;
30
28
  }
31
29
  let valueAsString = valueAsFloat.toString();
32
30
  // add extra zero if price has only one decimal, something like '100.2'
@@ -38,13 +36,12 @@ let CoCurrencyPipe = CoCurrencyPipe_1 = class CoCurrencyPipe {
38
36
  valueAsString = valueAsString.replace(",", "#");
39
37
  valueAsString = valueAsString.replace(".", ",");
40
38
  valueAsString = valueAsString.replace("#", ".");
41
- return CoCurrencyPipe_1._CurrencySymbol + " " + valueAsString + suffix;
39
+ return CoCurrencyPipe._CurrencySymbol + " " + valueAsString + suffix;
42
40
  }
43
- };
41
+ }
44
42
  CoCurrencyPipe._CurrencySymbol = "€";
45
43
  CoCurrencyPipe._WholeNumberedPriceSuffix = ",-";
46
- CoCurrencyPipe = CoCurrencyPipe_1 = __decorate([
47
- Pipe({ name: "coCurrency" })
48
- ], CoCurrencyPipe);
49
- export { CoCurrencyPipe };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tY3VycmVuY3kucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvcGlwZS9jby1jdXJyZW5jeS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRzlFLElBQWEsY0FBYyxzQkFBM0IsTUFBYSxjQUFjO0lBSXpCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsWUFBcUIsS0FBSztRQUM5QyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxJQUFJLFNBQVMsRUFBRTtnQkFDYixLQUFLLEdBQUcsQ0FBQyxDQUFDO2FBQ1g7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUM7YUFDWDtTQUNGO1FBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLE1BQU0sR0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxZQUFZLEdBQVcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ25DLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCx1QkFBdUI7UUFDdkIsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sR0FBRyxnQkFBYyxDQUFDLHlCQUF5QixDQUFDO1NBQ25EO1FBQ0QsSUFBSSxhQUFhLEdBQVcsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BELHVFQUF1RTtRQUN2RSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9FLGFBQWEsSUFBSSxHQUFHLENBQUM7U0FDdEI7UUFDRCxhQUFhLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLGlGQUFpRjtRQUNqRixhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxPQUFPLGdCQUFjLENBQUMsZUFBZSxHQUFHLEdBQUcsR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQ3ZFLENBQUM7Q0FDRixDQUFBO0FBbkN5Qiw4QkFBZSxHQUFXLEdBQUcsQ0FBQztBQUM5Qix3Q0FBeUIsR0FBVyxJQUFJLENBQUM7QUFGdEQsY0FBYztJQUQxQixJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDLENBQUM7R0FDZCxjQUFjLENBb0MxQjtTQXBDWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgcGlwZSBmb3IgdHJhbnNmb3JtaW5nIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjdXJyZW5jeSBmb3JtYXR0ZWQgc3RyaW5ncyBmb3IgZGlzcGxheSBhcyBhIHByaWNlIHRleHQsIGUuZy4gdGhlIG51bWJlciAxMzAwLjgyIHRvIFwi4oKsIDEsMzAwLjgyXCJcclxuICogb3IgdGhlIHN0cmluZyBcIjkwMDBcIiB0byBcIuKCrCA5MDAwLC1cIlxyXG4gKi9cclxuaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL251bWJlci11dGlsc1wiO1xyXG5cclxuQFBpcGUoe25hbWU6IFwiY29DdXJyZW5jeVwifSlcclxuZXhwb3J0IGNsYXNzIENvQ3VycmVuY3lQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX0N1cnJlbmN5U3ltYm9sOiBzdHJpbmcgPSBcIuKCrFwiO1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9XaG9sZU51bWJlcmVkUHJpY2VTdWZmaXg6IHN0cmluZyA9IFwiLC1cIjtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFsbG93WmVybzogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmIChhbGxvd1plcm8pIHtcclxuICAgICAgICB2YWx1ZSA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh2YWx1ZSA9PT0gMCAmJiAhYWxsb3daZXJvKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgbGV0IHN1ZmZpeDogc3RyaW5nID0gXCJcIjtcclxuICAgIGNvbnN0IHZhbHVlQXNGbG9hdDogbnVtYmVyID0gTnVtYmVyVXRpbHMuUGFyc2VGbG9hdCh2YWx1ZSwgMik7XHJcbiAgICBpZiAoTnVtYmVyVXRpbHMuSXNOYU4odmFsdWVBc0Zsb2F0KSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIC8vIGFwcGVuZCAsLSBpZiBpbnRlZ2VyXHJcbiAgICBpZiAoTnVtYmVyVXRpbHMuSXNJbnRlZ2VyKHZhbHVlQXNGbG9hdCkpIHtcclxuICAgICAgc3VmZml4ID0gQ29DdXJyZW5jeVBpcGUuX1dob2xlTnVtYmVyZWRQcmljZVN1ZmZpeDtcclxuICAgIH1cclxuICAgIGxldCB2YWx1ZUFzU3RyaW5nOiBzdHJpbmcgPSB2YWx1ZUFzRmxvYXQudG9TdHJpbmcoKTtcclxuICAgIC8vIGFkZCBleHRyYSB6ZXJvIGlmIHByaWNlIGhhcyBvbmx5IG9uZSBkZWNpbWFsLCBzb21ldGhpbmcgbGlrZSAnMTAwLjInXHJcbiAgICBpZiAodmFsdWVBc1N0cmluZy5pbmRleE9mKFwiLlwiKSA+IC0xICYmIHZhbHVlQXNTdHJpbmcuc3BsaXQoXCIuXCIpWzFdLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB2YWx1ZUFzU3RyaW5nICs9IFwiMFwiO1xyXG4gICAgfVxyXG4gICAgdmFsdWVBc1N0cmluZyA9IE51bWJlclV0aWxzLkFkZFRob3VzYW5kc0NvbW1hc1RvKHZhbHVlQXNTdHJpbmcpO1xyXG4gICAgLy8gc3dpdGNoICcuJyBhbmQgJywnIGNoYXJhY3RlcnMgKER1dGNoIG51bWJlciB2aWV3IC4uIGhhcmQgY29kZWQgZm9ybWF0IGZvciBub3cpXHJcbiAgICB2YWx1ZUFzU3RyaW5nID0gdmFsdWVBc1N0cmluZy5yZXBsYWNlKFwiLFwiLCBcIiNcIik7XHJcbiAgICB2YWx1ZUFzU3RyaW5nID0gdmFsdWVBc1N0cmluZy5yZXBsYWNlKFwiLlwiLCBcIixcIik7XHJcbiAgICB2YWx1ZUFzU3RyaW5nID0gdmFsdWVBc1N0cmluZy5yZXBsYWNlKFwiI1wiLCBcIi5cIik7XHJcbiAgICByZXR1cm4gQ29DdXJyZW5jeVBpcGUuX0N1cnJlbmN5U3ltYm9sICsgXCIgXCIgKyB2YWx1ZUFzU3RyaW5nICsgc3VmZml4O1xyXG4gIH1cclxufVxyXG4iXX0=
44
+ CoCurrencyPipe.decorators = [
45
+ { type: Pipe, args: [{ name: "coCurrency" },] }
46
+ ];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tY3VycmVuY3kucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvcGlwZS9jby1jdXJyZW5jeS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUc5RSxNQUFNLE9BQU8sY0FBYztJQUl6QixTQUFTLENBQUMsS0FBVSxFQUFFLFlBQXFCLEtBQUs7UUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekMsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNYO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxDQUFDO2FBQ1g7U0FDRjtRQUNELElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxNQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sWUFBWSxHQUFXLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsdUJBQXVCO1FBQ3ZCLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN2QyxNQUFNLEdBQUcsY0FBYyxDQUFDLHlCQUF5QixDQUFDO1NBQ25EO1FBQ0QsSUFBSSxhQUFhLEdBQVcsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BELHVFQUF1RTtRQUN2RSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9FLGFBQWEsSUFBSSxHQUFHLENBQUM7U0FDdEI7UUFDRCxhQUFhLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLGlGQUFpRjtRQUNqRixhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxPQUFPLGNBQWMsQ0FBQyxlQUFlLEdBQUcsR0FBRyxHQUFHLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDdkUsQ0FBQzs7QUFsQ3VCLDhCQUFlLEdBQVcsR0FBRyxDQUFDO0FBQzlCLHdDQUF5QixHQUFXLElBQUksQ0FBQzs7WUFIbEUsSUFBSSxTQUFDLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBIHBpcGUgZm9yIHRyYW5zZm9ybWluZyBzdHJpbmdzIG9yIG51bWJlcnMgdG8gY3VycmVuY3kgZm9ybWF0dGVkIHN0cmluZ3MgZm9yIGRpc3BsYXkgYXMgYSBwcmljZSB0ZXh0LCBlLmcuIHRoZSBudW1iZXIgMTMwMC44MiB0byBcIuKCrCAxLDMwMC44MlwiXHJcbiAqIG9yIHRoZSBzdHJpbmcgXCI5MDAwXCIgdG8gXCLigqwgOTAwMCwtXCJcclxuICovXHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtOdW1iZXJVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9udW1iZXItdXRpbHNcIjtcclxuXHJcbkBQaXBlKHtuYW1lOiBcImNvQ3VycmVuY3lcIn0pXHJcbmV4cG9ydCBjbGFzcyBDb0N1cnJlbmN5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9DdXJyZW5jeVN5bWJvbDogc3RyaW5nID0gXCLigqxcIjtcclxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfV2hvbGVOdW1iZXJlZFByaWNlU3VmZml4OiBzdHJpbmcgPSBcIiwtXCI7XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhbGxvd1plcm86IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAoYWxsb3daZXJvKSB7XHJcbiAgICAgICAgdmFsdWUgPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUgPT09IDAgJiYgIWFsbG93WmVybykge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIGxldCBzdWZmaXg6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBjb25zdCB2YWx1ZUFzRmxvYXQ6IG51bWJlciA9IE51bWJlclV0aWxzLlBhcnNlRmxvYXQodmFsdWUsIDIpO1xyXG4gICAgaWYgKE51bWJlclV0aWxzLklzTmFOKHZhbHVlQXNGbG9hdCkpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICAvLyBhcHBlbmQgLC0gaWYgaW50ZWdlclxyXG4gICAgaWYgKE51bWJlclV0aWxzLklzSW50ZWdlcih2YWx1ZUFzRmxvYXQpKSB7XHJcbiAgICAgIHN1ZmZpeCA9IENvQ3VycmVuY3lQaXBlLl9XaG9sZU51bWJlcmVkUHJpY2VTdWZmaXg7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsdWVBc1N0cmluZzogc3RyaW5nID0gdmFsdWVBc0Zsb2F0LnRvU3RyaW5nKCk7XHJcbiAgICAvLyBhZGQgZXh0cmEgemVybyBpZiBwcmljZSBoYXMgb25seSBvbmUgZGVjaW1hbCwgc29tZXRoaW5nIGxpa2UgJzEwMC4yJ1xyXG4gICAgaWYgKHZhbHVlQXNTdHJpbmcuaW5kZXhPZihcIi5cIikgPiAtMSAmJiB2YWx1ZUFzU3RyaW5nLnNwbGl0KFwiLlwiKVsxXS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdmFsdWVBc1N0cmluZyArPSBcIjBcIjtcclxuICAgIH1cclxuICAgIHZhbHVlQXNTdHJpbmcgPSBOdW1iZXJVdGlscy5BZGRUaG91c2FuZHNDb21tYXNUbyh2YWx1ZUFzU3RyaW5nKTtcclxuICAgIC8vIHN3aXRjaCAnLicgYW5kICcsJyBjaGFyYWN0ZXJzIChEdXRjaCBudW1iZXIgdmlldyAuLiBoYXJkIGNvZGVkIGZvcm1hdCBmb3Igbm93KVxyXG4gICAgdmFsdWVBc1N0cmluZyA9IHZhbHVlQXNTdHJpbmcucmVwbGFjZShcIixcIiwgXCIjXCIpO1xyXG4gICAgdmFsdWVBc1N0cmluZyA9IHZhbHVlQXNTdHJpbmcucmVwbGFjZShcIi5cIiwgXCIsXCIpO1xyXG4gICAgdmFsdWVBc1N0cmluZyA9IHZhbHVlQXNTdHJpbmcucmVwbGFjZShcIiNcIiwgXCIuXCIpO1xyXG4gICAgcmV0dXJuIENvQ3VycmVuY3lQaXBlLl9DdXJyZW5jeVN5bWJvbCArIFwiIFwiICsgdmFsdWVBc1N0cmluZyArIHN1ZmZpeDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,9 +1,8 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Inject, Pipe } from "@angular/core";
1
+ import { Pipe } from "@angular/core";
3
2
  import { DictionaryService } from "../service/dictionary.service";
4
3
  import { DateUtils } from "@colijnit/transactionapi/build/utils/date-utils";
5
4
  import { TimeSizeType } from "../enum/time-size.type";
6
- let DateDurationPipe = class DateDurationPipe {
5
+ export class DateDurationPipe {
7
6
  constructor(_dictionary) {
8
7
  this._dictionary = _dictionary;
9
8
  }
@@ -48,10 +47,11 @@ let DateDurationPipe = class DateDurationPipe {
48
47
  }
49
48
  return deltaWeeks + " " + weeksSuffix;
50
49
  }
51
- };
52
- DateDurationPipe = __decorate([
53
- Pipe({ name: "dateDuration", pure: false }),
54
- __param(0, Inject(DictionaryService))
55
- ], DateDurationPipe);
56
- export { DateDurationPipe };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kdXJhdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlL2RhdGUtZHVyYXRpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFFM0IsWUFBaUQsV0FBOEI7UUFBOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO0lBQy9FLENBQUM7SUFFRCxpR0FBaUc7SUFDakcsU0FBUyxDQUFDLEtBQVcsRUFBRSxXQUF5QixZQUFZLENBQUMsSUFBSTtRQUMvRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxRQUFRLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUN6QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksUUFBUSxLQUFLLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELG9DQUFvQztJQUM3QixvQkFBb0IsQ0FBQyxTQUFpQjtRQUMzQyxJQUFJLFNBQWlCLENBQUM7UUFDdEIsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ25CLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEQ7YUFBTTtZQUNMLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLFNBQVMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxzQ0FBc0M7SUFDL0IscUJBQXFCLENBQUMsVUFBa0I7UUFDN0MsSUFBSSxXQUFtQixDQUFDO1FBQ3hCLElBQUksVUFBVSxLQUFLLENBQUMsRUFBRTtZQUNwQixXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25EO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxVQUFVLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0NBQ0YsQ0FBQTtBQTVDWSxnQkFBZ0I7SUFENUIsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFHM0IsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQUYzQixnQkFBZ0IsQ0E0QzVCO1NBNUNZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvZGF0ZS11dGlsc1wiO1xyXG5pbXBvcnQge1RpbWVTaXplVHlwZX0gZnJvbSBcIi4uL2VudW0vdGltZS1zaXplLnR5cGVcIjtcclxuXHJcbkBQaXBlKHtuYW1lOiBcImRhdGVEdXJhdGlvblwiLCBwdXJlOiBmYWxzZX0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlRHVyYXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRGljdGlvbmFyeVNlcnZpY2UpIHByb3RlY3RlZCBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIC8vIFRyYW5zZm9ybXMgc29tZSBkYXRlIGluIHRoZSBmdXR1cmUgdG8gYSBkdXJhdGlvbiBzdHJpbmcsIGUuZy4gXCJ4IGRheXNcIiBvciBcInggd2Vla3NcIiAoZnJvbSBub3cpXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBEYXRlLCB0aW1lU2l6ZTogVGltZVNpemVUeXBlID0gVGltZVNpemVUeXBlLkRheXMpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIGNvbnN0IGRlbHRhRGF5czogbnVtYmVyID0gTWF0aC5yb3VuZChEYXRlVXRpbHMuR2V0RGF5c0Zyb21Ob3codmFsdWUpKTtcclxuXHJcbiAgICBpZiAoZGVsdGFEYXlzID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIk5PV1wiKTtcclxuICAgIH0gZWxzZSBpZiAodGltZVNpemUgPT09IFRpbWVTaXplVHlwZS5EYXlzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUJ5RGVsdGFEYXlzKGRlbHRhRGF5cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRpbWVTaXplID09PSBUaW1lU2l6ZVR5cGUuV2Vla3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtQnlEZWx0YVdlZWtzKGRlbHRhRGF5cyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1CeURlbHRhRGF5cyhkZWx0YURheXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQHJldHVybnMgbGlrZSBcIjEgZGF5XCIgb3IgXCI1IGRheXNcIlxyXG4gIHB1YmxpYyB0cmFuc2Zvcm1CeURlbHRhRGF5cyhkZWx0YURheXM6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgZGF5U3VmZml4OiBzdHJpbmc7XHJcbiAgICBpZiAoZGVsdGFEYXlzID09PSAxKSB7XHJcbiAgICAgIGRheVN1ZmZpeCA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiREFZXCIsIGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRheVN1ZmZpeCA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiREFZU1wiLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVsdGFEYXlzICsgXCIgXCIgKyBkYXlTdWZmaXg7XHJcbiAgfVxyXG5cclxuICAvLyBAcmV0dXJucyBsaWtlIFwiMSB3ZWVrXCIgb3IgXCI1IHdlZWtzXCJcclxuICBwdWJsaWMgdHJhbnNmb3JtQnlEZWx0YVdlZWtzKGRlbHRhV2Vla3M6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgd2Vla3NTdWZmaXg6IHN0cmluZztcclxuICAgIGlmIChkZWx0YVdlZWtzID09PSAxKSB7XHJcbiAgICAgIHdlZWtzU3VmZml4ID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJXRUVLXCIsIGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdlZWtzU3VmZml4ID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJXRUVLU1wiLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVsdGFXZWVrcyArIFwiIFwiICsgd2Vla3NTdWZmaXg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
50
+ }
51
+ DateDurationPipe.decorators = [
52
+ { type: Pipe, args: [{ name: "dateDuration", pure: false },] }
53
+ ];
54
+ DateDurationPipe.ctorParameters = () => [
55
+ { type: DictionaryService }
56
+ ];
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kdXJhdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlL2RhdGUtZHVyYXRpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDMUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBR3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBc0IsV0FBOEI7UUFBOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO0lBQ3BELENBQUM7SUFFRCxpR0FBaUc7SUFDakcsU0FBUyxDQUFDLEtBQVcsRUFBRSxXQUF5QixZQUFZLENBQUMsSUFBSTtRQUMvRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxRQUFRLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUN6QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksUUFBUSxLQUFLLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELG9DQUFvQztJQUM3QixvQkFBb0IsQ0FBQyxTQUFpQjtRQUMzQyxJQUFJLFNBQWlCLENBQUM7UUFDdEIsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ25CLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEQ7YUFBTTtZQUNMLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLFNBQVMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxzQ0FBc0M7SUFDL0IscUJBQXFCLENBQUMsVUFBa0I7UUFDN0MsSUFBSSxXQUFtQixDQUFDO1FBQ3hCLElBQUksVUFBVSxLQUFLLENBQUMsRUFBRTtZQUNwQixXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25EO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxVQUFVLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUN4QyxDQUFDOzs7WUE1Q0YsSUFBSSxTQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDOzs7WUFKakMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge0RhdGVVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7VGltZVNpemVUeXBlfSBmcm9tIFwiLi4vZW51bS90aW1lLXNpemUudHlwZVwiO1xyXG5cclxuQFBpcGUoe25hbWU6IFwiZGF0ZUR1cmF0aW9uXCIsIHB1cmU6IGZhbHNlfSlcclxuZXhwb3J0IGNsYXNzIERhdGVEdXJhdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgLy8gVHJhbnNmb3JtcyBzb21lIGRhdGUgaW4gdGhlIGZ1dHVyZSB0byBhIGR1cmF0aW9uIHN0cmluZywgZS5nLiBcInggZGF5c1wiIG9yIFwieCB3ZWVrc1wiIChmcm9tIG5vdylcclxuICB0cmFuc2Zvcm0odmFsdWU6IERhdGUsIHRpbWVTaXplOiBUaW1lU2l6ZVR5cGUgPSBUaW1lU2l6ZVR5cGUuRGF5cyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGVsdGFEYXlzOiBudW1iZXIgPSBNYXRoLnJvdW5kKERhdGVVdGlscy5HZXREYXlzRnJvbU5vdyh2YWx1ZSkpO1xyXG5cclxuICAgIGlmIChkZWx0YURheXMgPT09IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiTk9XXCIpO1xyXG4gICAgfSBlbHNlIGlmICh0aW1lU2l6ZSA9PT0gVGltZVNpemVUeXBlLkRheXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtQnlEZWx0YURheXMoZGVsdGFEYXlzKTtcclxuICAgIH0gZWxzZSBpZiAodGltZVNpemUgPT09IFRpbWVTaXplVHlwZS5XZWVrcykge1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1CeURlbHRhV2Vla3MoZGVsdGFEYXlzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUJ5RGVsdGFEYXlzKGRlbHRhRGF5cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBAcmV0dXJucyBsaWtlIFwiMSBkYXlcIiBvciBcIjUgZGF5c1wiXHJcbiAgcHVibGljIHRyYW5zZm9ybUJ5RGVsdGFEYXlzKGRlbHRhRGF5czogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXlTdWZmaXg6IHN0cmluZztcclxuICAgIGlmIChkZWx0YURheXMgPT09IDEpIHtcclxuICAgICAgZGF5U3VmZml4ID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJEQVlcIiwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF5U3VmZml4ID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJEQVlTXCIsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkZWx0YURheXMgKyBcIiBcIiArIGRheVN1ZmZpeDtcclxuICB9XHJcblxyXG4gIC8vIEByZXR1cm5zIGxpa2UgXCIxIHdlZWtcIiBvciBcIjUgd2Vla3NcIlxyXG4gIHB1YmxpYyB0cmFuc2Zvcm1CeURlbHRhV2Vla3MoZGVsdGFXZWVrczogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCB3ZWVrc1N1ZmZpeDogc3RyaW5nO1xyXG4gICAgaWYgKGRlbHRhV2Vla3MgPT09IDEpIHtcclxuICAgICAgd2Vla3NTdWZmaXggPSB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIldFRUtcIiwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2Vla3NTdWZmaXggPSB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIldFRUtTXCIsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkZWx0YVdlZWtzICsgXCIgXCIgKyB3ZWVrc1N1ZmZpeDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,10 +1,9 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Inject, Pipe } from "@angular/core";
1
+ import { Pipe } from "@angular/core";
3
2
  import { DateDurationPipe } from "./date-duration.pipe";
4
3
  import { DictionaryService } from "../service/dictionary.service";
5
4
  import { TimeSizeType } from "../enum/time-size.type";
6
5
  import { DateUtils } from "@colijnit/transactionapi/build/utils/date-utils";
7
- let DeliveryTimePipe = class DeliveryTimePipe extends DateDurationPipe {
6
+ export class DeliveryTimePipe extends DateDurationPipe {
8
7
  constructor(_dictionaryService) {
9
8
  super(_dictionaryService);
10
9
  }
@@ -24,10 +23,11 @@ let DeliveryTimePipe = class DeliveryTimePipe extends DateDurationPipe {
24
23
  return super.transform(value, timeSize);
25
24
  }
26
25
  }
27
- };
28
- DeliveryTimePipe = __decorate([
29
- Pipe({ name: "deliveryTime", pure: false }),
30
- __param(0, Inject(DictionaryService))
31
- ], DeliveryTimePipe);
32
- export { DeliveryTimePipe };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlL2RlbGl2ZXJ5LXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFHMUUsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFFcEQsWUFBdUMsa0JBQXFDO1FBQzFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBVyxFQUFFLFdBQXlCLFlBQVksQ0FBQyxJQUFJO1FBQy9ELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7Q0FDRixDQUFBO0FBdkJZLGdCQUFnQjtJQUQ1QixJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQztJQUczQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0dBRjNCLGdCQUFnQixDQXVCNUI7U0F2QlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RGF0ZUR1cmF0aW9uUGlwZX0gZnJvbSBcIi4vZGF0ZS1kdXJhdGlvbi5waXBlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge1RpbWVTaXplVHlwZX0gZnJvbSBcIi4uL2VudW0vdGltZS1zaXplLnR5cGVcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvZGF0ZS11dGlsc1wiO1xyXG5cclxuQFBpcGUoe25hbWU6IFwiZGVsaXZlcnlUaW1lXCIsIHB1cmU6IGZhbHNlfSlcclxuZXhwb3J0IGNsYXNzIERlbGl2ZXJ5VGltZVBpcGUgZXh0ZW5kcyBEYXRlRHVyYXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRGljdGlvbmFyeVNlcnZpY2UpIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKF9kaWN0aW9uYXJ5U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmFuc2Zvcm1zIHNvbWUgRGF0ZSBpbiB0aGUgZnV0dXJlIHRvIGEgZHVyYXRpb24gc3RyaW5nIHN1Y2ggYXMgXCJ4IGRheXNcIiBvciBcInggbW9udGhzXCIgKGZyb20gbm93KS5cclxuICAgKiBPdXRwdXRzICdkaXJlY3RseSBhdmFpbGFibGUnIGlmIDAgZGF5cyBkaWZmLlxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogRGF0ZSwgdGltZVNpemU6IFRpbWVTaXplVHlwZSA9IFRpbWVTaXplVHlwZS5EYXlzKTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGVsdGFEYXlzOiBudW1iZXIgPSBNYXRoLnJvdW5kKERhdGVVdGlscy5HZXREYXlzRnJvbU5vdyh2YWx1ZSkpO1xyXG5cclxuICAgIGlmIChkZWx0YURheXMgPD0gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJERUxJVkVSWV9ESVJFQ1RcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKHZhbHVlLCB0aW1lU2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
26
+ }
27
+ DeliveryTimePipe.decorators = [
28
+ { type: Pipe, args: [{ name: "deliveryTime", pure: false },] }
29
+ ];
30
+ DeliveryTimePipe.ctorParameters = () => [
31
+ { type: DictionaryService }
32
+ ];
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlL2RlbGl2ZXJ5LXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRzFFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFFcEQsWUFBWSxrQkFBcUM7UUFDL0MsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFXLEVBQUUsV0FBeUIsWUFBWSxDQUFDLElBQUk7UUFDL0QsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV0RSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7O1lBdkJGLElBQUksU0FBQyxFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQzs7O1lBSmpDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RhdGVEdXJhdGlvblBpcGV9IGZyb20gXCIuL2RhdGUtZHVyYXRpb24ucGlwZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUaW1lU2l6ZVR5cGV9IGZyb20gXCIuLi9lbnVtL3RpbWUtc2l6ZS50eXBlXCI7XHJcbmltcG9ydCB7RGF0ZVV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL2RhdGUtdXRpbHNcIjtcclxuXHJcbkBQaXBlKHtuYW1lOiBcImRlbGl2ZXJ5VGltZVwiLCBwdXJlOiBmYWxzZX0pXHJcbmV4cG9ydCBjbGFzcyBEZWxpdmVyeVRpbWVQaXBlIGV4dGVuZHMgRGF0ZUR1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihfZGljdGlvbmFyeVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtcyBzb21lIERhdGUgaW4gdGhlIGZ1dHVyZSB0byBhIGR1cmF0aW9uIHN0cmluZyBzdWNoIGFzIFwieCBkYXlzXCIgb3IgXCJ4IG1vbnRoc1wiIChmcm9tIG5vdykuXHJcbiAgICogT3V0cHV0cyAnZGlyZWN0bHkgYXZhaWxhYmxlJyBpZiAwIGRheXMgZGlmZi5cclxuICAgKi9cclxuICB0cmFuc2Zvcm0odmFsdWU6IERhdGUsIHRpbWVTaXplOiBUaW1lU2l6ZVR5cGUgPSBUaW1lU2l6ZVR5cGUuRGF5cyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRlbHRhRGF5czogbnVtYmVyID0gTWF0aC5yb3VuZChEYXRlVXRpbHMuR2V0RGF5c0Zyb21Ob3codmFsdWUpKTtcclxuXHJcbiAgICBpZiAoZGVsdGFEYXlzIDw9IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiREVMSVZFUllfRElSRUNUXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgdGltZVNpemUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,10 +1,8 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Inject, Pipe } from "@angular/core";
1
+ import { Pipe } from "@angular/core";
3
2
  import { DictionaryService } from "../service/dictionary.service";
4
- let LocalizePipe =
5
3
  // A pipe for localizing string values in view templates.
6
- class LocalizePipe {
7
- // tslint:disable-next-line:variable-name
4
+ export class LocalizePipe {
5
+ // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match
8
6
  constructor(_dictionaryService) {
9
7
  this._dictionaryService = _dictionaryService;
10
8
  }
@@ -18,14 +16,13 @@ class LocalizePipe {
18
16
  }
19
17
  return this._dictionaryService.get(value, upperCaseFirst, ...replace);
20
18
  }
21
- };
22
- LocalizePipe = __decorate([
23
- Pipe({
24
- name: "localize"
25
- })
26
- // A pipe for localizing string values in view templates.
27
- ,
28
- __param(0, Inject(DictionaryService))
29
- ], LocalizePipe);
30
- export { LocalizePipe };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvcGlwZS9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFNbEUsSUFBYSxZQUFZO0FBRHpCLHlEQUF5RDtBQUN6RCxNQUFhLFlBQVk7SUFFdkIseUNBQXlDO0lBQ3pDLFlBQStDLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO0lBQUcsQ0FBQztJQUV4RixTQUFTLENBQUMsS0FBYSxFQUFFLGlCQUEwQixJQUFJLEVBQUUsVUFBMkIsRUFBRTtRQUNwRixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0YsQ0FBQTtBQWZZLFlBQVk7SUFKeEIsSUFBSSxDQUFDO1FBQ0osSUFBSSxFQUFFLFVBQVU7S0FDakIsQ0FBQztJQUNGLHlEQUF5RDs7SUFJMUMsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQUgzQixZQUFZLENBZXhCO1NBZlksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6IFwibG9jYWxpemVcIlxyXG59KVxyXG4vLyBBIHBpcGUgZm9yIGxvY2FsaXppbmcgc3RyaW5nIHZhbHVlcyBpbiB2aWV3IHRlbXBsYXRlcy5cclxuZXhwb3J0IGNsYXNzIExvY2FsaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRGljdGlvbmFyeVNlcnZpY2UpIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSkge31cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIHVwcGVyQ2FzZUZpcnN0OiBib29sZWFuID0gdHJ1ZSwgcmVwbGFjZTogc3RyaW5nfHN0cmluZ1tdID0gW10pOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIHJlcGxhY2UgPSByZXBsYWNlID8gcmVwbGFjZSA6IFtdO1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlcGxhY2UpKSB7XHJcbiAgICAgIHJlcGxhY2UgPSBbcmVwbGFjZV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KHZhbHVlLCB1cHBlckNhc2VGaXJzdCwgLi4ucmVwbGFjZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
19
+ }
20
+ LocalizePipe.decorators = [
21
+ { type: Pipe, args: [{
22
+ name: "localize"
23
+ },] }
24
+ ];
25
+ LocalizePipe.ctorParameters = () => [
26
+ { type: DictionaryService }
27
+ ];
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvcGlwZS9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS2xFLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sWUFBWTtJQUV2Qiw4R0FBOEc7SUFDOUcsWUFBb0Isa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7SUFBRyxDQUFDO0lBRTdELFNBQVMsQ0FBQyxLQUFhLEVBQUUsaUJBQTBCLElBQUksRUFBRSxVQUEyQixFQUFFO1FBQ3BGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OztZQWxCRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7YUFDakI7OztZQUpRLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6IFwibG9jYWxpemVcIlxyXG59KVxyXG4vLyBBIHBpcGUgZm9yIGxvY2FsaXppbmcgc3RyaW5nIHZhbHVlcyBpbiB2aWV3IHRlbXBsYXRlcy5cclxuZXhwb3J0IGNsYXNzIExvY2FsaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLCBuby11bmRlcnNjb3JlLWRhbmdsZSwgaWQtYmxhY2tsaXN0LCBpZC1tYXRjaFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSkge31cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIHVwcGVyQ2FzZUZpcnN0OiBib29sZWFuID0gdHJ1ZSwgcmVwbGFjZTogc3RyaW5nfHN0cmluZ1tdID0gW10pOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICAgIHJlcGxhY2UgPSByZXBsYWNlID8gcmVwbGFjZSA6IFtdO1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlcGxhY2UpKSB7XHJcbiAgICAgIHJlcGxhY2UgPSBbcmVwbGFjZV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KHZhbHVlLCB1cHBlckNhc2VGaXJzdCwgLi4ucmVwbGFjZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,19 +1,19 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Inject, Pipe } from "@angular/core";
1
+ import { Pipe } from "@angular/core";
3
2
  import { DomSanitizer } from "@angular/platform-browser";
4
- let SafeStylePipe = class SafeStylePipe {
3
+ export class SafeStylePipe {
5
4
  constructor(_sanitizer) {
6
5
  this._sanitizer = _sanitizer;
7
6
  }
8
7
  transform(value) {
9
8
  return this._sanitizer.bypassSecurityTrustStyle(value);
10
9
  }
11
- };
12
- SafeStylePipe = __decorate([
13
- Pipe({
14
- name: "safeStyle"
15
- }),
16
- __param(0, Inject(DomSanitizer))
17
- ], SafeStylePipe);
18
- export { SafeStylePipe };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1zdHlsZS1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlL3NhZmUtc3R5bGUtcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUtsRSxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0lBRXhCLFlBQTBDLFVBQXdCO1FBQXhCLGVBQVUsR0FBVixVQUFVLENBQWM7SUFBRyxDQUFDO0lBRXRFLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YsQ0FBQTtBQVBZLGFBQWE7SUFIekIsSUFBSSxDQUFDO1FBQ0osSUFBSSxFQUFFLFdBQVc7S0FDbEIsQ0FBQztJQUdhLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO0dBRnRCLGFBQWEsQ0FPekI7U0FQWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlU3R5bGV9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogXCJzYWZlU3R5bGVcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FmZVN0eWxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERvbVNhbml0aXplcikgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogU2FmZVN0eWxlIHwgYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
10
+ }
11
+ SafeStylePipe.decorators = [
12
+ { type: Pipe, args: [{
13
+ name: "safeStyle"
14
+ },] }
15
+ ];
16
+ SafeStylePipe.ctorParameters = () => [
17
+ { type: DomSanitizer }
18
+ ];
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1zdHlsZS1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlL3NhZmUtc3R5bGUtcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFLbEUsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsVUFBd0I7UUFBeEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztJQUFHLENBQUM7SUFFaEQsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7OztZQVRGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsV0FBVzthQUNsQjs7O1lBSk8sWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVN0eWxlfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6IFwic2FmZVN0eWxlXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhZmVTdHlsZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogU2FmZVN0eWxlIHwgYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,10 +1,10 @@
1
- import { __awaiter, __decorate } from "tslib";
1
+ import { __awaiter } from "tslib";
2
2
  import { Injectable } from "@angular/core";
3
3
  import { LanguageCode } from "../enum/language-code.enum";
4
4
  import { StringUtils } from "../utils/string-utils";
5
5
  import { Dictionary } from "../../assets/dictionary/text.properties";
6
6
  // The localization service, providing peers with text translation functionality.
7
- let DictionaryService = class DictionaryService {
7
+ export class DictionaryService {
8
8
  constructor() {
9
9
  this.dictionaryUrl = "js/browser/res/dictionary/";
10
10
  // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();
@@ -25,9 +25,9 @@ let DictionaryService = class DictionaryService {
25
25
  this._language = language || LanguageCode.Dutch;
26
26
  if (!this._dictionaries.has(this._language)) {
27
27
  const dictionary = new Dictionary();
28
- // tslint:disable-next-line:no-magic-numbers
28
+ // eslint-disable-next-line no-magic-numbers
29
29
  if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
30
- // tslint:disable-next-line:no-magic-numbers
30
+ // eslint-disable-next-line no-magic-numbers
31
31
  this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
32
32
  }
33
33
  }
@@ -57,9 +57,9 @@ let DictionaryService = class DictionaryService {
57
57
  }
58
58
  return text;
59
59
  }
60
- };
61
- DictionaryService = __decorate([
62
- Injectable()
63
- ], DictionaryService);
64
- export { DictionaryService };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxpRkFBaUY7QUFFakYsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7SUF1QjVCO1FBdEJpQixrQkFBYSxHQUFXLDRCQUE0QixDQUFDO1FBZXRFLG1KQUFtSjtRQUMzSSxrQkFBYSxHQUEyQyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUc3RyxpSEFBaUg7UUFDaEcsaUJBQVksR0FBVyxJQUFJLENBQUM7SUFJN0MsQ0FBQztJQXRCRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNoRSxDQUFDO0lBaUJELHFEQUFxRDtJQUN4QyxhQUFhLENBQUMsUUFBZ0I7O1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDM0MsTUFBTSxVQUFVLEdBQWUsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEQsNENBQTRDO2dCQUM1QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUMvRSw0Q0FBNEM7b0JBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN2RzthQUNGO1FBQ0gsQ0FBQztLQUFBO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxpQkFBMEIsSUFBSSxFQUFFLEdBQUcsZ0JBQTBCO1FBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQUksR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXpELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUM7U0FDdkY7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFBO0FBbkVZLGlCQUFpQjtJQUQ3QixVQUFVLEVBQUU7R0FDQSxpQkFBaUIsQ0FtRTdCO1NBbkVZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tIFwiLi4vZW51bS9sYW5ndWFnZS1jb2RlLmVudW1cIjtcclxuaW1wb3J0IHsgU3RyaW5nVXRpbHMgfSBmcm9tIFwiLi4vdXRpbHMvc3RyaW5nLXV0aWxzXCI7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tIFwiLi4vLi4vYXNzZXRzL2RpY3Rpb25hcnkvdGV4dC5wcm9wZXJ0aWVzXCI7XHJcblxyXG4vLyBUaGUgbG9jYWxpemF0aW9uIHNlcnZpY2UsIHByb3ZpZGluZyBwZWVycyB3aXRoIHRleHQgdHJhbnNsYXRpb24gZnVuY3Rpb25hbGl0eS5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyeVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGljdGlvbmFyeVVybDogc3RyaW5nID0gXCJqcy9icm93c2VyL3Jlcy9kaWN0aW9uYXJ5L1wiO1xyXG5cclxuICBwdWJsaWMgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHJvb3RVcmwodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcm9vdFVybCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZGljdEJhc2VQYXRoID0gdGhpcy5fcm9vdFVybCArIFwiL1wiICsgdGhpcy5kaWN0aW9uYXJ5VXJsO1xyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGRpY3Rpb25hcnlMb2FkZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIF9kaWN0QmFzZVBhdGg6IHN0cmluZztcclxuICBwcml2YXRlIF9yb290VXJsOiBzdHJpbmc7XHJcbiAgLy8gcHJpdmF0ZSBfZGljdGlvbmFyeVByb21pc2U6IE1hcDxMYW5ndWFnZUNvZGUsIFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4+ID0gbmV3IE1hcDxMYW5ndWFnZUNvZGUsIFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4+KCk7XHJcbiAgcHJpdmF0ZSBfZGljdGlvbmFyaWVzOiBNYXA8c3RyaW5nLCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PiA9IG5ldyBNYXA8c3RyaW5nLCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PigpO1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XHJcblxyXG4gIC8vIFNvbWUgZGljdGlvbmFyeSB2YWx1ZXMgaGF2ZSBvbmUgb3IgbW9yZSAnfH4nIHRleHRzIGluIHRoZW0sIG1lYW50IHRvIGJlIHJlcGxhY2VkIHdpdGggY2xpZW50LXNpZGUgZ2l2ZW4gdGV4dHMuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwifH5cIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICAvLyBMb2FkcyB0aGUgZGljdGlvbmFyeSBmb3IgZ2l2ZW4gbGFuZ3VhZ2UgaW4gbWVtb3J5LlxyXG4gIHB1YmxpYyBhc3luYyBzZXREaWN0aW9uYXJ5KGxhbmd1YWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX2xhbmd1YWdlID0gbGFuZ3VhZ2UgfHwgTGFuZ3VhZ2VDb2RlLkR1dGNoO1xyXG4gICAgaWYgKCF0aGlzLl9kaWN0aW9uYXJpZXMuaGFzKHRoaXMuX2xhbmd1YWdlKSkge1xyXG4gICAgICBjb25zdCBkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5ID0gbmV3IERpY3Rpb25hcnkoKTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW1hZ2ljLW51bWJlcnNcclxuICAgICAgaWYgKGRpY3Rpb25hcnkuc3RyaW5nc1t0aGlzLl9sYW5ndWFnZS5zdWJzdHIoMCwgMikudG9Mb3dlckNhc2UoKV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1tYWdpYy1udW1iZXJzXHJcbiAgICAgICAgdGhpcy5fZGljdGlvbmFyaWVzLnNldCh0aGlzLl9sYW5ndWFnZSwgZGljdGlvbmFyeS5zdHJpbmdzW3RoaXMuX2xhbmd1YWdlLnN1YnN0cigwLCAyKS50b0xvd2VyQ2FzZSgpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxvY2FsaXplZCB0ZXh0IGZvciB0aGUgZ2l2ZW4gZGljdGlvbmFyeSBrZXkuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3VwcGVyQ2FzZUZpcnN0ID0gdHJ1ZV0gRmFsc2UgZm9yIGZpcnN0IGxldHRlciBsb3dlcmNhc2UsIHRydWUgZm9yIGZpcnN0IGxldHRlciB1cHBlcmNhc2UgZm9yIHJldHVybmVkIGRpY3QgdmFsXHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcmVwbGFjZW1lbnRUZXh0cyBSZXN0IHBhcmFtcyBmb3IgcmVwbGFjZW1lbnQgb2YgJ3x+JyBpbiByZXR1cm5lZCBkaWN0IHZhbHVlXHJcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHRyYW5zbGF0ZWQgdGV4dCBmb3IgZ2l2ZW4gZGljdGlvbmFyeSBrZXlcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nLCB1cHBlckNhc2VGaXJzdDogYm9vbGVhbiA9IHRydWUsIC4uLnJlcGxhY2VtZW50VGV4dHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIGlmICghU3RyaW5nVXRpbHMuSXNTdHJpbmdXaXRoTGVuZ3RoKGtleSkpIHtcclxuICAgICAgcmV0dXJuIGtleSB8fCBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0ZXh0OiBzdHJpbmcgPSB0aGlzLl9kaWN0aW9uYXJpZXMuZ2V0KHRoaXMubGFuZ3VhZ2UpW2tleV07XHJcbiAgICB0ZXh0ID0gU3RyaW5nVXRpbHMuSXNTdHJpbmdXaXRoTGVuZ3RoKHRleHQpID8gdGV4dCA6IGtleTtcclxuXHJcbiAgICBpZiAodXBwZXJDYXNlRmlyc3QpIHtcclxuICAgICAgdGV4dCA9IHRleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGV4dCA9IHRleHQuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyZXBsYWNlbWVudFRleHRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGV4dCA9IFN0cmluZ1V0aWxzLlJlcGxhY2VPY2N1cnJlbmNlc0luKHRleHQsIHRoaXMuX3BsYWNlaG9sZGVyLCAuLi5yZXBsYWNlbWVudFRleHRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcbn1cclxuIl19
60
+ }
61
+ DictionaryService.decorators = [
62
+ { type: Injectable }
63
+ ];
64
+ DictionaryService.ctorParameters = () => [];
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxpRkFBaUY7QUFFakYsTUFBTSxPQUFPLGlCQUFpQjtJQXVCNUI7UUF0QmlCLGtCQUFhLEdBQVcsNEJBQTRCLENBQUM7UUFldEUsbUpBQW1KO1FBQzNJLGtCQUFhLEdBQTJDLElBQUksR0FBRyxFQUFxQyxDQUFDO1FBRzdHLGlIQUFpSDtRQUNoRyxpQkFBWSxHQUFXLElBQUksQ0FBQztJQUk3QyxDQUFDO0lBdEJELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2hFLENBQUM7SUFpQkQscURBQXFEO0lBQ3hDLGFBQWEsQ0FBQyxRQUFnQjs7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUMzQyxNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoRCw0Q0FBNEM7Z0JBQzVDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxTQUFTLEVBQUU7b0JBQy9FLDRDQUE0QztvQkFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZHO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7SUFFRDs7Ozs7O09BTUc7SUFDSSxHQUFHLENBQUMsR0FBVyxFQUFFLGlCQUEwQixJQUFJLEVBQUUsR0FBRyxnQkFBMEI7UUFDbkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUM7U0FDbEI7UUFFRCxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBSSxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFekQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRDtRQUVELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztTQUN2RjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7O1lBbkVGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSBcIi4uL2VudW0vbGFuZ3VhZ2UtY29kZS5lbnVtXCI7XHJcbmltcG9ydCB7IFN0cmluZ1V0aWxzIH0gZnJvbSBcIi4uL3V0aWxzL3N0cmluZy11dGlsc1wiO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSBcIi4uLy4uL2Fzc2V0cy9kaWN0aW9uYXJ5L3RleHQucHJvcGVydGllc1wiO1xyXG5cclxuLy8gVGhlIGxvY2FsaXphdGlvbiBzZXJ2aWNlLCBwcm92aWRpbmcgcGVlcnMgd2l0aCB0ZXh0IHRyYW5zbGF0aW9uIGZ1bmN0aW9uYWxpdHkuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERpY3Rpb25hcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRpY3Rpb25hcnlVcmw6IHN0cmluZyA9IFwianMvYnJvd3Nlci9yZXMvZGljdGlvbmFyeS9cIjtcclxuXHJcbiAgcHVibGljIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCByb290VXJsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Jvb3RVcmwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2RpY3RCYXNlUGF0aCA9IHRoaXMuX3Jvb3RVcmwgKyBcIi9cIiArIHRoaXMuZGljdGlvbmFyeVVybDtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBkaWN0aW9uYXJ5TG9hZGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBfZGljdEJhc2VQYXRoOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcm9vdFVybDogc3RyaW5nO1xyXG4gIC8vIHByaXZhdGUgX2RpY3Rpb25hcnlQcm9taXNlOiBNYXA8TGFuZ3VhZ2VDb2RlLCBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+PiA9IG5ldyBNYXA8TGFuZ3VhZ2VDb2RlLCBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+PigpO1xyXG4gIHByaXZhdGUgX2RpY3Rpb25hcmllczogTWFwPHN0cmluZywgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4gPSBuZXcgTWFwPHN0cmluZywgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4oKTtcclxuICBwcml2YXRlIF9sYW5ndWFnZTogc3RyaW5nO1xyXG5cclxuICAvLyBTb21lIGRpY3Rpb25hcnkgdmFsdWVzIGhhdmUgb25lIG9yIG1vcmUgJ3x+JyB0ZXh0cyBpbiB0aGVtLCBtZWFudCB0byBiZSByZXBsYWNlZCB3aXRoIGNsaWVudC1zaWRlIGdpdmVuIHRleHRzLlxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsYWNlaG9sZGVyOiBzdHJpbmcgPSBcInx+XCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgLy8gTG9hZHMgdGhlIGRpY3Rpb25hcnkgZm9yIGdpdmVuIGxhbmd1YWdlIGluIG1lbW9yeS5cclxuICBwdWJsaWMgYXN5bmMgc2V0RGljdGlvbmFyeShsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9sYW5ndWFnZSA9IGxhbmd1YWdlIHx8IExhbmd1YWdlQ29kZS5EdXRjaDtcclxuICAgIGlmICghdGhpcy5fZGljdGlvbmFyaWVzLmhhcyh0aGlzLl9sYW5ndWFnZSkpIHtcclxuICAgICAgY29uc3QgZGljdGlvbmFyeTogRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5KCk7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXHJcbiAgICAgIGlmIChkaWN0aW9uYXJ5LnN0cmluZ3NbdGhpcy5fbGFuZ3VhZ2Uuc3Vic3RyKDAsIDIpLnRvTG93ZXJDYXNlKCldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xyXG4gICAgICAgIHRoaXMuX2RpY3Rpb25hcmllcy5zZXQodGhpcy5fbGFuZ3VhZ2UsIGRpY3Rpb25hcnkuc3RyaW5nc1t0aGlzLl9sYW5ndWFnZS5zdWJzdHIoMCwgMikudG9Mb3dlckNhc2UoKV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsb2NhbGl6ZWQgdGV4dCBmb3IgdGhlIGdpdmVuIGRpY3Rpb25hcnkga2V5LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt1cHBlckNhc2VGaXJzdCA9IHRydWVdIEZhbHNlIGZvciBmaXJzdCBsZXR0ZXIgbG93ZXJjYXNlLCB0cnVlIGZvciBmaXJzdCBsZXR0ZXIgdXBwZXJjYXNlIGZvciByZXR1cm5lZCBkaWN0IHZhbFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHJlcGxhY2VtZW50VGV4dHMgUmVzdCBwYXJhbXMgZm9yIHJlcGxhY2VtZW50IG9mICd8ficgaW4gcmV0dXJuZWQgZGljdCB2YWx1ZVxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSB0cmFuc2xhdGVkIHRleHQgZm9yIGdpdmVuIGRpY3Rpb25hcnkga2V5XHJcbiAgICovXHJcbiAgcHVibGljIGdldChrZXk6IHN0cmluZywgdXBwZXJDYXNlRmlyc3Q6IGJvb2xlYW4gPSB0cnVlLCAuLi5yZXBsYWNlbWVudFRleHRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIVN0cmluZ1V0aWxzLklzU3RyaW5nV2l0aExlbmd0aChrZXkpKSB7XHJcbiAgICAgIHJldHVybiBrZXkgfHwgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdGV4dDogc3RyaW5nID0gdGhpcy5fZGljdGlvbmFyaWVzLmdldCh0aGlzLmxhbmd1YWdlKVtrZXldO1xyXG4gICAgdGV4dCA9IFN0cmluZ1V0aWxzLklzU3RyaW5nV2l0aExlbmd0aCh0ZXh0KSA/IHRleHQgOiBrZXk7XHJcblxyXG4gICAgaWYgKHVwcGVyQ2FzZUZpcnN0KSB7XHJcbiAgICAgIHRleHQgPSB0ZXh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRleHQgPSB0ZXh0LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocmVwbGFjZW1lbnRUZXh0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRleHQgPSBTdHJpbmdVdGlscy5SZXBsYWNlT2NjdXJyZW5jZXNJbih0ZXh0LCB0aGlzLl9wbGFjZWhvbGRlciwgLi4ucmVwbGFjZW1lbnRUZXh0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { __awaiter, __decorate } from "tslib";
1
+ import { __awaiter } from "tslib";
2
2
  import { Injectable } from "@angular/core";
3
3
  import { CustomerFullObject } from "@colijnit/transactionapi/build/model/customer-full-object.bo";
4
4
  import { TransactionInfoResponse } from "@colijnit/transactionapi/build/model/transaction-info-response.bo";
@@ -9,7 +9,7 @@ import { LineOperationResponse } from "@colijnit/transactionapi/build/model/line
9
9
  import { Transaction } from "@colijnit/transactionapi/build/transaction";
10
10
  import { BusinessObjectFactory } from "../../factory/business-object-factory";
11
11
  import { ImageUtils } from "@colijnit/transactionapi/build/utils/image-utils";
12
- let IOneConnectorAdapterService = class IOneConnectorAdapterService {
12
+ export class IOneConnectorAdapterService {
13
13
  constructor() {
14
14
  this._boFactory = new BusinessObjectFactory();
15
15
  this._countryList = [];
@@ -459,9 +459,9 @@ let IOneConnectorAdapterService = class IOneConnectorAdapterService {
459
459
  });
460
460
  });
461
461
  }
462
- };
463
- IOneConnectorAdapterService = __decorate([
464
- Injectable()
465
- ], IOneConnectorAdapterService);
466
- export { IOneConnectorAdapterService };
467
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2lvbmUtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUt4RyxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQU9oSSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMzRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFNUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRzVFLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0lBUXRDO1FBSFEsZUFBVSxHQUEwQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDaEUsaUJBQVksR0FBYyxFQUFFLENBQUM7SUFFdEIsQ0FBQztJQUVILE9BQU8sQ0FBQyxPQUFnQjs7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFD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Q0wsQ0FBQztLQUFBO0NBQ0YsQ0FBQTtBQW5hWSwyQkFBMkI7SUFEdkMsVUFBVSxFQUFFO0dBQ0EsMkJBQTJCLENBbWF2QztTQW5hWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hcmtldGluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9tYXJrZXRpbmcuYm9cIjtcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xuaW1wb3J0IHtQcml2YWN5U2V0dGluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcml2YWN5LXNldHRpbmcuYm9cIjtcbmltcG9ydCB7UmVsYXRpb25Qcml2YWN5U2V0dGluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1wcml2YWN5LXNldHRpbmcuYm9cIjtcbmltcG9ydCB7U2VxdWVuY2VOYW1lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vc2VxdWVuY2UtbmFtZS5lbnVtXCI7XG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xuaW1wb3J0IHtEZWxpdmVyeU9wdGlvbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1vcHRpb24uYm9cIjtcbmltcG9ydCB7U2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NldC10cmFuc2FjdGlvbi1kZWxpdmVyeS1vcHRpb25zLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7R2V0UG9zdGFsQ29kZVJldHJpZXZhbE91dHB1dFBhcmFtc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtcG9zdGFsLWNvZGUtcmV0cmlldmFsLW91dHB1dC1wYXJhbXNcIjtcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1saW5lLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc29sdmUtcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYXJ0aWNsZS13YXJlaG91c2UuYm9cIjtcbmltcG9ydCB7QXJ0aWNsZUZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mdWxsLW9iamVjdFwiO1xuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25SZXNwb25zZUJhc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVzcG9uc2UtYmFzZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC90cmFuc2FjdGlvblwiO1xuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCIuLi8uLi9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XG5pbXBvcnQge09wdGlvbnN9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vcHRpb25zXCI7XG5pbXBvcnQge0ltYWdlVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvaW1hZ2UtdXRpbHNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZSB7XG4gIHB1YmxpYyBvcHRpb25zOiBhbnk7XG5cbiAgcHVibGljIGNvbm5lY3RvcjogVHJhbnNhY3Rpb247XG5cbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XG4gIHByaXZhdGUgX2NvdW50cnlMaXN0OiBDb3VudHJ5W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIGFzeW5jIGNvbm5lY3Qob3B0aW9uczogT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5jb25uZWN0b3IgPSBuZXcgVHJhbnNhY3Rpb24ob3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zLnNlc3Npb24gPSB0aGlzLmNvbm5lY3Rvci5zZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxBcnRpY2xlRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBcnRpY2xlRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0R29vZElkRnJvbUFydGljbGVOcihhcnRpY2xlTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaW5nbGVJbWFnZShub2RlSWQ6IG51bWJlciB8IHN0cmluZywgcHVibGljYXRpb246IG51bWJlciwgaW5jbHVkZU1pbWV0eXBlOiBib29sZWFuLCB0aHVtYjogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFNpbmdsZUltYWdlKG5vZGVJZCwgcHVibGljYXRpb24sIGluY2x1ZGVNaW1ldHlwZSwgdGh1bWIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdC5maWxlUGF0aCAhPT0gbnVsbCAmJiByZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoICE9PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShJbWFnZVV0aWxzLmdldEZpeGVkSW1hZ2VGaWxlcGF0aFVybChyZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpbmNsdWRlTWltZXR5cGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoSW1hZ2VVdGlscy5nZXREb2NCb2R5V2l0aE1pbWVUeXBlRGVmaW5pdGlvbihyZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVOYW1lLFxuICAgICAgICAgICAgICAgIHRodW1iID8gcmVzdWx0LnJlc3VsdE9iamVjdC50aHVtYm5haWxCb2R5IDogcmVzdWx0LnJlc3VsdE9iamVjdC5kb2N1bWVudEJvZHkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRodW1iID8gcmVzdWx0LnJlc3VsdE9iamVjdC50aHVtYm5haWxCb2R5IDogcmVzdWx0LnJlc3VsdE9iamVjdC5kb2N1bWVudEJvZHkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRDb250ZW50KGlkOiBudW1iZXIsIHRodW1ibmFpbDogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldERvY3VtZW50Q29udGVudChpZCwgdGh1bWJuYWlsKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0LmRvY3VtZW50Q29udGVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldENvdW50cmllcygpOiBQcm9taXNlPENvdW50cnlbXT4ge1xuICAgIGlmICh0aGlzLl9jb3VudHJ5TGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5fY291bnRyeUxpc3QpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldENvdW50cmllcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLl9jb3VudHJ5TGlzdCA9IHJlc3VsdC5yZXN1bHRPYmplY3RzO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJ5KGNvdW50cnlDb2RlOiBzdHJpbmcpOiBDb3VudHJ5IHtcbiAgICB0aGlzLmdldENvdW50cmllcygpO1xuICAgIHJldHVybiB0aGlzLl9jb3VudHJ5TGlzdC5maW5kKGNvdW50cnkgPT4gY291bnRyeS5jb2RlID09PSBjb3VudHJ5Q29kZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJpdmFjeVNldHRpbmdzKCk6IFByb21pc2U8UHJpdmFjeVNldHRpbmdbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRQcml2YWN5U2V0dGluZ3MoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8UHJpdmFjeVNldHRpbmdbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlbGF0aW9uUHJpdmFjeVNldHRpbmdzKCk6IFByb21pc2U8UmVsYXRpb25Qcml2YWN5U2V0dGluZ1tdPiB7XG4gICAgY29uc3QgcHJpdmFjeVNldHRpbmdzOiBSZWxhdGlvblByaXZhY3lTZXR0aW5nW10gPSBbXTtcblxuICAgIGNvbnN0IGJhc2VQcml2YWN5U2V0dGluZ3M6IFByaXZhY3lTZXR0aW5nW10gPSBhd2FpdCB0aGlzLmdldFByaXZhY3lTZXR0aW5ncygpO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gYmFzZVByaXZhY3lTZXR0aW5ncy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgYmFzZVByaXZTZXR0aW5nOiBQcml2YWN5U2V0dGluZyA9IGJhc2VQcml2YWN5U2V0dGluZ3NbaV07XG4gICAgICBjb25zdCBuZXdSZWxQcml2U2V0OiBSZWxhdGlvblByaXZhY3lTZXR0aW5nID0gPFJlbGF0aW9uUHJpdmFjeVNldHRpbmc+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lmluc3RhbnRpYXRlTmV3Qm8oUmVsYXRpb25Qcml2YWN5U2V0dGluZyk7XG4gICAgICBuZXdSZWxQcml2U2V0LmFwcGx5QmFzZVByaXZhY3lTZXR0aW5nVmFsdWVzKGJhc2VQcml2U2V0dGluZyk7XG4gICAgICBwcml2YWN5U2V0dGluZ3MucHVzaChuZXdSZWxQcml2U2V0KTtcbiAgICB9XG4gICAgcmV0dXJuIHByaXZhY3lTZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBnZXRNYXJrZXRpbmdDb2RlcygpOiBQcm9taXNlPE1hcmtldGluZ1tdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldE1hcmtldGluZ0NvZGVzKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPENvRG9tYWluVmFsdWVbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVRyYW5zYWN0aW9uKGtpbmQ6IFRyYW5zYWN0aW9uS2luZCwgYnJhbmNoTnI6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY3JlYXRlVHJhbnNhY3Rpb24oa2luZCwgYnJhbmNoTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFRyYW5zYWN0aW9uQnlOckFuZEtpbmQoa2luZDogVHJhbnNhY3Rpb25LaW5kLCB0cmFuc2FjdGlvbk5vOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQnlOckFuZEtpbmQoa2luZCwgdHJhbnNhY3Rpb25ObykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZVRyYW5zYWN0aW9uKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3Iuc2F2ZVRyYW5zYWN0aW9uKHV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5vOiBudW1iZXIpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25ObykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZVZhbHVlKHNlcXVlbmNlTmFtZTogU2VxdWVuY2VOYW1lKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0U2VxdWVuY2VWYWx1ZShzZXF1ZW5jZU5hbWUpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb24pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEN1c3RvbWVyRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IudXBkYXRlQ3VzdG9tZXIocmVsYXRpb24pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEN1c3RvbWVyRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU1ldGhvZHMoKTogUHJvbWlzZTxEZWxpdmVyeU1ldGhvZFtdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldERlbGl2ZXJ5TWV0aG9kcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxEZWxpdmVyeU1ldGhvZFtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0RGVsaXZlcnlPcHRpb25zKCk6IFByb21pc2U8RGVsaXZlcnlPcHRpb25bXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXREZWxpdmVyeU9wdGlvbnMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8RGVsaXZlcnlNZXRob2RbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFJlbGF0aW9uVG9UcmFuc2FjdGlvbih1dWlkOiBzdHJpbmcsIHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5hZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24odXVpZCwgcmVsYXRpb25JZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdDogU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlc3BvbnNlQmFzZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5zZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucyh0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UG9zdGFsQ29kZVJldHJpZXZhbChwb3N0Y2FsQ29kZTogc3RyaW5nLCBob3VzZU5vOiBzdHJpbmcpOiBQcm9taXNlPEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXM+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0UG9zdGFsQ29kZVJldHJpZXZhbChwb3N0Y2FsQ29kZSwgaG91c2VObykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IG91dHB1dFBhcmFtczogR2V0UG9zdGFsQ29kZVJldHJpZXZhbE91dHB1dFBhcmFtcyA9IG5ldyBHZXRQb3N0YWxDb2RlUmV0cmlldmFsT3V0cHV0UGFyYW1zKCk7XG4gICAgICAgICAgb3V0cHV0UGFyYW1zLmNpdHkgPSByZXN1bHQucmVzdWx0T2JqZWN0LmNpdHk7XG4gICAgICAgICAgb3V0cHV0UGFyYW1zLnN0cmVldCA9IHJlc3VsdC5yZXN1bHRPYmplY3Quc3RyZWV0O1xuICAgICAgICAgIG91dHB1dFBhcmFtcy5zdGF0dXMgPSByZXN1bHQucmVzdWx0T2JqZWN0LnN0YXR1cztcbiAgICAgICAgICBvdXRwdXRQYXJhbXMubmV0TnVtYmVyID0gcmVzdWx0LnJlc3VsdE9iamVjdC5uZXROdW1iZXI7XG4gICAgICAgICAgcmVzb2x2ZShvdXRwdXRQYXJhbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPFJlbGF0aW9uTGlzdE9iamVjdFtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkVHJhbnNhY3Rpb25MaW5lKHV1aWQ6IHN0cmluZywgYXJ0aWNsZUxpbmU6IFRyYW5zYWN0aW9uTGluZVR5cGUsIGFydGljbGVObzogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgd2FyZWhvdXNlTm86IG51bWJlciwgY29tbWlzc2lvbkNvZGU6IHN0cmluZywgaXNSZXR1cm46IGJvb2xlYW4pOlxuICAgIFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmFkZFRyYW5zYWN0aW9uTGluZSh1dWlkLCBhcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIHdhcmVob3VzZU5vLCBjb21taXNzaW9uQ29kZSwgaXNSZXR1cm4pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKExpbmVPcGVyYXRpb25SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmRlbGV0ZVRyYW5zYWN0aW9uTGluZSh1dWlkLCBsaW5lVXVpZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIG5ld1F1YW50aXR5OiBudW1iZXIpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh1dWlkLCBsaW5lVXVpZCwgbmV3UXVhbnRpdHkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlcykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPENvRG9tYWluVmFsdWVbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0SW5PdXRDb2xsZWN0aW9uKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0SW5PdXRDb2xsZWN0aW9uKGxhbmd1YWdlQ29kZSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPENvRG9tYWluVmFsdWVbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZVtdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMoZ29vZElkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1dWlkOiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3Iuc2V0UmVsYXRpb25CeVVzZXIodXVpZCwgdXNlcm5hbWUsIHBhc3N3b3JkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
462
+ }
463
+ IOneConnectorAdapterService.decorators = [
464
+ { type: Injectable }
465
+ ];
466
+ IOneConnectorAdapterService.ctorParameters = () => [];
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2lvbmUtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUt4RyxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQU9oSSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMzRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFNUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRzVFLE1BQU0sT0FBTywyQkFBMkI7SUFRdEM7UUFIUSxlQUFVLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUNoRSxpQkFBWSxHQUFjLEVBQUUsQ0FBQztJQUV0QixDQUFDO0lBRUgsT0FBTyxDQUFDLE9BQWdCOztZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1FB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OztZQW5hRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bVwiO1xuaW1wb3J0IHtDb3VudHJ5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvdW50cnkuYm9cIjtcbmltcG9ydCB7UHJpdmFjeVNldHRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHJpdmFjeS1zZXR0aW5nLmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uUHJpdmFjeVNldHRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcHJpdmFjeS1zZXR0aW5nLmJvXCI7XG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NlcXVlbmNlLW5hbWUuZW51bVwiO1xuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktb3B0aW9uLmJvXCI7XG5pbXBvcnQge1NldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zZXQtdHJhbnNhY3Rpb24tZGVsaXZlcnktb3B0aW9ucy1yZXF1ZXN0LmJvXCI7XG5pbXBvcnQge0dldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXBvc3RhbC1jb2RlLXJldHJpZXZhbC1vdXRwdXQtcGFyYW1zXCI7XG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcmVxdWVzdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFydGljbGUtd2FyZWhvdXNlLmJvXCI7XG5pbXBvcnQge0FydGljbGVGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3RcIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblJlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uUmVzcG9uc2VCYXNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXJlc3BvbnNlLWJhc2UuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdHJhbnNhY3Rpb25cIjtcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGF9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGFcIjtcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tIFwiLi4vLi4vZmFjdG9yeS9idXNpbmVzcy1vYmplY3QtZmFjdG9yeVwiO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvb3B0aW9uc1wiO1xuaW1wb3J0IHtJbWFnZVV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL2ltYWdlLXV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2Uge1xuICBwdWJsaWMgb3B0aW9uczogYW55O1xuXG4gIHB1YmxpYyBjb25uZWN0b3I6IFRyYW5zYWN0aW9uO1xuXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xuICBwcml2YXRlIF9jb3VudHJ5TGlzdDogQ291bnRyeVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBjb25uZWN0KG9wdGlvbnM6IE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuY29ubmVjdG9yID0gbmV3IFRyYW5zYWN0aW9uKG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5zZXNzaW9uID0gdGhpcy5jb25uZWN0b3Iuc2Vzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8QXJ0aWNsZUZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQXJ0aWNsZUZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0R29vZElkRnJvbUFydGljbGVOcihhcnRpY2xlTnI6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoYXJ0aWNsZU5yKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2luZ2xlSW1hZ2Uobm9kZUlkOiBudW1iZXIgfCBzdHJpbmcsIHB1YmxpY2F0aW9uOiBudW1iZXIsIGluY2x1ZGVNaW1ldHlwZTogYm9vbGVhbiwgdGh1bWI6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRTaW5nbGVJbWFnZShub2RlSWQsIHB1YmxpY2F0aW9uLCBpbmNsdWRlTWltZXR5cGUsIHRodW1iKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGggIT09IG51bGwgJiYgcmVzdWx0LnJlc3VsdE9iamVjdC5maWxlUGF0aCAhPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoSW1hZ2VVdGlscy5nZXRGaXhlZEltYWdlRmlsZXBhdGhVcmwocmVzdWx0LnJlc3VsdE9iamVjdC5maWxlUGF0aCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaW5jbHVkZU1pbWV0eXBlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKEltYWdlVXRpbHMuZ2V0RG9jQm9keVdpdGhNaW1lVHlwZURlZmluaXRpb24ocmVzdWx0LnJlc3VsdE9iamVjdC5maWxlTmFtZSxcbiAgICAgICAgICAgICAgICB0aHVtYiA/IHJlc3VsdC5yZXN1bHRPYmplY3QudGh1bWJuYWlsQm9keSA6IHJlc3VsdC5yZXN1bHRPYmplY3QuZG9jdW1lbnRCb2R5KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh0aHVtYiA/IHJlc3VsdC5yZXN1bHRPYmplY3QudGh1bWJuYWlsQm9keSA6IHJlc3VsdC5yZXN1bHRPYmplY3QuZG9jdW1lbnRCb2R5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50Q29udGVudChpZDogbnVtYmVyLCB0aHVtYm5haWw6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXREb2N1bWVudENvbnRlbnQoaWQsIHRodW1ibmFpbCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdC5kb2N1bWVudENvbnRlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJpZXMoKTogUHJvbWlzZTxDb3VudHJ5W10+IHtcbiAgICBpZiAodGhpcy5fY291bnRyeUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgICByZXNvbHZlKHRoaXMuX2NvdW50cnlMaXN0KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRDb3VudHJpZXMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5fY291bnRyeUxpc3QgPSByZXN1bHQucmVzdWx0T2JqZWN0cztcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeShjb3VudHJ5Q29kZTogc3RyaW5nKTogQ291bnRyeSB7XG4gICAgdGhpcy5nZXRDb3VudHJpZXMoKTtcbiAgICByZXR1cm4gdGhpcy5fY291bnRyeUxpc3QuZmluZChjb3VudHJ5ID0+IGNvdW50cnkuY29kZSA9PT0gY291bnRyeUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGdldFByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFByaXZhY3lTZXR0aW5nW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0UHJpdmFjeVNldHRpbmdzKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPFByaXZhY3lTZXR0aW5nW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvblByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFJlbGF0aW9uUHJpdmFjeVNldHRpbmdbXT4ge1xuICAgIGNvbnN0IHByaXZhY3lTZXR0aW5nczogUmVsYXRpb25Qcml2YWN5U2V0dGluZ1tdID0gW107XG5cbiAgICBjb25zdCBiYXNlUHJpdmFjeVNldHRpbmdzOiBQcml2YWN5U2V0dGluZ1tdID0gYXdhaXQgdGhpcy5nZXRQcml2YWN5U2V0dGluZ3MoKTtcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IGJhc2VQcml2YWN5U2V0dGluZ3MubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGJhc2VQcml2U2V0dGluZzogUHJpdmFjeVNldHRpbmcgPSBiYXNlUHJpdmFjeVNldHRpbmdzW2ldO1xuICAgICAgY29uc3QgbmV3UmVsUHJpdlNldDogUmVsYXRpb25Qcml2YWN5U2V0dGluZyA9IDxSZWxhdGlvblByaXZhY3lTZXR0aW5nPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5pbnN0YW50aWF0ZU5ld0JvKFJlbGF0aW9uUHJpdmFjeVNldHRpbmcpO1xuICAgICAgbmV3UmVsUHJpdlNldC5hcHBseUJhc2VQcml2YWN5U2V0dGluZ1ZhbHVlcyhiYXNlUHJpdlNldHRpbmcpO1xuICAgICAgcHJpdmFjeVNldHRpbmdzLnB1c2gobmV3UmVsUHJpdlNldCk7XG4gICAgfVxuICAgIHJldHVybiBwcml2YWN5U2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWFya2V0aW5nQ29kZXMoKTogUHJvbWlzZTxNYXJrZXRpbmdbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRNYXJrZXRpbmdDb2RlcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxDb0RvbWFpblZhbHVlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVUcmFuc2FjdGlvbihraW5kOiBUcmFuc2FjdGlvbktpbmQsIGJyYW5jaE5yOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNyZWF0ZVRyYW5zYWN0aW9uKGtpbmQsIGJyYW5jaE5yKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQ6IFRyYW5zYWN0aW9uS2luZCwgdHJhbnNhY3Rpb25ObzogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQsIHRyYW5zYWN0aW9uTm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNhdmVUcmFuc2FjdGlvbih1dWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnNhdmVUcmFuc2FjdGlvbih1dWlkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25ObzogbnVtYmVyKTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEN1c3RvbWVyRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U2VxdWVuY2VWYWx1ZShzZXF1ZW5jZU5hbWU6IFNlcXVlbmNlTmFtZSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFNlcXVlbmNlVmFsdWUoc2VxdWVuY2VOYW1lKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShDdXN0b21lckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQ3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShDdXN0b21lckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0RGVsaXZlcnlNZXRob2RzKCk6IFByb21pc2U8RGVsaXZlcnlNZXRob2RbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXREZWxpdmVyeU1ldGhvZHMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8RGVsaXZlcnlNZXRob2RbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPERlbGl2ZXJ5T3B0aW9uW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0RGVsaXZlcnlPcHRpb25zKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPERlbGl2ZXJ5TWV0aG9kW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24odXVpZDogc3RyaW5nLCByZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHV1aWQsIHJlbGF0aW9uSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucyh0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXNwb25zZUJhc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3Iuc2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnModHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBvc3RhbENvZGVSZXRyaWV2YWwocG9zdGNhbENvZGU6IHN0cmluZywgaG91c2VObzogc3RyaW5nKTogUHJvbWlzZTxHZXRQb3N0YWxDb2RlUmV0cmlldmFsT3V0cHV0UGFyYW1zPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFBvc3RhbENvZGVSZXRyaWV2YWwocG9zdGNhbENvZGUsIGhvdXNlTm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zdCBvdXRwdXRQYXJhbXM6IEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXMgPSBuZXcgR2V0UG9zdGFsQ29kZVJldHJpZXZhbE91dHB1dFBhcmFtcygpO1xuICAgICAgICAgIG91dHB1dFBhcmFtcy5jaXR5ID0gcmVzdWx0LnJlc3VsdE9iamVjdC5jaXR5O1xuICAgICAgICAgIG91dHB1dFBhcmFtcy5zdHJlZXQgPSByZXN1bHQucmVzdWx0T2JqZWN0LnN0cmVldDtcbiAgICAgICAgICBvdXRwdXRQYXJhbXMuc3RhdHVzID0gcmVzdWx0LnJlc3VsdE9iamVjdC5zdGF0dXM7XG4gICAgICAgICAgb3V0cHV0UGFyYW1zLm5ldE51bWJlciA9IHJlc3VsdC5yZXN1bHRPYmplY3QubmV0TnVtYmVyO1xuICAgICAgICAgIHJlc29sdmUob3V0cHV0UGFyYW1zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3Q6IFJlbGF0aW9uUmVxdWVzdCk6IFByb21pc2U8UmVsYXRpb25MaXN0T2JqZWN0W10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxSZWxhdGlvbkxpc3RPYmplY3RbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRyYW5zYWN0aW9uTGluZSh1dWlkOiBzdHJpbmcsIGFydGljbGVMaW5lOiBUcmFuc2FjdGlvbkxpbmVUeXBlLCBhcnRpY2xlTm86IHN0cmluZywgYW1vdW50OiBudW1iZXIsIHdhcmVob3VzZU5vOiBudW1iZXIsIGNvbW1pc3Npb25Db2RlOiBzdHJpbmcsIGlzUmV0dXJuOiBib29sZWFuKTpcbiAgICBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5hZGRUcmFuc2FjdGlvbkxpbmUodXVpZCwgYXJ0aWNsZUxpbmUsIGFydGljbGVObywgYW1vdW50LCB3YXJlaG91c2VObywgY29tbWlzc2lvbkNvZGUsIGlzUmV0dXJuKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShMaW5lT3BlcmF0aW9uUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVUcmFuc2FjdGlvbkxpbmUodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5kZWxldGVUcmFuc2FjdGlvbkxpbmUodXVpZCwgbGluZVV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cblxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBuZXdRdWFudGl0eTogbnVtYmVyKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodXVpZCwgbGluZVV1aWQsIG5ld1F1YW50aXR5KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXM6IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXMpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENvbW1pc3Npb25Db2RlcyhsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldENvbW1pc3Npb25Db2RlcyhsYW5ndWFnZUNvZGUpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxDb0RvbWFpblZhbHVlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGUpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxDb0RvbWFpblZhbHVlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZVtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0UmVsYXRpb25CeVVzZXIodXVpZDogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnNldFJlbGF0aW9uQnlVc2VyKHV1aWQsIHVzZXJuYW1lLCBwYXNzd29yZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=