@tiba-spark/client-shared-lib 10.3.0-289 → 10.3.0-296

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 (34) hide show
  1. package/esm2022/libraries/enums/index.mjs +2 -1
  2. package/esm2022/libraries/enums/localization.enum.mjs +41 -1
  3. package/esm2022/libraries/enums/time-range-formats.enum.mjs +6 -0
  4. package/esm2022/libraries/pipes/index.mjs +2 -1
  5. package/esm2022/libraries/pipes/shared-pipes.module.mjs +6 -1
  6. package/esm2022/libraries/pipes/time-range.pipe.mjs +38 -0
  7. package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +3 -1
  8. package/esm2022/libraries/service-proxy/edge-service-proxies.mjs +1187 -150
  9. package/esm2022/libraries/utils/array.util.mjs +5 -0
  10. package/esm2022/libraries/utils/helper.util.mjs +2 -2
  11. package/esm2022/libraries/utils/index.mjs +2 -1
  12. package/fesm2022/tiba-spark-client-shared-lib.mjs +1302 -152
  13. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  14. package/libraries/enums/index.d.ts +1 -0
  15. package/libraries/enums/index.d.ts.map +1 -1
  16. package/libraries/enums/localization.enum.d.ts +41 -1
  17. package/libraries/enums/localization.enum.d.ts.map +1 -1
  18. package/libraries/enums/time-range-formats.enum.d.ts +5 -0
  19. package/libraries/enums/time-range-formats.enum.d.ts.map +1 -0
  20. package/libraries/pipes/index.d.ts +1 -0
  21. package/libraries/pipes/index.d.ts.map +1 -1
  22. package/libraries/pipes/shared-pipes.module.d.ts +6 -5
  23. package/libraries/pipes/shared-pipes.module.d.ts.map +1 -1
  24. package/libraries/pipes/time-range.pipe.d.ts +14 -0
  25. package/libraries/pipes/time-range.pipe.d.ts.map +1 -0
  26. package/libraries/service-proxy/cloud-service-proxies.d.ts +4 -2
  27. package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
  28. package/libraries/service-proxy/edge-service-proxies.d.ts +381 -5
  29. package/libraries/service-proxy/edge-service-proxies.d.ts.map +1 -1
  30. package/libraries/utils/array.util.d.ts +2 -0
  31. package/libraries/utils/array.util.d.ts.map +1 -0
  32. package/libraries/utils/index.d.ts +1 -0
  33. package/libraries/utils/index.d.ts.map +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import _ from 'lodash';
2
+ export function arraysAreDifferent(prev, curr) {
3
+ return !_.isEqual(prev, curr);
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvdXRpbHMvYXJyYXkudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkIsTUFBTSxVQUFVLGtCQUFrQixDQUFJLElBQVMsRUFBRSxJQUFTO0lBQ3hELE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5c0FyZURpZmZlcmVudDxUPihwcmV2OiBUW10sIGN1cnI6IFRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gIV8uaXNFcXVhbChwcmV2LCBjdXJyKTtcbn1cbiJdfQ==
@@ -167,7 +167,7 @@ export const MainModuleToSubModulesPermissionTypeMap = {
167
167
  Edge.PermissionType.ValidationCouponView, Edge.PermissionType.ValidationCouponCreate, Edge.PermissionType.ValidationCouponUpdate, Edge.PermissionType.ValidationCouponDelete
168
168
  ],
169
169
  [Edge.PermissionType.ReportsMain]: [],
170
- [Edge.PermissionType.LotConfigurationMain]: [Edge.PermissionType.LotConfigurationRates, Edge.PermissionType.LotConfigurationScheduler, Edge.PermissionType.LotConfigurationValidationProfile],
170
+ [Edge.PermissionType.LotConfigurationMain]: [Edge.PermissionType.LotConfigurationRates, Edge.PermissionType.LotConfigurationScheduler, Edge.PermissionType.LotConfigurationValidationProfile, Edge.PermissionType.LotConfigurationAccessProfile],
171
171
  [Edge.PermissionType.TenantSettingsMain]: [Edge.PermissionType.ManagementAdmin],
172
172
  [Edge.PermissionType.ECommerceBackofficeMain]: [Edge.PermissionType.ECommerceAdmin, Edge.PermissionType.ECommerceRegular]
173
173
  };
@@ -182,4 +182,4 @@ export const AppModuleToMainPermissionTypeMap = {
182
182
  [Edge.AppModule.Management]: Edge.PermissionType.TenantSettingsMain,
183
183
  [Edge.AppModule.ECommerceBackoffice]: Edge.PermissionType.ECommerceBackofficeMain,
184
184
  };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3V0aWxzL2hlbHBlci51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRELE9BQU8sRUFBUyxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsNEJBQTRCO0FBQzVCLGtDQUFrQztBQUNsQyxnREFBZ0Q7QUFDaEQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxHQUFNLEVBQUUsSUFBYztJQUNoRCxJQUFJLEdBQUcsR0FBTSxFQUFPLENBQUM7SUFDckIsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7S0FDRjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFHO0lBQ3ZDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzVCLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQXlCO0lBQzdFLGlEQUFp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QyxrQkFBa0I7SUFDbkUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUI7Q0FDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTE9DQUxfRU5HTElTSF9MQU5HVUFHRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gJy4uL3BpcGVzL2ZpbHRlci5waXBlJztcbmltcG9ydCB7IENsb3VkLCBFZGdlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBOdW1iZXJNYXAgfSBmcm9tICcuL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBpc0NoYXJhY3Rlckxlbmd0aFZhbGlkIH0gZnJvbSAnLi90ZXh0LnV0aWwnO1xuXG4vLyBHZXRzIGFuIG9iamVjdCBvZiB0eXBlPFQ+XG4vLyBHZXRzIGFuIGFycmF5IG9mIGtleXMgdG8gaWdub3JlXG4vLyBSZXR1cm5zIGEgbmV3IG9iamVjdCB3aXRob3V0IHRoZSBvbWl0dGVkIGtleXNcbmV4cG9ydCBmdW5jdGlvbiBvbWl0S2V5czxUPihvYmo6IFQsIGtleXM6IHN0cmluZ1tdKSB7XG4gIHZhciBkdXA6IFQgPSB7fSBhcyBUO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKGtleXMuaW5kZXhPZihrZXkpID09IC0xKSB7XG4gICAgICBkdXBba2V5XSA9IG9ialtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZHVwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyV2l0aExlYWRpbmdaZXJvKG51bSkge1xuICBpZiAobnVtICE9PSBudWxsICYmIG51bSA8PSA5KSB7XG4gICAgbnVtID0gKGAwJHtudW19YCkuc2xpY2UoLTEwKTtcbiAgfVxuICByZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsYXlDYW5jZWxsYXRpb24odGltZTogbnVtYmVyLCBzdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+KSB7XG4gIC8vIGNyZWF0ZSBhIHN1YnNjcmlwdGlvbiB0byB1c2Ugd2l0aCB5b3VyIHByb21pc2VcbiAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSk7XG4gICAgLy8gYWRkIHRlYXJkb3duIGxvZ2ljIHRvIHRoZSBzdWJzY3JpcHRpb25cbiAgICBzdWJzY3JpcHRpb24uYWRkKCgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBzdWJTdWJqZWN0ID0gc3ViamVjdC5zdWJzY3JpYmUoY2FuY2VsU3Vic2NyaXB0aW9uID0+IHtcbiAgICBpZiAoY2FuY2VsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAvLyBjYWxsIHVuc3Vic2NyaWJlIHRvIGNhbmNlbFxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9KTtcblxuICAvLyB1c2UgdGhlIHByb21pc2UgaW52b2tlIHRoZSBkZWFseVxuICBhd2FpdCBwcm9taXNlO1xuXG4gIHN1YlN1YmplY3QudW5zdWJzY3JpYmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VBbGwoc3RyLCBmaW5kLCByZXBsYWNlKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKGZpbmQsICdnJyksIHJlcGxhY2UpO1xufVxuXG5cbmV4cG9ydCBlbnVtIFJvd09wZXJhdGlvbiB7XG4gIEluc2VydCxcbiAgVXBkYXRlLFxuICBEZWxldGUsXG4gIE5vbmUsXG4gIEluc2VydFRvUGFyZW50LFxuICBVcGRhdGluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFya0VudGl0eUFzVW5jaGFuZ2VkPFQ+KGVudGl0eTogVCk6IFQge1xuICByZXR1cm4gb21pdEtleXM8VD4oZW50aXR5LCBbJ2V4cGFuZGVkJywgJ2V4cGFuZGluZycsICdjaGFuZ2VkJywgJ3Jvd09wZXJhdGlvbicsICdmaW5kUm93SW5kZXgnXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrRW50aXRpZXNBc0NoYW5nZWQ8VCA9IGFueT4oZW50aXRpZXM6IGFueVtdLCByb3dPcGVyYXRpb246IFJvd09wZXJhdGlvbiA9IFJvd09wZXJhdGlvbi5Ob25lLFxuICBmaW5kUm93SW5kZXg/OiAoZW50aXR5OiBULCBlbnRpdGllczogVFtdKSA9PiBudW1iZXIpIHtcblxuICBpZiAoKHJvd09wZXJhdGlvbiA9PT0gUm93T3BlcmF0aW9uLlVwZGF0ZSB8fCByb3dPcGVyYXRpb24gPT09IFJvd09wZXJhdGlvbi5EZWxldGUpICYmICFmaW5kUm93SW5kZXgpIHtcbiAgICBmaW5kUm93SW5kZXggPSAoZW50aXR5OiBhbnksIGVudGl0aWVzOiBhbnlbXSkgPT4gZW50aXRpZXMuZmluZEluZGV4KGUgPT4gZS5pZCA9PT0gZW50aXR5LmlkKTtcbiAgfVxuXG4gIGZsYWdFbnRpdHkoZW50aXRpZXMsIHRydWUsIHJvd09wZXJhdGlvbiwgZmluZFJvd0luZGV4KTtcblxuICAvL3NvbHV0aW9uIGZvciB1bm1hcmtlZCBwcmV2aW91ZXMgcm93c1xuICBzZXRUaW1lb3V0KCgpID0+IGZsYWdFbnRpdHkoZW50aXRpZXMsIGZhbHNlLCBSb3dPcGVyYXRpb24uTm9uZSksIDEwMDApO1xufVxuXG5leHBvcnQgdHlwZSBSb3dUYWJsZVBheWxvYWQ8VCA9IGFueT4gPSB7IHJvd09wZXJhdGlvbjogUm93T3BlcmF0aW9uLCBjaGFuZ2VkOiBib29sZWFuLCBmaW5kUm93SW5kZXg/OiAoZW50aXR5OiBULCBlbnRpdGllczogVFtdKSA9PiBudW1iZXIgfTtcblxuZnVuY3Rpb24gZmxhZ0VudGl0eTxUIGV4dGVuZHMgUm93VGFibGVQYXlsb2FkPihlbnRpdGllczogVFtdLCBmbGFnOiBib29sZWFuLCByb3dPcGVyYXRpb246IFJvd09wZXJhdGlvbiwgZmluZFJvd0luZGV4PzogKGVudGl0eTogVCwgZW50aXRpZXM6IFRbXSkgPT4gbnVtYmVyKSB7XG4gIGVudGl0aWVzLmZvckVhY2goZW50aXR5ID0+IHtcbiAgICBlbnRpdHkuY2hhbmdlZCA9IGZsYWc7XG4gICAgZW50aXR5LnJvd09wZXJhdGlvbiA9IHJvd09wZXJhdGlvbiA/PyBlbnRpdHkucm93T3BlcmF0aW9uO1xuICAgIGVudGl0eS5maW5kUm93SW5kZXggPSBmaW5kUm93SW5kZXggfHwgKChlbnRpdHksIGVudGl0aWVzKSA9PiBudWxsKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzcyhjaXR5OiBzdHJpbmcsIHN0cmVldDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGFkZHJlc3MgPSBudWxsO1xuICBpZiAoY2l0eSAmJiBzdHJlZXQpIHtcbiAgICBhZGRyZXNzID0gYCR7c3RyZWV0fSwgJHtjaXR5fWA7XG4gIH0gZWxzZSBpZiAoY2l0eSkge1xuICAgIGFkZHJlc3MgPSBjaXR5O1xuICB9IGVsc2UgaWYgKHN0cmVldCkge1xuICAgIGFkZHJlc3MgPSBzdHJlZXQ7XG4gIH1cblxuICByZXR1cm4gYWRkcmVzcztcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyVmFsdWVSZXNvbHZlcjxUPiA9IChvYmo6IFQsIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiBhbnk7XG5leHBvcnQgdHlwZSBTb21lVmFsdWVSZXNvbHZlcjxUPiA9IChvYmo6IFQsIHN1Ykdyb3VwUHJvcGVydHlOYW1lOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nLCBzZWFyY2hWYWx1ZTogc3RyaW5nLCBvcGVyYXRvcjogT3BlcmF0b3IsIHJlZHVjZTogYW55KSA9PiBhbnk7XG5cbmV4cG9ydCBjb25zdCBiYXNlUmVkdWNlOiBGaWx0ZXJWYWx1ZVJlc29sdmVyPGFueT4gPSAob2JqOiBhbnksIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBvYmpbcHJvcGVydHlOYW1lXTtcbn1cblxuZXhwb3J0IGNvbnN0IGZpbHRlcktleVZhbHVlQmFzZVJlZHVjZTogRmlsdGVyVmFsdWVSZXNvbHZlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyB9PiA9IChcbiAgb2JqLFxuICBfLFxuKSA9PiBvYmoudmFsdWU7XG5cbmV4cG9ydCBmdW5jdGlvbiogZmxhdHRlbkJ5S2V5KGFycmF5LCBuZXN0ZWRLZXk6IHN0cmluZywgZGVwdGggPSAxKSB7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBhcnJheSkge1xuICAgIGlmIChpdGVtW25lc3RlZEtleV0gJiYgQXJyYXkuaXNBcnJheShpdGVtW25lc3RlZEtleV0pICYmIGRlcHRoID4gMCkge1xuICAgICAgeWllbGQqIGZsYXR0ZW5CeUtleShpdGVtW25lc3RlZEtleV0sIG5lc3RlZEtleSwgZGVwdGggLSAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgaXRlbTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSU9TRGV2aWNlKCkge1xuICB2YXIgaXNJT1MgPSAvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgdmFyIGlzQXBwbGVEZXZpY2UgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCdNYWNpbnRvc2gnKTtcbiAgdmFyIGlzVG91Y2hTY3JlZW4gPSBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPj0gMTsgLy8gdHJ1ZSBmb3IgaU9TIDEzIChhbmQgaG9wZWZ1bGx5IGJleW9uZClcbiAgcmV0dXJuIGlzSU9TIHx8IChpc0FwcGxlRGV2aWNlICYmIChpc1RvdWNoU2NyZWVuIHx8IGlPUzF0bzEycXVpcmsoKSkpO1xufVxuXG5mdW5jdGlvbiBpT1MxdG8xMnF1aXJrKCkge1xuICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsgLy8gdGVtcG9yYXJ5IEF1ZGlvIG9iamVjdFxuICBhdWRpby52b2x1bWUgPSAwLjU7IC8vIGhhcyBubyBlZmZlY3Qgb24gaU9TIDw9IDEyXG4gIHJldHVybiBhdWRpby52b2x1bWUgPT09IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtaWxsaXNlY29uZHM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRzKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdEVtcHR5KG9iajoge30pIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUcnVlSW5CaW5hcnkoZGVjaW1hbFZhbHVlOiBudW1iZXIsIGJpdFBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIChkZWNpbWFsVmFsdWUgJiBiaXRQb3NpdGlvbikgIT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0QmluYXJ5VG9EZWNpbWFsKGJpbmFyeVN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcbiAgLy8gVXNlIHBhcnNlSW50IGZ1bmN0aW9uIHRvIGNvbnZlcnQgYmluYXJ5IHN0cmluZyB0byBkZWNpbWFsIG51bWJlclxuICByZXR1cm4gcGFyc2VJbnQoYmluYXJ5U3RyaW5nLCAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREZWNpbWFsVG9CaW5hcnkoZGVjaW1hbE51bWJlcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgLy8gVXNlIHRvU3RyaW5nKDIpIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZGVjaW1hbCBudW1iZXIgdG8gYmluYXJ5IHN0cmluZ1xuICByZXR1cm4gaXNOYU4oZGVjaW1hbE51bWJlcikgPyAnJyA6IGRlY2ltYWxOdW1iZXIudG9TdHJpbmcoMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdE9iamVjdEJ5UHJvcGVydHk8VCwgSyBleHRlbmRzIGtleW9mIFQ+KGFycjogVFtdLCBwcm9wOiBLKTogVFtdIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxUW0tdLCBUPigpO1xuICBhcnIuZm9yRWFjaChpdGVtID0+IHtcbiAgICBjb25zdCBrZXkgPSBpdGVtW3Byb3BdO1xuICAgIGlmICghbWFwLmhhcyhrZXkpKSB7XG4gICAgICBtYXAuc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIEFycmF5LmZyb20obWFwLnZhbHVlcygpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0T2JqZWN0QnlQcm9wZXJ0aWVzPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihhcnI6IFRbXSwgLi4ucHJvcHM6IEtbXSk6IFRbXSB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUPigpO1xuICBhcnIuZm9yRWFjaChpdGVtID0+IHtcbiAgICBjb25zdCBrZXkgPSBwcm9wcy5tYXAocHJvcCA9PiBpdGVtW3Byb3BdKS5qb2luKCdfJyk7XG4gICAgaWYgKCFtYXAuaGFzKGtleSkpIHtcbiAgICAgIG1hcC5zZXQoa2V5LCBpdGVtKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudExhbmcodXNlclNldHRpbmdzOiBNYXA8RWRnZS5TZXR0aW5nc0NhdGVnb3J5LCBhbnk+KSB7XG4gIGNvbnN0IHZhbHVlOiBDbG91ZC5Mb2NhbGl6YXRpb25EdG8gPSB1c2VyU2V0dGluZ3M/LmdldChFZGdlLlNldHRpbmdzQ2F0ZWdvcnkuTG9jYWxpemF0aW9uKTtcbiAgcmV0dXJuIHZhbHVlPy5rZXlOYW1lID8/IExPQ0FMX0VOR0xJU0hfTEFOR1VBR0U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlYXJjaEZpZWxkQ2hhbmdlZChwcmV2OiBhbnksIGN1cnI6IGFueSk6IGJvb2xlYW4ge1xuICBjb25zdCBpc0ZpZWxkU2VsZWN0b3JDaGFuZ2VkID0gcHJldi5zZWFyY2hGaWVsZFNlbGVjdG9yICE9PSBjdXJyLnNlYXJjaEZpZWxkU2VsZWN0b3IgJiYgY3Vyci5zZWFyY2hWYWx1ZTtcbiAgY29uc3QgaXNTZWFyY2hWYWx1ZUNoYW5nZWQgPSBwcmV2LnNlYXJjaFZhbHVlICE9PSBjdXJyLnNlYXJjaFZhbHVlO1xuXG4gIHJldHVybiAoaXNGaWVsZFNlbGVjdG9yQ2hhbmdlZCB8fCBpc1NlYXJjaFZhbHVlQ2hhbmdlZCkgJiYgaXNDaGFyYWN0ZXJMZW5ndGhWYWxpZChjdXJyLnNlYXJjaFZhbHVlKTtcbn1cblxuZXhwb3J0IGNvbnN0IE1haW5Nb2R1bGVUb1N1Yk1vZHVsZXNQZXJtaXNzaW9uVHlwZU1hcDogTnVtYmVyTWFwPEVkZ2UuUGVybWlzc2lvblR5cGVbXT4gPSB7XG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkNjTWFpbl06IFtdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudE1haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudEFjY291bnRWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50QWNjb3VudENyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudEFjY291bnRVcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRBY2NvdW50RGVsZXRlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc1ZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNEZWxldGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhseVNlcmllc0NyZWF0ZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0TWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0VmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdENyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdFVwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdERlbGV0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdEdyb3VwVmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdEdyb3VwQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdFZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuSG90ZWxHdWVzdElPQ3JlYXRlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbk1haW5dOiBbXG4gICAgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25WaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25FVmFsaWRhdGlvbkNyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25VcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uRGVsZXRlLFxuICAgIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyVXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyRGVsZXRlLFxuICAgIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvbkNyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25Db3Vwb25EZWxldGVdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5SZXBvcnRzTWFpbl06IFtdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25SYXRlcywgRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uU2NoZWR1bGVyLCBFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25WYWxpZGF0aW9uUHJvZmlsZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLlRlbmFudFNldHRpbmdzTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLk1hbmFnZW1lbnRBZG1pbl0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkVDb21tZXJjZUJhY2tvZmZpY2VNYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlQWRtaW4sIEVkZ2UuUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlUmVndWxhcl1cbn07XG5cbmV4cG9ydCBjb25zdCBBcHBNb2R1bGVUb01haW5QZXJtaXNzaW9uVHlwZU1hcDogTnVtYmVyTWFwPEVkZ2UuUGVybWlzc2lvblR5cGU+ID0ge1xuICBbRWRnZS5BcHBNb2R1bGUuQ2NdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkNjTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLkFjY291bnRzXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudE1haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5Nb250aGxpZXNdOiBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc01haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5HdWVzdHNdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0TWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLlZhbGlkYXRpb25dOiBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25NYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuUmVwb3J0c106IEVkZ2UuUGVybWlzc2lvblR5cGUuUmVwb3J0c01haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5Mb3RDb25maWd1cmF0aW9uXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLk1hbmFnZW1lbnRdOiBFZGdlLlBlcm1pc3Npb25UeXBlLlRlbmFudFNldHRpbmdzTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLkVDb21tZXJjZUJhY2tvZmZpY2VdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkVDb21tZXJjZUJhY2tvZmZpY2VNYWluLFxufTtcbiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3V0aWxzL2hlbHBlci51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRELE9BQU8sRUFBUyxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsNEJBQTRCO0FBQzVCLGtDQUFrQztBQUNsQyxnREFBZ0Q7QUFDaEQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxHQUFNLEVBQUUsSUFBYztJQUNoRCxJQUFJLEdBQUcsR0FBTSxFQUFPLENBQUM7SUFDckIsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7S0FDRjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFHO0lBQ3ZDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzVCLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQXlCO0lBQzdFLGlEQUFp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QUFVLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQjtJQUNuRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QjtDQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMT0NBTF9FTkdMSVNIX0xBTkdVQUdFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vcGlwZXMvZmlsdGVyLnBpcGUnO1xuaW1wb3J0IHsgQ2xvdWQsIEVkZ2UgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5JztcbmltcG9ydCB7IE51bWJlck1hcCB9IGZyb20gJy4vbGFuZy51dGlsJztcbmltcG9ydCB7IGlzQ2hhcmFjdGVyTGVuZ3RoVmFsaWQgfSBmcm9tICcuL3RleHQudXRpbCc7XG5cbi8vIEdldHMgYW4gb2JqZWN0IG9mIHR5cGU8VD5cbi8vIEdldHMgYW4gYXJyYXkgb2Yga2V5cyB0byBpZ25vcmVcbi8vIFJldHVybnMgYSBuZXcgb2JqZWN0IHdpdGhvdXQgdGhlIG9taXR0ZWQga2V5c1xuZXhwb3J0IGZ1bmN0aW9uIG9taXRLZXlzPFQ+KG9iajogVCwga2V5czogc3RyaW5nW10pIHtcbiAgdmFyIGR1cDogVCA9IHt9IGFzIFQ7XG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICBpZiAoa2V5cy5pbmRleE9mKGtleSkgPT0gLTEpIHtcbiAgICAgIGR1cFtrZXldID0gb2JqW2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBkdXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJXaXRoTGVhZGluZ1plcm8obnVtKSB7XG4gIGlmIChudW0gIT09IG51bGwgJiYgbnVtIDw9IDkpIHtcbiAgICBudW0gPSAoYDAke251bX1gKS5zbGljZSgtMTApO1xuICB9XG4gIHJldHVybiBudW07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxheUNhbmNlbGxhdGlvbih0aW1lOiBudW1iZXIsIHN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4pIHtcbiAgLy8gY3JlYXRlIGEgc3Vic2NyaXB0aW9uIHRvIHVzZSB3aXRoIHlvdXIgcHJvbWlzZVxuICBjb25zdCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGNvbnN0IGlkID0gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lKTtcbiAgICAvLyBhZGQgdGVhcmRvd24gbG9naWMgdG8gdGhlIHN1YnNjcmlwdGlvblxuICAgIHN1YnNjcmlwdGlvbi5hZGQoKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0IHN1YlN1YmplY3QgPSBzdWJqZWN0LnN1YnNjcmliZShjYW5jZWxTdWJzY3JpcHRpb24gPT4ge1xuICAgIGlmIChjYW5jZWxTdWJzY3JpcHRpb24pIHtcbiAgICAgIC8vIGNhbGwgdW5zdWJzY3JpYmUgdG8gY2FuY2VsXG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIHVzZSB0aGUgcHJvbWlzZSBpbnZva2UgdGhlIGRlYWx5XG4gIGF3YWl0IHByb21pc2U7XG5cbiAgc3ViU3ViamVjdC51bnN1YnNjcmliZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUFsbChzdHIsIGZpbmQsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoZmluZCwgJ2cnKSwgcmVwbGFjZSk7XG59XG5cblxuZXhwb3J0IGVudW0gUm93T3BlcmF0aW9uIHtcbiAgSW5zZXJ0LFxuICBVcGRhdGUsXG4gIERlbGV0ZSxcbiAgTm9uZSxcbiAgSW5zZXJ0VG9QYXJlbnQsXG4gIFVwZGF0aW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrRW50aXR5QXNVbmNoYW5nZWQ8VD4oZW50aXR5OiBUKTogVCB7XG4gIHJldHVybiBvbWl0S2V5czxUPihlbnRpdHksIFsnZXhwYW5kZWQnLCAnZXhwYW5kaW5nJywgJ2NoYW5nZWQnLCAncm93T3BlcmF0aW9uJywgJ2ZpbmRSb3dJbmRleCddKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtFbnRpdGllc0FzQ2hhbmdlZDxUID0gYW55PihlbnRpdGllczogYW55W10sIHJvd09wZXJhdGlvbjogUm93T3BlcmF0aW9uID0gUm93T3BlcmF0aW9uLk5vbmUsXG4gIGZpbmRSb3dJbmRleD86IChlbnRpdHk6IFQsIGVudGl0aWVzOiBUW10pID0+IG51bWJlcikge1xuXG4gIGlmICgocm93T3BlcmF0aW9uID09PSBSb3dPcGVyYXRpb24uVXBkYXRlIHx8IHJvd09wZXJhdGlvbiA9PT0gUm93T3BlcmF0aW9uLkRlbGV0ZSkgJiYgIWZpbmRSb3dJbmRleCkge1xuICAgIGZpbmRSb3dJbmRleCA9IChlbnRpdHk6IGFueSwgZW50aXRpZXM6IGFueVtdKSA9PiBlbnRpdGllcy5maW5kSW5kZXgoZSA9PiBlLmlkID09PSBlbnRpdHkuaWQpO1xuICB9XG5cbiAgZmxhZ0VudGl0eShlbnRpdGllcywgdHJ1ZSwgcm93T3BlcmF0aW9uLCBmaW5kUm93SW5kZXgpO1xuXG4gIC8vc29sdXRpb24gZm9yIHVubWFya2VkIHByZXZpb3VlcyByb3dzXG4gIHNldFRpbWVvdXQoKCkgPT4gZmxhZ0VudGl0eShlbnRpdGllcywgZmFsc2UsIFJvd09wZXJhdGlvbi5Ob25lKSwgMTAwMCk7XG59XG5cbmV4cG9ydCB0eXBlIFJvd1RhYmxlUGF5bG9hZDxUID0gYW55PiA9IHsgcm93T3BlcmF0aW9uOiBSb3dPcGVyYXRpb24sIGNoYW5nZWQ6IGJvb2xlYW4sIGZpbmRSb3dJbmRleD86IChlbnRpdHk6IFQsIGVudGl0aWVzOiBUW10pID0+IG51bWJlciB9O1xuXG5mdW5jdGlvbiBmbGFnRW50aXR5PFQgZXh0ZW5kcyBSb3dUYWJsZVBheWxvYWQ+KGVudGl0aWVzOiBUW10sIGZsYWc6IGJvb2xlYW4sIHJvd09wZXJhdGlvbjogUm93T3BlcmF0aW9uLCBmaW5kUm93SW5kZXg/OiAoZW50aXR5OiBULCBlbnRpdGllczogVFtdKSA9PiBudW1iZXIpIHtcbiAgZW50aXRpZXMuZm9yRWFjaChlbnRpdHkgPT4ge1xuICAgIGVudGl0eS5jaGFuZ2VkID0gZmxhZztcbiAgICBlbnRpdHkucm93T3BlcmF0aW9uID0gcm93T3BlcmF0aW9uID8/IGVudGl0eS5yb3dPcGVyYXRpb247XG4gICAgZW50aXR5LmZpbmRSb3dJbmRleCA9IGZpbmRSb3dJbmRleCB8fCAoKGVudGl0eSwgZW50aXRpZXMpID0+IG51bGwpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzKGNpdHk6IHN0cmluZywgc3RyZWV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgYWRkcmVzcyA9IG51bGw7XG4gIGlmIChjaXR5ICYmIHN0cmVldCkge1xuICAgIGFkZHJlc3MgPSBgJHtzdHJlZXR9LCAke2NpdHl9YDtcbiAgfSBlbHNlIGlmIChjaXR5KSB7XG4gICAgYWRkcmVzcyA9IGNpdHk7XG4gIH0gZWxzZSBpZiAoc3RyZWV0KSB7XG4gICAgYWRkcmVzcyA9IHN0cmVldDtcbiAgfVxuXG4gIHJldHVybiBhZGRyZXNzO1xufVxuXG5leHBvcnQgdHlwZSBGaWx0ZXJWYWx1ZVJlc29sdmVyPFQ+ID0gKG9iajogVCwgcHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IGFueTtcbmV4cG9ydCB0eXBlIFNvbWVWYWx1ZVJlc29sdmVyPFQ+ID0gKG9iajogVCwgc3ViR3JvdXBQcm9wZXJ0eU5hbWU6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcsIG9wZXJhdG9yOiBPcGVyYXRvciwgcmVkdWNlOiBhbnkpID0+IGFueTtcblxuZXhwb3J0IGNvbnN0IGJhc2VSZWR1Y2U6IEZpbHRlclZhbHVlUmVzb2x2ZXI8YW55PiA9IChvYmo6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIG9ialtwcm9wZXJ0eU5hbWVdO1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyS2V5VmFsdWVCYXNlUmVkdWNlOiBGaWx0ZXJWYWx1ZVJlc29sdmVyPHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IH0+ID0gKFxuICBvYmosXG4gIF8sXG4pID0+IG9iai52YWx1ZTtcblxuZXhwb3J0IGZ1bmN0aW9uKiBmbGF0dGVuQnlLZXkoYXJyYXksIG5lc3RlZEtleTogc3RyaW5nLCBkZXB0aCA9IDEpIHtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGFycmF5KSB7XG4gICAgaWYgKGl0ZW1bbmVzdGVkS2V5XSAmJiBBcnJheS5pc0FycmF5KGl0ZW1bbmVzdGVkS2V5XSkgJiYgZGVwdGggPiAwKSB7XG4gICAgICB5aWVsZCogZmxhdHRlbkJ5S2V5KGl0ZW1bbmVzdGVkS2V5XSwgbmVzdGVkS2V5LCBkZXB0aCAtIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5aWVsZCBpdGVtO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJT1NEZXZpY2UoKSB7XG4gIHZhciBpc0lPUyA9IC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICB2YXIgaXNBcHBsZURldmljZSA9IG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoJ01hY2ludG9zaCcpO1xuICB2YXIgaXNUb3VjaFNjcmVlbiA9IG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+PSAxOyAvLyB0cnVlIGZvciBpT1MgMTMgKGFuZCBob3BlZnVsbHkgYmV5b25kKVxuICByZXR1cm4gaXNJT1MgfHwgKGlzQXBwbGVEZXZpY2UgJiYgKGlzVG91Y2hTY3JlZW4gfHwgaU9TMXRvMTJxdWlyaygpKSk7XG59XG5cbmZ1bmN0aW9uIGlPUzF0bzEycXVpcmsoKSB7XG4gIHZhciBhdWRpbyA9IG5ldyBBdWRpbygpOyAvLyB0ZW1wb3JhcnkgQXVkaW8gb2JqZWN0XG4gIGF1ZGlvLnZvbHVtZSA9IDAuNTsgLy8gaGFzIG5vIGVmZmVjdCBvbiBpT1MgPD0gMTJcbiAgcmV0dXJuIGF1ZGlvLnZvbHVtZSA9PT0gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNsZWVwKG1pbGxpc2Vjb25kczogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0RW1wdHkob2JqOiB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RydWVJbkJpbmFyeShkZWNpbWFsVmFsdWU6IG51bWJlciwgYml0UG9zaXRpb246IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gKGRlY2ltYWxWYWx1ZSAmIGJpdFBvc2l0aW9uKSAhPT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRCaW5hcnlUb0RlY2ltYWwoYmluYXJ5U3RyaW5nOiBzdHJpbmcpOiBudW1iZXIge1xuICAvLyBVc2UgcGFyc2VJbnQgZnVuY3Rpb24gdG8gY29udmVydCBiaW5hcnkgc3RyaW5nIHRvIGRlY2ltYWwgbnVtYmVyXG4gIHJldHVybiBwYXJzZUludChiaW5hcnlTdHJpbmcsIDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERlY2ltYWxUb0JpbmFyeShkZWNpbWFsTnVtYmVyOiBudW1iZXIpOiBzdHJpbmcge1xuICAvLyBVc2UgdG9TdHJpbmcoMikgZnVuY3Rpb24gdG8gY29udmVydCBkZWNpbWFsIG51bWJlciB0byBiaW5hcnkgc3RyaW5nXG4gIHJldHVybiBpc05hTihkZWNpbWFsTnVtYmVyKSA/ICcnIDogZGVjaW1hbE51bWJlci50b1N0cmluZygyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0T2JqZWN0QnlQcm9wZXJ0eTxULCBLIGV4dGVuZHMga2V5b2YgVD4oYXJyOiBUW10sIHByb3A6IEspOiBUW10ge1xuICBjb25zdCBtYXAgPSBuZXcgTWFwPFRbS10sIFQ+KCk7XG4gIGFyci5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIGNvbnN0IGtleSA9IGl0ZW1bcHJvcF07XG4gICAgaWYgKCFtYXAuaGFzKGtleSkpIHtcbiAgICAgIG1hcC5zZXQoa2V5LCBpdGVtKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzdGluY3RPYmplY3RCeVByb3BlcnRpZXM8VCwgSyBleHRlbmRzIGtleW9mIFQ+KGFycjogVFtdLCAuLi5wcm9wczogS1tdKTogVFtdIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFQ+KCk7XG4gIGFyci5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIGNvbnN0IGtleSA9IHByb3BzLm1hcChwcm9wID0+IGl0ZW1bcHJvcF0pLmpvaW4oJ18nKTtcbiAgICBpZiAoIW1hcC5oYXMoa2V5KSkge1xuICAgICAgbWFwLnNldChrZXksIGl0ZW0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50TGFuZyh1c2VyU2V0dGluZ3M6IE1hcDxFZGdlLlNldHRpbmdzQ2F0ZWdvcnksIGFueT4pIHtcbiAgY29uc3QgdmFsdWU6IENsb3VkLkxvY2FsaXphdGlvbkR0byA9IHVzZXJTZXR0aW5ncz8uZ2V0KEVkZ2UuU2V0dGluZ3NDYXRlZ29yeS5Mb2NhbGl6YXRpb24pO1xuICByZXR1cm4gdmFsdWU/LmtleU5hbWUgPz8gTE9DQUxfRU5HTElTSF9MQU5HVUFHRTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VhcmNoRmllbGRDaGFuZ2VkKHByZXY6IGFueSwgY3VycjogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzRmllbGRTZWxlY3RvckNoYW5nZWQgPSBwcmV2LnNlYXJjaEZpZWxkU2VsZWN0b3IgIT09IGN1cnIuc2VhcmNoRmllbGRTZWxlY3RvciAmJiBjdXJyLnNlYXJjaFZhbHVlO1xuICBjb25zdCBpc1NlYXJjaFZhbHVlQ2hhbmdlZCA9IHByZXYuc2VhcmNoVmFsdWUgIT09IGN1cnIuc2VhcmNoVmFsdWU7XG5cbiAgcmV0dXJuIChpc0ZpZWxkU2VsZWN0b3JDaGFuZ2VkIHx8IGlzU2VhcmNoVmFsdWVDaGFuZ2VkKSAmJiBpc0NoYXJhY3Rlckxlbmd0aFZhbGlkKGN1cnIuc2VhcmNoVmFsdWUpO1xufVxuXG5leHBvcnQgY29uc3QgTWFpbk1vZHVsZVRvU3ViTW9kdWxlc1Blcm1pc3Npb25UeXBlTWFwOiBOdW1iZXJNYXA8RWRnZS5QZXJtaXNzaW9uVHlwZVtdPiA9IHtcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuQ2NNYWluXTogW10sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50TWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50QWNjb3VudFZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRBY2NvdW50Q3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50QWNjb3VudFVwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudEFjY291bnREZWxldGVdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNNYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzVmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNDcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzVXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc0RlbGV0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGx5U2VyaWVzQ3JlYXRlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RNYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0Q3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0VXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0RGVsZXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0R3JvdXBWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0R3JvdXBDcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RIb3RlbEd1ZXN0VmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5Ib3RlbEd1ZXN0SU9DcmVhdGVdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uTWFpbl06IFtcbiAgICBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25FVmFsaWRhdGlvblZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25FVmFsaWRhdGlvblVwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25EZWxldGUsXG4gICAgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJDcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJVcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJEZWxldGUsXG4gICAgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25Db3Vwb25VcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvbkRlbGV0ZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLlJlcG9ydHNNYWluXTogW10sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25NYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuTG90Q29uZmlndXJhdGlvblJhdGVzLCBFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25TY2hlZHVsZXIsIEVkZ2UuUGVybWlzc2lvblR5cGUuTG90Q29uZmlndXJhdGlvblZhbGlkYXRpb25Qcm9maWxlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25BY2Nlc3NQcm9maWxlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuVGVuYW50U2V0dGluZ3NNYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuTWFuYWdlbWVudEFkbWluXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlQmFja29mZmljZU1haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5FQ29tbWVyY2VBZG1pbiwgRWRnZS5QZXJtaXNzaW9uVHlwZS5FQ29tbWVyY2VSZWd1bGFyXVxufTtcblxuZXhwb3J0IGNvbnN0IEFwcE1vZHVsZVRvTWFpblBlcm1pc3Npb25UeXBlTWFwOiBOdW1iZXJNYXA8RWRnZS5QZXJtaXNzaW9uVHlwZT4gPSB7XG4gIFtFZGdlLkFwcE1vZHVsZS5DY106IEVkZ2UuUGVybWlzc2lvblR5cGUuQ2NNYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuQWNjb3VudHNdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50TWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLk1vbnRobGllc106IEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLkd1ZXN0c106IEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RNYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuVmFsaWRhdGlvbl06IEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbk1haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5SZXBvcnRzXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5SZXBvcnRzTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLkxvdENvbmZpZ3VyYXRpb25dOiBFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25NYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuTWFuYWdlbWVudF06IEVkZ2UuUGVybWlzc2lvblR5cGUuVGVuYW50U2V0dGluZ3NNYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuRUNvbW1lcmNlQmFja29mZmljZV06IEVkZ2UuUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlQmFja29mZmljZU1haW4sXG59O1xuIl19
@@ -1,6 +1,7 @@
1
1
  // NGXS
2
2
  export * from './ngxs';
3
3
  // Utils
4
+ export * from './array.util';
4
5
  export * from './abstract-control.util';
5
6
  export * from './api-helper.util';
6
7
  export * from './boolean.util';
@@ -19,4 +20,4 @@ export * from './permission-type-mapper.util';
19
20
  export * from './search-params.util';
20
21
  export * from './support-version.util';
21
22
  export * from './text.util';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU87QUFDUCxjQUFjLFFBQVEsQ0FBQTtBQUV0QixRQUFRO0FBQ1IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOR1hTXG5leHBvcnQgKiBmcm9tICcuL25neHMnXG5cbi8vIFV0aWxzXG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LWNvbnRyb2wudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS1oZWxwZXIudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2xlYW4udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnJlbmN5LWhlbHBlci51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLXZhbGlkYXRvci51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVyLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4va2V5Ym9hcmQtZXZlbnQudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbmcudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2UtbWlncmF0b3IudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9udW1iZXIudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24tdHlwZS1tYXBwZXIudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1wYXJhbXMudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3N1cHBvcnQtdmVyc2lvbi51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC51dGlsJztcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU87QUFDUCxjQUFjLFFBQVEsQ0FBQTtBQUV0QixRQUFRO0FBQ1IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOR1hTXG5leHBvcnQgKiBmcm9tICcuL25neHMnXG5cbi8vIFV0aWxzXG5leHBvcnQgKiBmcm9tICcuL2FycmF5LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1jb250cm9sLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGktaGVscGVyLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9ib29sZWFuLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeS1oZWxwZXIudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS12YWxpZGF0b3IudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlci51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2tleWJvYXJkLWV2ZW50LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW5nLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlLW1pZ3JhdG9yLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhZGF0YS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLXR5cGUtbWFwcGVyLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtcGFyYW1zLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zdXBwb3J0LXZlcnNpb24udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQudXRpbCc7XG4iXX0=