@resolveio/client-lib-core 15.5.2 → 16.0.0

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 (153) hide show
  1. package/esm2022/lib/account-manager.service.mjs +229 -0
  2. package/esm2022/lib/auth/auth-guard.service.mjs +174 -0
  3. package/esm2022/lib/auth/auth-permissions.service.mjs +23 -0
  4. package/esm2022/lib/auth/auth.service.mjs +251 -0
  5. package/esm2022/lib/auth/auth365.component.mjs +51 -0
  6. package/esm2022/lib/auth/can-deactivate-guard.service.mjs +13 -0
  7. package/esm2022/lib/auth/enroll.component.mjs +88 -0
  8. package/esm2022/lib/auth/forgot-password.component.mjs +89 -0
  9. package/esm2022/lib/core.component.mjs +404 -0
  10. package/esm2022/lib/core.module.mjs +176 -0
  11. package/esm2022/lib/core.service.mjs +88 -0
  12. package/esm2022/lib/directive/focus.mjs +24 -0
  13. package/esm2022/lib/directive/scroll.mjs +54 -0
  14. package/esm2022/lib/home/home.component.mjs +84 -0
  15. package/esm2022/lib/logger/logger.component.mjs +229 -0
  16. package/esm2022/lib/models/app-status.model.mjs +2 -0
  17. package/esm2022/lib/models/collection-document.model.mjs +2 -0
  18. package/esm2022/lib/models/cron-job.model.mjs +2 -0
  19. package/esm2022/lib/models/dialog.model.mjs +2 -0
  20. package/esm2022/lib/models/file.model.mjs +2 -0
  21. package/esm2022/lib/models/log-method-latency.model.mjs +2 -0
  22. package/esm2022/lib/models/navbar-main-tab.model.mjs +2 -0
  23. package/esm2022/lib/models/pagination.model.mjs +2 -0
  24. package/esm2022/lib/models/permission.model.mjs +2 -0
  25. package/esm2022/lib/models/select-data-label.model.mjs +2 -0
  26. package/esm2022/lib/models/subscription.model.mjs +2 -0
  27. package/esm2022/lib/models/support-ticket.model.mjs +2 -0
  28. package/esm2022/lib/models/user-group.model.mjs +2 -0
  29. package/esm2022/lib/models/user.model.mjs +2 -0
  30. package/esm2022/lib/offline-db.mjs +519 -0
  31. package/esm2022/lib/offline-manager.service.mjs +109 -0
  32. package/esm2022/lib/pipes/domsanitizor.pipe.mjs +29 -0
  33. package/esm2022/lib/pipes/filter.pipe.mjs +36 -0
  34. package/esm2022/lib/pipes/json-parse.pipe.mjs +29 -0
  35. package/esm2022/lib/pipes/minus-currency.pipe.mjs +16 -0
  36. package/esm2022/lib/pipes/phone.pipe.mjs +47 -0
  37. package/esm2022/lib/pipes/pipe.module.mjs +54 -0
  38. package/esm2022/lib/pipes/reverse-list.pipe.mjs +17 -0
  39. package/esm2022/lib/pipes/titlecase.pipe.mjs +22 -0
  40. package/esm2022/lib/report-builder.permission.mjs +13 -0
  41. package/esm2022/lib/resolveio-class.mjs +50 -0
  42. package/esm2022/lib/shared/shared.module.mjs +96 -0
  43. package/esm2022/lib/socket-manager.service.mjs +340 -0
  44. package/esm2022/lib/socket.service.mjs +200 -0
  45. package/esm2022/lib/super-admin.permission.mjs +9 -0
  46. package/esm2022/lib/support-ticket/detail/support-ticket-detail.component.mjs +211 -0
  47. package/esm2022/lib/support-ticket/edit/support-ticket-edit.component.mjs +131 -0
  48. package/esm2022/lib/support-ticket/list/support-ticket-list.component.mjs +142 -0
  49. package/esm2022/lib/support-ticket/new/support-ticket-new.component.mjs +121 -0
  50. package/esm2022/lib/support-ticket/support-ticket.component.mjs +67 -0
  51. package/esm2022/lib/support-ticket/support-ticket.module.mjs +50 -0
  52. package/esm2022/lib/support-ticket/support-ticket.routing.mjs +20 -0
  53. package/esm2022/lib/support-ticket/support-ticket.service.mjs +16 -0
  54. package/esm2022/lib/token-manager.service.mjs +25 -0
  55. package/esm2022/lib/user-settings/settings/users-settings.component.mjs +302 -0
  56. package/esm2022/lib/user-settings/user-settings.component.mjs +61 -0
  57. package/esm2022/lib/user-settings/user-settings.module.mjs +41 -0
  58. package/esm2022/lib/user-settings/user-settings.permission.mjs +10 -0
  59. package/esm2022/lib/user-settings/user-settings.routing.mjs +14 -0
  60. package/esm2022/lib/user-settings/user-settings.service.mjs +16 -0
  61. package/esm2022/lib/util/action-name.helper.mjs +9 -0
  62. package/esm2022/lib/util/aws.service.mjs +80 -0
  63. package/esm2022/lib/util/common.helper.mjs +133 -0
  64. package/esm2022/lib/util/validation.service.mjs +185 -0
  65. package/esm2022/lib/util/window-resize.service.mjs +38 -0
  66. package/esm2022/lib/util/window.service.mjs +16 -0
  67. package/esm2022/lib/widgets/alert/alert.model.mjs +2 -0
  68. package/esm2022/lib/widgets/alert/alert.service.mjs +79 -0
  69. package/esm2022/lib/widgets/collapse-table/collapse-table.component.mjs +83 -0
  70. package/esm2022/lib/widgets/collapse-table/collapse-table.module.mjs +34 -0
  71. package/esm2022/lib/widgets/data-table/data-table.component.mjs +84 -0
  72. package/esm2022/lib/widgets/data-table/data-table.model.mjs +2 -0
  73. package/esm2022/lib/widgets/data-table/data-table.module.mjs +41 -0
  74. package/esm2022/lib/widgets/date-shortcut/date-shortcut.component.mjs +198 -0
  75. package/esm2022/lib/widgets/date-shortcut/date-shortcut.module.mjs +32 -0
  76. package/esm2022/lib/widgets/dialog/dialog.confirm.content.mjs +67 -0
  77. package/esm2022/lib/widgets/dialog/dialog.error.content.mjs +60 -0
  78. package/esm2022/lib/widgets/dialog/dialog.input.content.mjs +200 -0
  79. package/esm2022/lib/widgets/dialog/dialog.login.content.mjs +354 -0
  80. package/esm2022/lib/widgets/dialog/dialog.notify.content.mjs +60 -0
  81. package/esm2022/lib/widgets/dialog/dialog.register.content.mjs +333 -0
  82. package/esm2022/lib/widgets/dialog/dialog.select-array-objs.content.mjs +203 -0
  83. package/esm2022/lib/widgets/dialog/dialog.select-array.content.mjs +310 -0
  84. package/esm2022/lib/widgets/dialog/dialog.select-data-labels.content.mjs +196 -0
  85. package/esm2022/lib/widgets/dialog/dialog.select-datetime.content.mjs +191 -0
  86. package/esm2022/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +166 -0
  87. package/esm2022/lib/widgets/dialog/dialog.service.mjs +98 -0
  88. package/esm2022/lib/widgets/file/file-upload.component.mjs +433 -0
  89. package/esm2022/lib/widgets/file/file-upload.module.mjs +48 -0
  90. package/esm2022/lib/widgets/form-button/form-button.component.mjs +97 -0
  91. package/esm2022/lib/widgets/form-button/form-button.module.mjs +28 -0
  92. package/esm2022/lib/widgets/navbar-main/navbar-main.component.mjs +222 -0
  93. package/esm2022/lib/widgets/navbar-module/navbar-module.component.mjs +108 -0
  94. package/esm2022/lib/widgets/navbar-module/navbar-module.model.mjs +2 -0
  95. package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +41 -0
  96. package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +24 -0
  97. package/esm2022/lib/widgets/scheduler/scheduler.component.mjs +186 -0
  98. package/esm2022/lib/widgets/scheduler/scheduler.module.mjs +37 -0
  99. package/esm2022/lib/widgets/sort-table/sort-table-header.component.mjs +72 -0
  100. package/esm2022/lib/widgets/sort-table/sort-table-ngfor.component.mjs +49 -0
  101. package/esm2022/lib/widgets/sort-table/sort-table.directive.mjs +177 -0
  102. package/esm2022/lib/widgets/sort-table/sort-table.module.mjs +38 -0
  103. package/esm2022/lib/widgets/user-role/user-role.component.mjs +29 -0
  104. package/esm2022/lib/widgets/user-role/user-role.module.mjs +24 -0
  105. package/esm2022/public_api.mjs +91 -0
  106. package/esm2022/resolveio-client-lib-core.mjs +5 -0
  107. package/fesm2022/resolveio-client-lib-core.mjs +9019 -0
  108. package/fesm2022/resolveio-client-lib-core.mjs.map +1 -0
  109. package/index.d.ts +3 -0
  110. package/lib/auth/auth-guard.service.d.ts +2 -2
  111. package/lib/auth/can-deactivate-guard.service.d.ts +1 -2
  112. package/lib/core.component.d.ts +1 -2
  113. package/lib/core.module.d.ts +26 -29
  114. package/lib/directive/focus.d.ts +1 -1
  115. package/lib/directive/scroll.d.ts +1 -1
  116. package/lib/logger/logger.component.d.ts +0 -2
  117. package/lib/models/dialog.model.d.ts +1 -1
  118. package/lib/models/pagination.model.d.ts +1 -0
  119. package/lib/models/user-group.model.d.ts +0 -1
  120. package/lib/offline-db.d.ts +1 -5
  121. package/lib/offline-manager.service.d.ts +1 -4
  122. package/lib/socket-manager.service.d.ts +5 -34
  123. package/lib/socket.service.d.ts +3 -17
  124. package/lib/token-manager.service.d.ts +2 -4
  125. package/lib/util/aws.service.d.ts +1 -2
  126. package/lib/util/common.helper.d.ts +1 -3
  127. package/lib/util/window-resize.service.d.ts +6 -5
  128. package/lib/widgets/collapse-table/collapse-table.component.d.ts +1 -1
  129. package/lib/widgets/data-table/data-table.component.d.ts +1 -1
  130. package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +1 -5
  131. package/lib/widgets/dialog/dialog.confirm.content.d.ts +1 -1
  132. package/lib/widgets/dialog/dialog.error.content.d.ts +1 -1
  133. package/lib/widgets/dialog/dialog.input.content.d.ts +1 -1
  134. package/lib/widgets/dialog/dialog.login.content.d.ts +1 -1
  135. package/lib/widgets/dialog/dialog.notify.content.d.ts +1 -1
  136. package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +1 -1
  137. package/lib/widgets/dialog/dialog.select-array.content.d.ts +1 -1
  138. package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +1 -1
  139. package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +1 -1
  140. package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +1 -1
  141. package/lib/widgets/file/file-upload.component.d.ts +1 -1
  142. package/lib/widgets/file/file-upload.module.d.ts +2 -2
  143. package/lib/widgets/form-button/form-button.component.d.ts +1 -1
  144. package/lib/widgets/navbar-main/navbar-main.component.d.ts +1 -2
  145. package/lib/widgets/navbar-module/navbar-module.component.d.ts +1 -1
  146. package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +1 -1
  147. package/lib/widgets/sort-table/sort-table-header.component.d.ts +1 -1
  148. package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +1 -1
  149. package/lib/widgets/sort-table/sort-table.directive.d.ts +8 -1
  150. package/lib/widgets/user-role/user-role.component.d.ts +1 -1
  151. package/package.json +5 -6
  152. package/fesm2020/resolveio-client-lib-core.min.mjs +0 -1
  153. package/lib/logger/diff-viewer.component.d.ts +0 -35
@@ -0,0 +1,229 @@
1
+ import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
2
+ import { ProviderService, BaseComponent } from '../resolveio-class';
3
+ import moment from 'moment';
4
+ import { DialogService } from '../widgets/dialog/dialog.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../resolveio-class";
7
+ import * as i2 from "../widgets/dialog/dialog.service";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "@ng-bootstrap/ng-bootstrap";
10
+ import * as i5 from "../widgets/responsive-button-group/responsive-button-group.component";
11
+ import * as i6 from "@ng-select/ng-select";
12
+ import * as i7 from "@angular/common";
13
+ import * as i8 from "../pipes/json-parse.pipe";
14
+ export class LoggerComponent extends BaseComponent {
15
+ _services;
16
+ _ds;
17
+ _cd;
18
+ subscription$ = [];
19
+ logs = [];
20
+ entries_per_page = 25;
21
+ page_num = 1;
22
+ log_cnt = 0;
23
+ user = null;
24
+ users = [];
25
+ dateStartElem;
26
+ dateEndElem;
27
+ timeStartElem;
28
+ timeEndElem;
29
+ dateStart;
30
+ dateEnd;
31
+ selectedTypes = [];
32
+ collection = '';
33
+ method = '';
34
+ route = '';
35
+ id_document = '';
36
+ constructor(_services, _ds, _cd) {
37
+ super(_services);
38
+ this._services = _services;
39
+ this._ds = _ds;
40
+ this._cd = _cd;
41
+ }
42
+ ngOnInit() {
43
+ if (!this._services._account.getUser().roles.super_admin) {
44
+ this._services._router.navigateByUrl('/home');
45
+ }
46
+ this.subscription$.push(this._services._socket.subscribe('allUsers').subscribe(users => {
47
+ this.users = users;
48
+ this._cd.detectChanges();
49
+ }));
50
+ let jsDateStart = new Date();
51
+ jsDateStart.setHours(0, 0, 0, 0);
52
+ let date_start = new Date(moment(jsDateStart).subtract(10, 'days').toDate());
53
+ this.dateStartElem = { year: date_start.getFullYear(), month: date_start.getMonth() + 1, day: date_start.getDate() };
54
+ this.timeStartElem = { hour: 0, minute: 0, second: 0 };
55
+ let jsDateEnd = new Date();
56
+ jsDateEnd.setHours(23, 59, 59, 999);
57
+ let date_end = jsDateEnd;
58
+ this.dateEndElem = { year: date_end.getFullYear(), month: date_end.getMonth() + 1, day: date_end.getDate() };
59
+ this.timeEndElem = { hour: 23, minute: 59, second: 59 };
60
+ this.getLogData();
61
+ }
62
+ ngOnDestroy() {
63
+ this.subscription$.forEach(sub => {
64
+ sub.unsubscribe();
65
+ });
66
+ }
67
+ getLogData() {
68
+ this.dateStart = new Date(this.dateStartElem.year, this.dateStartElem.month - 1, this.dateStartElem.day, this.timeStartElem.hour, this.timeStartElem.minute, this.timeStartElem.second, 0);
69
+ this.dateEnd = new Date(this.dateEndElem.year, this.dateEndElem.month - 1, this.dateEndElem.day, this.timeEndElem.hour, this.timeEndElem.minute, this.timeEndElem.second, 999);
70
+ let query = {
71
+ $and: [
72
+ { createdAt: { $gte: this.dateStart } },
73
+ { createdAt: { $lte: this.dateEnd } }
74
+ ]
75
+ };
76
+ if (!this.selectedTypes.length) {
77
+ return;
78
+ }
79
+ else {
80
+ query.$and.push({ type: { $in: this.selectedTypes } });
81
+ }
82
+ if (this.collection) {
83
+ if (this.collection.includes(',')) {
84
+ let collections = this.collection.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));
85
+ if (collections.length) {
86
+ query.$and.push({ collection: { $in: collections } });
87
+ }
88
+ let notCollections = this.collection.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));
89
+ notCollections.forEach(not => {
90
+ query.$and.push({ collection: { $ne: not.replace('!', '') } });
91
+ });
92
+ }
93
+ else {
94
+ if (this.collection.startsWith('!')) {
95
+ query.$and.push({ collection: { $ne: this.collection.replace('!', '').trim() } });
96
+ }
97
+ else {
98
+ query.$and.push({ collection: this.collection.trim() });
99
+ }
100
+ }
101
+ }
102
+ if (this.method) {
103
+ if (this.method.includes(',')) {
104
+ let methods = this.method.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));
105
+ if (methods.length) {
106
+ query.$and.push({ method: { $in: methods } });
107
+ }
108
+ let notMethods = this.method.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));
109
+ notMethods.forEach(not => {
110
+ query.$and.push({ method: { $ne: not.replace('!', '') } });
111
+ });
112
+ }
113
+ else {
114
+ if (this.method.startsWith('!')) {
115
+ query.$and.push({ method: { $ne: this.method.replace('!', '').trim() } });
116
+ }
117
+ else {
118
+ query.$and.push({ method: this.method.trim() });
119
+ }
120
+ }
121
+ }
122
+ if (this.route) {
123
+ if (this.route.includes(',')) {
124
+ let routes = this.route.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));
125
+ if (routes.length) {
126
+ query.$and.push({ route: { $in: routes } });
127
+ }
128
+ let notRoutes = this.route.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));
129
+ notRoutes.forEach(not => {
130
+ query.$and.push({ route: { $ne: not.replace('!', '') } });
131
+ });
132
+ }
133
+ else {
134
+ if (this.route.startsWith('!')) {
135
+ query.$and.push({ route: { $ne: this.route.replace('!', '').trim() } });
136
+ }
137
+ else {
138
+ query.$and.push({ route: this.route.trim() });
139
+ }
140
+ }
141
+ }
142
+ if (this.id_document) {
143
+ if (this.id_document.includes(',')) {
144
+ let id_documents = this.id_document.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));
145
+ if (id_documents.length) {
146
+ query.$and.push({ id_document: { $in: id_documents } });
147
+ }
148
+ let notIds = this.id_document.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));
149
+ notIds.forEach(not => {
150
+ query.$and.push({ id_document: { $ne: not.replace('!', '') } });
151
+ });
152
+ }
153
+ else {
154
+ if (this.id_document.startsWith('!')) {
155
+ query.$and.push({ id_document: { $ne: this.id_document.replace('!', '').trim() } });
156
+ }
157
+ else {
158
+ query.$and.push({ id_document: this.id_document.trim() });
159
+ }
160
+ }
161
+ }
162
+ if (this.user) {
163
+ query.$and.push({ user: this.user });
164
+ }
165
+ if (typeof (this.entries_per_page) === 'string') {
166
+ this.entries_per_page = parseInt(this.entries_per_page);
167
+ }
168
+ this._services._socket.call('findWithOptions', 'logs', query, { sort: { createdAt: -1 }, limit: this.entries_per_page, skip: this.entries_per_page * (this.page_num - 1) }, (err, res) => {
169
+ this.logs = res;
170
+ this._cd.detectChanges();
171
+ });
172
+ this._services._socket.call('countCollectionWithQuery', 'logs', query, (err, res) => {
173
+ this.log_cnt = res;
174
+ this._cd.detectChanges();
175
+ });
176
+ this._cd.detectChanges();
177
+ }
178
+ selectType(type) {
179
+ if (type !== 'all') {
180
+ if (this.selectedTypes.includes(type)) {
181
+ this.selectedTypes.splice(this.selectedTypes.indexOf(type), 1);
182
+ }
183
+ else {
184
+ this.selectedTypes.push(type);
185
+ }
186
+ }
187
+ else {
188
+ if (this.selectedTypes.length === 7) {
189
+ this.selectedTypes = [];
190
+ }
191
+ else {
192
+ this.selectedTypes = ['error', 'document', 'query', 'queryResponse', 'client-request', 'client-response', 'callMethodInternal'];
193
+ }
194
+ }
195
+ this.logs = [];
196
+ if (this.selectedTypes.length) {
197
+ this.getLogData();
198
+ }
199
+ }
200
+ icon(type) {
201
+ if (type === 'error') {
202
+ return 'danger';
203
+ }
204
+ else if (type === 'document') {
205
+ return 'info';
206
+ }
207
+ else if (type === 'client-response') {
208
+ return 'success';
209
+ }
210
+ else if (type === 'client-request') {
211
+ return 'primary';
212
+ }
213
+ else {
214
+ return 'secondary';
215
+ }
216
+ }
217
+ removeAllLogs() {
218
+ this._ds.confirm('Are you sure you want to delete all logs?').then(() => {
219
+ this._services._socket.call('removeAllDocuments', 'logs');
220
+ }, () => { });
221
+ }
222
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoggerComponent, deps: [{ token: i1.ProviderService }, { token: i2.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
223
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoggerComponent, selector: "ng-component", providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<style>\n\t.label-accordion {\n\t\tfont-weight: bold;\n\t\tcolor: black;\n\t\tmargin-bottom: 0px;\n\t}\n\tngb-accordion {\n\t\twidth: 100%;\n\t}\n\t.hoverThis:hover {\n\t\tbackground: lightblue;\n\t\tcursor: pointer;\n\t}\n\t\n\t.fa-plus {\n\t\tcolor: black;\n\t}\n\t.fa-minus {\n\t\tcolor: black;\n\t}\n\t\n\t.selected {\n\t\tbackground-color: orange;\n\t}\n\t.selected:hover {\n\t\tcursor: pointer;\n\t}\n\t.card {\n\t\twidth: 100%;\n\t}\n</style>\n\n<div class=\"row\">\n\t<div class=\"col-lg-12\">\n\t\t<div class=\"card\">\n\t\t\t<div class=\"card-header\"><b>Filters</b></div>\n\t\t\t<div class=\"card-body\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t\t\t<responsive-button-group collapseSize=\"900\">\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('error') && selectedTypes.includes('document') && selectedTypes.includes('query') && selectedTypes.includes('client-request') && selectedTypes.includes('client-response') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('all')\">All</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('error') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('error')\">Errors</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('document') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('document')\">Document</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('query') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('query')\">Query</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('queryResponse') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('queryResponse')\">Query Response</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('client-request') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('client-request')\">Client Requests</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('client-response') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('client-response')\">Client Responses</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('callMethodInternal') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('callMethodInternal')\">Call Method Internal</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-danger\" (click)=\"removeAllLogs()\">REMOVE ALL LOGS</button>\n\t\t\t\t\t\t</responsive-button-group>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"row\" style=\"margin-top: 10px;\">\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">User</label>\n\t\t\t\t\t\t<ng-select [(ngModel)]=\"user\" (change)=\"getLogData()\" placeholder=\"Select User\">\n\t\t\t\t\t\t\t<ng-option *ngFor=\"let user of users\" [value]=\"user.fullname\">{{user.fullname}}</ng-option>\n\t\t\t\t\t\t</ng-select>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Collection</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"collection\" (change)=\"getLogData()\" placeholder=\"Input Colls Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Method</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"method\" (change)=\"getLogData()\" placeholder=\"Input Methods Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Route</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"route\" (change)=\"getLogData()\" placeholder=\"Input Routes Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Document</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"id_document\" (change)=\"getLogData()\" placeholder=\"Input Ids Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"row\" style=\"margin-top: 10px;\">\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Date Start</label>\n\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"dateStartElem\" ngbDatepicker #dStart=\"ngbDatepicker\" (change)=\"getLogData()\">\n\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"dStart.toggle()\">\n\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Time Start</label>\n\t\t\t\t\t\t<ngb-timepicker [(ngModel)]=\"timeStartElem\" meridian=\"ON\" [seconds]=\"true\" (change)=\"getLogData()\"></ngb-timepicker>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Date End</label>\n\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"dateEndElem\" ngbDatepicker #dEnd=\"ngbDatepicker\" (change)=\"getLogData()\">\n\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"dEnd.toggle()\">\n\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Time End</label><br>\n\t\t\t\t\t\t<ngb-timepicker [(ngModel)]=\"timeEndElem\" meridian=\"ON\" [seconds]=\"true\" (change)=\"getLogData()\"></ngb-timepicker>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"row\">\n\t<div class=\"col-lg-8\">\n\t\t<label class=\"form-control-label\">Entries Per Page</label>\n\t\t<select class=\"form-control\" [(ngModel)]=\"entries_per_page\" (change)=\"getLogData()\">\n\t\t\t<option value=\"10\">10</option>\n\t\t\t<option value=\"25\">25</option>\n\t\t\t<option value=\"50\">50</option>\n\t\t\t<option value=\"100\">100</option>\n\t\t\t<option value=\"250\">250</option>\n\t\t\t<option value=\"500\">500</option>\n\t\t\t<option value=\"1000\">1000</option>\n\t\t\t<option value=\"5000\">5000</option>\n\t\t</select>\n\t</div>\n\t<div class=\"col-lg-4\">\n\t\t<ngb-pagination class=\"float-right\"\n\t\tboundaryLinks=\"true\"\n\t\t[collectionSize]=\"log_cnt\"\n\t\tdirectionLinks=\"true\"\n\t\tellipses=\"false\"\n\t\t[(page)]=\"page_num\"\n\t\tmaxSize=\"6\"\n\t\t[pageSize]=\"entries_per_page\"\n\t\trotate=\"true\"\n\t\t(pageChange)=\"getLogData()\"\n\t\t>\n\t\t</ngb-pagination>\n\t</div>\n</div>\n<div class=\"row\" style=\"margin-top: 10px\">\n\t<ngb-accordion #acc=\"ngbAccordion\" activeIds=\"\">\n\t\t<ngb-panel *ngFor=\"let log of logs; let i = index\" [id]=\"'log_' + i\">\n\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t<div> \n\t\t\t\t\t<label class=\"label-accordion\" style=\"width: 90%; height: 22px\">\n\t\t\t\t\t\t<strong class=\"pull-left\">Type: {{ log.type }}{{log.method ? ' - Method: ' + log.method : '' }}{{log.collection ? ' - Collection: ' + log.collection : '' }}{{log.user ? ' - User: ' + log.user : '' }}{{log.route ? ' - Route: ' + log.route : '' }}{{log.id_document ? ' - id_document: ' + log.id_document : '' }}{{log.messageId ? ' - messageId: ' + log.messageId : '' }}</strong>\n\t\t\t\t\t\t<p class=\"pull-right\">{{ log.createdAt | date : 'medium' }}</p>\n\t\t\t\t\t</label>\n\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('log_' + i)\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('log_' + i)\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t<div *ngIf=\"log.payload\">\n\t\t\t\t\t<pre>{{ log.payload | jsonParse }}</pre>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf=\"!log.payload\">\n\t\t\t\t\tNo Data\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t</ngb-panel>\n\t</ngb-accordion>\n</div>\n<div class=\"row\" style=\"margin-top: 10px\">\n\t<div class=\"col-lg-4\">\n\t\t<div class=\"row\"> \n\t\t\t<div class=\"col-lg-8\">\n\t\t\t\t<label class=\"form-control-label\">Entries Per Page</label>\n\t\t\t\t<select class=\"form-control\" [(ngModel)]=\"entries_per_page\" (change)=\"getLogData()\">\n\t\t\t\t\t<option value=\"10\">10</option>\n\t\t\t\t\t<option value=\"25\">25</option>\n\t\t\t\t\t<option value=\"50\">50</option>\n\t\t\t\t\t<option value=\"100\">100</option>\n\t\t\t\t\t<option value=\"250\">250</option>\n\t\t\t\t\t<option value=\"500\">500</option>\n\t\t\t\t\t<option value=\"1000\">1000</option>\n\t\t\t\t\t<option value=\"5000\">5000</option>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"col-lg-8\">\n\t\t<ngb-pagination class=\"float-right\"\n\t\tboundaryLinks=\"true\"\n\t\t[collectionSize]=\"log_cnt\"\n\t\tdirectionLinks=\"true\"\n\t\tellipses=\"false\"\n\t\t[(page)]=\"page_num\"\n\t\tmaxSize=\"6\"\n\t\t[pageSize]=\"entries_per_page\"\n\t\trotate=\"true\"\n\t\t(pageChange)=\"getLogData()\"\n\t\t>\n\t\t</ngb-pagination>\n\t</div>\n</div>", styles: ["\n\t.label-accordion {\n\t\tfont-weight: bold;\n\t\tcolor: black;\n\t\tmargin-bottom: 0px;\n\t}\n\tngb-accordion {\n\t\twidth: 100%;\n\t}\n\t.hoverThis:hover {\n\t\tbackground: lightblue;\n\t\tcursor: pointer;\n\t}\n\t\n\t.fa-plus {\n\t\tcolor: black;\n\t}\n\t.fa-minus {\n\t\tcolor: black;\n\t}\n\t\n\t.selected {\n\t\tbackground-color: orange;\n\t}\n\t.selected:hover {\n\t\tcursor: pointer;\n\t}\n\t.card {\n\t\twidth: 100%;\n\t}\n"], dependencies: [{ kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i4.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i4.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i4.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "directive", type: i4.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i4.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "component", type: i4.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }, { kind: "component", type: i5.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { kind: "component", type: i6.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i6.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i8.JsonParsePipe, name: "jsonParse" }, { kind: "pipe", type: i7.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
224
+ }
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoggerComponent, decorators: [{
226
+ type: Component,
227
+ args: [{ providers: [ProviderService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<style>\n\t.label-accordion {\n\t\tfont-weight: bold;\n\t\tcolor: black;\n\t\tmargin-bottom: 0px;\n\t}\n\tngb-accordion {\n\t\twidth: 100%;\n\t}\n\t.hoverThis:hover {\n\t\tbackground: lightblue;\n\t\tcursor: pointer;\n\t}\n\t\n\t.fa-plus {\n\t\tcolor: black;\n\t}\n\t.fa-minus {\n\t\tcolor: black;\n\t}\n\t\n\t.selected {\n\t\tbackground-color: orange;\n\t}\n\t.selected:hover {\n\t\tcursor: pointer;\n\t}\n\t.card {\n\t\twidth: 100%;\n\t}\n</style>\n\n<div class=\"row\">\n\t<div class=\"col-lg-12\">\n\t\t<div class=\"card\">\n\t\t\t<div class=\"card-header\"><b>Filters</b></div>\n\t\t\t<div class=\"card-body\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t\t\t<responsive-button-group collapseSize=\"900\">\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('error') && selectedTypes.includes('document') && selectedTypes.includes('query') && selectedTypes.includes('client-request') && selectedTypes.includes('client-response') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('all')\">All</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('error') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('error')\">Errors</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('document') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('document')\">Document</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('query') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('query')\">Query</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('queryResponse') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('queryResponse')\">Query Response</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('client-request') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('client-request')\">Client Requests</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('client-response') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('client-response')\">Client Responses</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('callMethodInternal') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('callMethodInternal')\">Call Method Internal</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-danger\" (click)=\"removeAllLogs()\">REMOVE ALL LOGS</button>\n\t\t\t\t\t\t</responsive-button-group>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"row\" style=\"margin-top: 10px;\">\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">User</label>\n\t\t\t\t\t\t<ng-select [(ngModel)]=\"user\" (change)=\"getLogData()\" placeholder=\"Select User\">\n\t\t\t\t\t\t\t<ng-option *ngFor=\"let user of users\" [value]=\"user.fullname\">{{user.fullname}}</ng-option>\n\t\t\t\t\t\t</ng-select>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Collection</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"collection\" (change)=\"getLogData()\" placeholder=\"Input Colls Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Method</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"method\" (change)=\"getLogData()\" placeholder=\"Input Methods Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Route</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"route\" (change)=\"getLogData()\" placeholder=\"Input Routes Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Document</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"id_document\" (change)=\"getLogData()\" placeholder=\"Input Ids Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"row\" style=\"margin-top: 10px;\">\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Date Start</label>\n\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"dateStartElem\" ngbDatepicker #dStart=\"ngbDatepicker\" (change)=\"getLogData()\">\n\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"dStart.toggle()\">\n\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Time Start</label>\n\t\t\t\t\t\t<ngb-timepicker [(ngModel)]=\"timeStartElem\" meridian=\"ON\" [seconds]=\"true\" (change)=\"getLogData()\"></ngb-timepicker>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Date End</label>\n\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"dateEndElem\" ngbDatepicker #dEnd=\"ngbDatepicker\" (change)=\"getLogData()\">\n\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"dEnd.toggle()\">\n\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Time End</label><br>\n\t\t\t\t\t\t<ngb-timepicker [(ngModel)]=\"timeEndElem\" meridian=\"ON\" [seconds]=\"true\" (change)=\"getLogData()\"></ngb-timepicker>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"row\">\n\t<div class=\"col-lg-8\">\n\t\t<label class=\"form-control-label\">Entries Per Page</label>\n\t\t<select class=\"form-control\" [(ngModel)]=\"entries_per_page\" (change)=\"getLogData()\">\n\t\t\t<option value=\"10\">10</option>\n\t\t\t<option value=\"25\">25</option>\n\t\t\t<option value=\"50\">50</option>\n\t\t\t<option value=\"100\">100</option>\n\t\t\t<option value=\"250\">250</option>\n\t\t\t<option value=\"500\">500</option>\n\t\t\t<option value=\"1000\">1000</option>\n\t\t\t<option value=\"5000\">5000</option>\n\t\t</select>\n\t</div>\n\t<div class=\"col-lg-4\">\n\t\t<ngb-pagination class=\"float-right\"\n\t\tboundaryLinks=\"true\"\n\t\t[collectionSize]=\"log_cnt\"\n\t\tdirectionLinks=\"true\"\n\t\tellipses=\"false\"\n\t\t[(page)]=\"page_num\"\n\t\tmaxSize=\"6\"\n\t\t[pageSize]=\"entries_per_page\"\n\t\trotate=\"true\"\n\t\t(pageChange)=\"getLogData()\"\n\t\t>\n\t\t</ngb-pagination>\n\t</div>\n</div>\n<div class=\"row\" style=\"margin-top: 10px\">\n\t<ngb-accordion #acc=\"ngbAccordion\" activeIds=\"\">\n\t\t<ngb-panel *ngFor=\"let log of logs; let i = index\" [id]=\"'log_' + i\">\n\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t<div> \n\t\t\t\t\t<label class=\"label-accordion\" style=\"width: 90%; height: 22px\">\n\t\t\t\t\t\t<strong class=\"pull-left\">Type: {{ log.type }}{{log.method ? ' - Method: ' + log.method : '' }}{{log.collection ? ' - Collection: ' + log.collection : '' }}{{log.user ? ' - User: ' + log.user : '' }}{{log.route ? ' - Route: ' + log.route : '' }}{{log.id_document ? ' - id_document: ' + log.id_document : '' }}{{log.messageId ? ' - messageId: ' + log.messageId : '' }}</strong>\n\t\t\t\t\t\t<p class=\"pull-right\">{{ log.createdAt | date : 'medium' }}</p>\n\t\t\t\t\t</label>\n\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('log_' + i)\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('log_' + i)\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t<div *ngIf=\"log.payload\">\n\t\t\t\t\t<pre>{{ log.payload | jsonParse }}</pre>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf=\"!log.payload\">\n\t\t\t\t\tNo Data\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t</ngb-panel>\n\t</ngb-accordion>\n</div>\n<div class=\"row\" style=\"margin-top: 10px\">\n\t<div class=\"col-lg-4\">\n\t\t<div class=\"row\"> \n\t\t\t<div class=\"col-lg-8\">\n\t\t\t\t<label class=\"form-control-label\">Entries Per Page</label>\n\t\t\t\t<select class=\"form-control\" [(ngModel)]=\"entries_per_page\" (change)=\"getLogData()\">\n\t\t\t\t\t<option value=\"10\">10</option>\n\t\t\t\t\t<option value=\"25\">25</option>\n\t\t\t\t\t<option value=\"50\">50</option>\n\t\t\t\t\t<option value=\"100\">100</option>\n\t\t\t\t\t<option value=\"250\">250</option>\n\t\t\t\t\t<option value=\"500\">500</option>\n\t\t\t\t\t<option value=\"1000\">1000</option>\n\t\t\t\t\t<option value=\"5000\">5000</option>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"col-lg-8\">\n\t\t<ngb-pagination class=\"float-right\"\n\t\tboundaryLinks=\"true\"\n\t\t[collectionSize]=\"log_cnt\"\n\t\tdirectionLinks=\"true\"\n\t\tellipses=\"false\"\n\t\t[(page)]=\"page_num\"\n\t\tmaxSize=\"6\"\n\t\t[pageSize]=\"entries_per_page\"\n\t\trotate=\"true\"\n\t\t(pageChange)=\"getLogData()\"\n\t\t>\n\t\t</ngb-pagination>\n\t</div>\n</div>" }]
228
+ }], ctorParameters: function () { return [{ type: i1.ProviderService }, { type: i2.DialogService }, { type: i0.ChangeDetectorRef }]; } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9sb2dnZXIvbG9nZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9sb2dnZXIvbG9nZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7OztBQVFqRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBMEI3QjtJQUFvQztJQUE0QjtJQXhCcEYsYUFBYSxHQUFtQixFQUFFLENBQUM7SUFDbkMsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUVqQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDdEIsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFFWixJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ1osS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVYLGFBQWEsQ0FBQztJQUNkLFdBQVcsQ0FBQztJQUNaLGFBQWEsQ0FBQztJQUNkLFdBQVcsQ0FBQztJQUNaLFNBQVMsQ0FBTztJQUNoQixPQUFPLENBQU87SUFFZCxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRW5CLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBRWpCLFlBQW9CLFNBQTBCLEVB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NEZBQWYsZUFBZSx1Q0FMaEIsQ0FBQyxlQUFlLENBQUMsaURDUDdCLHFqU0FxTU07OzRGRHpMTyxlQUFlO2tCQU4zQixTQUFTO2dDQUNFLENBQUMsZUFBZSxDQUFDLG1CQUVYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHR0ZW1wbGF0ZVVybDogJy4vbG9nZ2VyLmNvbXBvbmVudC5odG1sJyxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBMb2dnZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kgeyBcblxuXHRzdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXHRsb2dzOiBhbnlbXSA9IFtdO1xuXG5cdGVudHJpZXNfcGVyX3BhZ2UgPSAyNTtcblx0cGFnZV9udW0gPSAxO1xuXHRsb2dfY250ID0gMDtcblxuXHR1c2VyID0gbnVsbDtcblx0dXNlcnMgPSBbXTtcblxuXHRkYXRlU3RhcnRFbGVtO1xuXHRkYXRlRW5kRWxlbTtcblx0dGltZVN0YXJ0RWxlbTtcblx0dGltZUVuZEVsZW07XG5cdGRhdGVTdGFydDogRGF0ZTtcblx0ZGF0ZUVuZDogRGF0ZTtcblxuXHRzZWxlY3RlZFR5cGVzID0gW107XG5cblx0Y29sbGVjdGlvbiA9ICcnO1xuXHRtZXRob2QgPSAnJztcblx0cm91dGUgPSAnJztcblx0aWRfZG9jdW1lbnQgPSAnJztcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdGlmICghdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLnJvbGVzLnN1cGVyX2FkbWluKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5zdWJzY3JpcHRpb24kLnB1c2godGhpcy5fc2VydmljZXMuX3NvY2tldC5zdWJzY3JpYmUoJ2FsbFVzZXJzJykuc3Vic2NyaWJlKHVzZXJzID0+IHtcblx0XHRcdHRoaXMudXNlcnMgPSB1c2VycztcblxuXHRcdFx0dGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH0pKTtcblxuXHRcdGxldCBqc0RhdGVTdGFydCA9IG5ldyBEYXRlKCk7XG5cdFx0anNEYXRlU3RhcnQuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cdFx0bGV0IGRhdGVfc3RhcnQgPSBuZXcgRGF0ZShtb21lbnQoanNEYXRlU3RhcnQpLnN1YnRyYWN0KDEwLCAnZGF5cycpLnRvRGF0ZSgpKTtcblx0XHR0aGlzLmRhdGVTdGFydEVsZW0gPSB7eWVhcjogZGF0ZV9zdGFydC5nZXRGdWxsWWVhcigpLCBtb250aDogZGF0ZV9zdGFydC5nZXRNb250aCgpICsgMSwgZGF5OiBkYXRlX3N0YXJ0LmdldERhdGUoKX07XG5cdFx0dGhpcy50aW1lU3RhcnRFbGVtID0ge2hvdXI6IDAsIG1pbnV0ZTogMCwgc2Vjb25kOiAwfTtcblxuXHRcdGxldCBqc0RhdGVFbmQgPSBuZXcgRGF0ZSgpO1xuXHRcdGpzRGF0ZUVuZC5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuXHRcdGxldCBkYXRlX2VuZCA9IGpzRGF0ZUVuZDtcblx0XHR0aGlzLmRhdGVFbmRFbGVtID0ge3llYXI6IGRhdGVfZW5kLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBkYXRlX2VuZC5nZXRNb250aCgpICsgMSwgZGF5OiBkYXRlX2VuZC5nZXREYXRlKCl9O1xuXHRcdHRoaXMudGltZUVuZEVsZW0gPSB7aG91cjogMjMsIG1pbnV0ZTogNTksIHNlY29uZDogNTl9O1xuXG5cdFx0dGhpcy5nZXRMb2dEYXRhKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbiQuZm9yRWFjaChzdWIgPT4ge1xuXHRcdFx0c3ViLnVuc3Vic2NyaWJlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRnZXRMb2dEYXRhKCkge1xuXHRcdHRoaXMuZGF0ZVN0YXJ0ID0gbmV3IERhdGUodGhpcy5kYXRlU3RhcnRFbGVtLnllYXIsIHRoaXMuZGF0ZVN0YXJ0RWxlbS5tb250aCAtIDEsIHRoaXMuZGF0ZVN0YXJ0RWxlbS5kYXksIHRoaXMudGltZVN0YXJ0RWxlbS5ob3VyLCB0aGlzLnRpbWVTdGFydEVsZW0ubWludXRlLCB0aGlzLnRpbWVTdGFydEVsZW0uc2Vjb25kLCAwKTtcblx0XHR0aGlzLmRhdGVFbmQgPSBuZXcgRGF0ZSh0aGlzLmRhdGVFbmRFbGVtLnllYXIsIHRoaXMuZGF0ZUVuZEVsZW0ubW9udGggLSAxLCB0aGlzLmRhdGVFbmRFbGVtLmRheSwgdGhpcy50aW1lRW5kRWxlbS5ob3VyLCB0aGlzLnRpbWVFbmRFbGVtLm1pbnV0ZSwgdGhpcy50aW1lRW5kRWxlbS5zZWNvbmQsIDk5OSk7XG5cblx0XHRsZXQgcXVlcnk6IGFueSA9IHtcblx0XHRcdCRhbmQ6IFtcblx0XHRcdFx0e2NyZWF0ZWRBdDogeyRndGU6IHRoaXMuZGF0ZVN0YXJ0fX0sXG5cdFx0XHRcdHtjcmVhdGVkQXQ6IHskbHRlOiB0aGlzLmRhdGVFbmR9fVxuXHRcdFx0XVxuXHRcdH07XG5cblx0XHRpZiAoIXRoaXMuc2VsZWN0ZWRUeXBlcy5sZW5ndGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRxdWVyeS4kYW5kLnB1c2goe3R5cGU6IHskaW46IHRoaXMuc2VsZWN0ZWRUeXBlc319KTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5jb2xsZWN0aW9uKSB7XG5cdFx0XHRpZiAodGhpcy5jb2xsZWN0aW9uLmluY2x1ZGVzKCcsJykpIHtcblx0XHRcdFx0bGV0IGNvbGxlY3Rpb25zID0gdGhpcy5jb2xsZWN0aW9uLnNwbGl0KCcsJykubWFwKGEgPT4gYS50cmltKCkpLmZpbHRlcihhID0+ICFhLnN0YXJ0c1dpdGgoJyEnKSk7XG5cdFx0XHRcdGlmIChjb2xsZWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRxdWVyeS4kYW5kLnB1c2goe2NvbGxlY3Rpb246IHskaW46IGNvbGxlY3Rpb25zfX0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bGV0IG5vdENvbGxlY3Rpb25zID0gdGhpcy5jb2xsZWN0aW9uLnNwbGl0KCcsJykubWFwKGEgPT4gYS50cmltKCkpLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aCgnIScpKTtcblx0XHRcdFx0bm90Q29sbGVjdGlvbnMuZm9yRWFjaChub3QgPT4ge1xuXHRcdFx0XHRcdHF1ZXJ5LiRhbmQucHVzaCh7Y29sbGVjdGlvbjogeyRuZTogbm90LnJlcGxhY2UoJyEnLCAnJyl9fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmICh0aGlzLmNvbGxlY3Rpb24uc3RhcnRzV2l0aCgnIScpKSB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHtjb2xsZWN0aW9uOiB7JG5lOiB0aGlzLmNvbGxlY3Rpb24ucmVwbGFjZSgnIScsICcnKS50cmltKCl9fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHtjb2xsZWN0aW9uOiB0aGlzLmNvbGxlY3Rpb24udHJpbSgpfSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5tZXRob2QpIHtcblx0XHRcdGlmICh0aGlzLm1ldGhvZC5pbmNsdWRlcygnLCcpKSB7XG5cdFx0XHRcdGxldCBtZXRob2RzID0gdGhpcy5tZXRob2Quc3BsaXQoJywnKS5tYXAoYSA9PiBhLnRyaW0oKSkuZmlsdGVyKGEgPT4gIWEuc3RhcnRzV2l0aCgnIScpKTtcblx0XHRcdFx0aWYgKG1ldGhvZHMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHttZXRob2Q6IHskaW46IG1ldGhvZHN9fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRsZXQgbm90TWV0aG9kcyA9IHRoaXMubWV0aG9kLnNwbGl0KCcsJykubWFwKGEgPT4gYS50cmltKCkpLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aCgnIScpKTtcblx0XHRcdFx0bm90TWV0aG9kcy5mb3JFYWNoKG5vdCA9PiB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHttZXRob2Q6IHskbmU6IG5vdC5yZXBsYWNlKCchJywgJycpfX0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5tZXRob2Quc3RhcnRzV2l0aCgnIScpKSB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHttZXRob2Q6IHskbmU6IHRoaXMubWV0aG9kLnJlcGxhY2UoJyEnLCAnJykudHJpbSgpfX0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHF1ZXJ5LiRhbmQucHVzaCh7bWV0aG9kOiB0aGlzLm1ldGhvZC50cmltKCl9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnJvdXRlKSB7XG5cdFx0XHRpZiAodGhpcy5yb3V0ZS5pbmNsdWRlcygnLCcpKSB7XG5cdFx0XHRcdGxldCByb3V0ZXMgPSB0aGlzLnJvdXRlLnNwbGl0KCcsJykubWFwKGEgPT4gYS50cmltKCkpLmZpbHRlcihhID0+ICFhLnN0YXJ0c1dpdGgoJyEnKSk7XG5cdFx0XHRcdGlmIChyb3V0ZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHtyb3V0ZTogeyRpbjogcm91dGVzfX0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bGV0IG5vdFJvdXRlcyA9IHRoaXMucm91dGUuc3BsaXQoJywnKS5tYXAoYSA9PiBhLnRyaW0oKSkuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKCchJykpO1xuXHRcdFx0XHRub3RSb3V0ZXMuZm9yRWFjaChub3QgPT4ge1xuXHRcdFx0XHRcdHF1ZXJ5LiRhbmQucHVzaCh7cm91dGU6IHskbmU6IG5vdC5yZXBsYWNlKCchJywgJycpfX0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5yb3V0ZS5zdGFydHNXaXRoKCchJykpIHtcblx0XHRcdFx0XHRxdWVyeS4kYW5kLnB1c2goe3JvdXRlOiB7JG5lOiB0aGlzLnJvdXRlLnJlcGxhY2UoJyEnLCAnJykudHJpbSgpfX0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHF1ZXJ5LiRhbmQucHVzaCh7cm91dGU6IHRoaXMucm91dGUudHJpbSgpfSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0aWYgKHRoaXMuaWRfZG9jdW1lbnQpIHtcblx0XHRcdGlmICh0aGlzLmlkX2RvY3VtZW50LmluY2x1ZGVzKCcsJykpIHtcblx0XHRcdFx0bGV0IGlkX2RvY3VtZW50cyA9IHRoaXMuaWRfZG9jdW1lbnQuc3BsaXQoJywnKS5tYXAoYSA9PiBhLnRyaW0oKSkuZmlsdGVyKGEgPT4gIWEuc3RhcnRzV2l0aCgnIScpKTtcblx0XHRcdFx0aWYgKGlkX2RvY3VtZW50cy5sZW5ndGgpIHtcblx0XHRcdFx0XHRxdWVyeS4kYW5kLnB1c2goe2lkX2RvY3VtZW50OiB7JGluOiBpZF9kb2N1bWVudHN9fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRsZXQgbm90SWRzID0gdGhpcy5pZF9kb2N1bWVudC5zcGxpdCgnLCcpLm1hcChhID0+IGEudHJpbSgpKS5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgoJyEnKSk7XG5cdFx0XHRcdG5vdElkcy5mb3JFYWNoKG5vdCA9PiB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHtpZF9kb2N1bWVudDogeyRuZTogbm90LnJlcGxhY2UoJyEnLCAnJyl9fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmICh0aGlzLmlkX2RvY3VtZW50LnN0YXJ0c1dpdGgoJyEnKSkge1xuXHRcdFx0XHRcdHF1ZXJ5LiRhbmQucHVzaCh7aWRfZG9jdW1lbnQ6IHskbmU6IHRoaXMuaWRfZG9jdW1lbnQucmVwbGFjZSgnIScsICcnKS50cmltKCl9fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0cXVlcnkuJGFuZC5wdXNoKHtpZF9kb2N1bWVudDogdGhpcy5pZF9kb2N1bWVudC50cmltKCl9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnVzZXIpIHtcblx0XHRcdHF1ZXJ5LiRhbmQucHVzaCh7dXNlcjogdGhpcy51c2VyfSk7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZih0aGlzLmVudHJpZXNfcGVyX3BhZ2UpID09PSAnc3RyaW5nJykge1xuXHRcdFx0dGhpcy5lbnRyaWVzX3Blcl9wYWdlID0gcGFyc2VJbnQodGhpcy5lbnRyaWVzX3Blcl9wYWdlKTtcblx0XHR9XG5cdFx0XG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdmaW5kV2l0aE9wdGlvbnMnLCAnbG9ncycsIHF1ZXJ5LCB7c29ydDoge2NyZWF0ZWRBdDogLTF9LCBsaW1pdDogdGhpcy5lbnRyaWVzX3Blcl9wYWdlLCBza2lwOiB0aGlzLmVudHJpZXNfcGVyX3BhZ2UgKiAodGhpcy5wYWdlX251bSAtIDEpfSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHR0aGlzLmxvZ3MgPSByZXM7XG5cblx0XHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnY291bnRDb2xsZWN0aW9uV2l0aFF1ZXJ5JywgJ2xvZ3MnLCBxdWVyeSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHR0aGlzLmxvZ19jbnQgPSByZXM7XG5cblx0XHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0fVxuXG5cdHNlbGVjdFR5cGUodHlwZTogc3RyaW5nKSB7XG5cdFx0aWYgKHR5cGUgIT09ICdhbGwnKSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUeXBlcy5zcGxpY2UodGhpcy5zZWxlY3RlZFR5cGVzLmluZGV4T2YodHlwZSksIDEpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUeXBlcy5wdXNoKHR5cGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkVHlwZXMubGVuZ3RoID09PSA3KSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUeXBlcyA9IFtdO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUeXBlcyA9IFsnZXJyb3InLCAnZG9jdW1lbnQnLCAncXVlcnknLCAncXVlcnlSZXNwb25zZScsICdjbGllbnQtcmVxdWVzdCcsICdjbGllbnQtcmVzcG9uc2UnLCAnY2FsbE1ldGhvZEludGVybmFsJ107XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5sb2dzID0gW107XG5cblx0XHRpZiAodGhpcy5zZWxlY3RlZFR5cGVzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5nZXRMb2dEYXRhKCk7XG5cdFx0fVxuXHR9XG5cblx0aWNvbih0eXBlKSB7XG5cdFx0aWYgKHR5cGUgPT09ICdlcnJvcicpIHtcblx0XHRcdHJldHVybiAnZGFuZ2VyJztcblx0XHR9XG5cdFx0ZWxzZSBpZiAodHlwZSA9PT0gJ2RvY3VtZW50Jykge1xuXHRcdFx0cmV0dXJuICdpbmZvJztcblx0XHR9XG5cdFx0ZWxzZSBpZiAodHlwZSA9PT0gJ2NsaWVudC1yZXNwb25zZScpIHtcblx0XHRcdHJldHVybiAnc3VjY2Vzcyc7XG5cdFx0fVxuXHRcdGVsc2UgaWYgKHR5cGUgPT09ICdjbGllbnQtcmVxdWVzdCcpIHtcblx0XHRcdHJldHVybiAncHJpbWFyeSc7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0cmV0dXJuICdzZWNvbmRhcnknO1xuXHRcdH1cblx0fVxuXG5cdHJlbW92ZUFsbExvZ3MoKSB7XG5cdFx0dGhpcy5fZHMuY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgbG9ncz8nKS50aGVuKCgpID0+IHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgncmVtb3ZlQWxsRG9jdW1lbnRzJywgJ2xvZ3MnKTtcblx0XHR9LCAoKSA9PiB7IH0pO1xuXHR9XG59XG4iLCI8c3R5bGU+XG5cdC5sYWJlbC1hY2NvcmRpb24ge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGNvbG9yOiBibGFjaztcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cblx0bmdiLWFjY29yZGlvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblx0LmhvdmVyVGhpczpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogbGlnaHRibHVlO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuXHRcblx0LmZhLXBsdXMge1xuXHRcdGNvbG9yOiBibGFjaztcblx0fVxuXHQuZmEtbWludXMge1xuXHRcdGNvbG9yOiBibGFjaztcblx0fVxuXHRcblx0LnNlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XG5cdH1cblx0LnNlbGVjdGVkOmhvdmVyIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblx0LmNhcmQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwicm93XCI+XG5cdDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+PGI+RmlsdGVyczwvYj48L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cblx0XHRcdFx0XHRcdDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cCBjb2xsYXBzZVNpemU9XCI5MDBcIj5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiWydidG4nLCBzZWxlY3RlZFR5cGVzLmluY2x1ZGVzKCdlcnJvcicpICYmIHNlbGVjdGVkVHlwZXMuaW5jbHVkZXMoJ2RvY3VtZW50JykgJiYgc2VsZWN0ZWRUeXBlcy5pbmNsdWRlcygncXVlcnknKSAmJiBzZWxlY3RlZFR5cGVzLmluY2x1ZGVzKCdjbGllbnQtcmVxdWVzdCcpICYmIHNlbGVjdGVkVHlwZXMuaW5jbHVkZXMoJ2NsaWVudC1yZXNwb25zZScpID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgKGNsaWNrKT1cInNlbGVjdFR5cGUoJ2FsbCcpXCI+QWxsPC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIlsnYnRuJywgc2VsZWN0ZWRUeXBlcy5pbmNsdWRlcygnZXJyb3InKSA/ICdidG4tc3VjY2VzcycgOiAnYnRuLXdhcm5pbmcnXVwiIChjbGljayk9XCJzZWxlY3RUeXBlKCdlcnJvcicpXCI+RXJyb3JzPC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIlsnYnRuJywgc2VsZWN0ZWRUeXBlcy5pbmNsdWRlcygnZG9jdW1lbnQnKSA/ICdidG4tc3VjY2VzcycgOiAnYnRuLXdhcm5pbmcnXVwiIChjbGljayk9XCJzZWxlY3RUeXBlKCdkb2N1bWVudCcpXCI+RG9jdW1lbnQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiWydidG4nLCBzZWxlY3RlZFR5cGVzLmluY2x1ZGVzKCdxdWVyeScpID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgKGNsaWNrKT1cInNlbGVjdFR5cGUoJ3F1ZXJ5JylcIj5RdWVyeTwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIHNlbGVjdGVkVHlwZXMuaW5jbHVkZXMoJ3F1ZXJ5UmVzcG9uc2UnKSA/ICdidG4tc3VjY2VzcycgOiAnYnRuLXdhcm5pbmcnXVwiIChjbGljayk9XCJzZWxlY3RUeXBlKCdxdWVyeVJlc3BvbnNlJylcIj5RdWVyeSBSZXNwb25zZTwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIHNlbGVjdGVkVHlwZXMuaW5jbHVkZXMoJ2NsaWVudC1yZXF1ZXN0JykgPyAnYnRuLXN1Y2Nlc3MnIDogJ2J0bi13YXJuaW5nJ11cIiAoY2xpY2spPVwic2VsZWN0VHlwZSgnY2xpZW50LXJlcXVlc3QnKVwiPkNsaWVudCBSZXF1ZXN0czwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIHNlbGVjdGVkVHlwZXMuaW5jbHVkZXMoJ2NsaWVudC1yZXNwb25zZScpID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgKGNsaWNrKT1cInNlbGVjdFR5cGUoJ2NsaWVudC1yZXNwb25zZScpXCI+Q2xpZW50IFJlc3BvbnNlczwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIHNlbGVjdGVkVHlwZXMuaW5jbHVkZXMoJ2NhbGxNZXRob2RJbnRlcm5hbCcpID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgKGNsaWNrKT1cInNlbGVjdFR5cGUoJ2NhbGxNZXRob2RJbnRlcm5hbCcpXCI+Q2FsbCBNZXRob2QgSW50ZXJuYWw8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJyZW1vdmVBbGxMb2dzKClcIj5SRU1PVkUgQUxMIExPR1M8L2J1dHRvbj5cblx0XHRcdFx0XHRcdDwvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXA+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4O1wiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxuXHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+VXNlcjwvbGFiZWw+XG5cdFx0XHRcdFx0XHQ8bmctc2VsZWN0IFsobmdNb2RlbCldPVwidXNlclwiIChjaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVXNlclwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctb3B0aW9uICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJzXCIgW3ZhbHVlXT1cInVzZXIuZnVsbG5hbWVcIj57e3VzZXIuZnVsbG5hbWV9fTwvbmctb3B0aW9uPlxuXHRcdFx0XHRcdFx0PC9uZy1zZWxlY3Q+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XG5cdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5Db2xsZWN0aW9uPC9sYWJlbD5cblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiY29sbGVjdGlvblwiIChjaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCIgcGxhY2Vob2xkZXI9XCJJbnB1dCBDb2xscyBTZXAgQnkgLCAmICEgZm9yICFOb3RcIj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cblx0XHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPk1ldGhvZDwvbGFiZWw+XG5cdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cIm1ldGhvZFwiIChjaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCIgcGxhY2Vob2xkZXI9XCJJbnB1dCBNZXRob2RzIFNlcCBCeSAsICYgISBmb3IgIU5vdFwiPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxuXHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+Um91dGU8L2xhYmVsPlxuXHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJyb3V0ZVwiIChjaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCIgcGxhY2Vob2xkZXI9XCJJbnB1dCBSb3V0ZXMgU2VwIEJ5ICwgJiAhIGZvciAhTm90XCI+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XG5cdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5Eb2N1bWVudDwvbGFiZWw+XG5cdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImlkX2RvY3VtZW50XCIgKGNoYW5nZSk9XCJnZXRMb2dEYXRhKClcIiBwbGFjZWhvbGRlcj1cIklucHV0IElkcyBTZXAgQnkgLCAmICEgZm9yICFOb3RcIj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy0zXCI+XG5cdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5EYXRlIFN0YXJ0PC9sYWJlbD5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImRhdGVTdGFydEVsZW1cIiBuZ2JEYXRlcGlja2VyICNkU3RhcnQ9XCJuZ2JEYXRlcGlja2VyXCIgKGNoYW5nZSk9XCJnZXRMb2dEYXRhKClcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiIChjbGljayk9XCJkU3RhcnQudG9nZ2xlKClcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cblx0XHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPlRpbWUgU3RhcnQ8L2xhYmVsPlxuXHRcdFx0XHRcdFx0PG5nYi10aW1lcGlja2VyIFsobmdNb2RlbCldPVwidGltZVN0YXJ0RWxlbVwiIG1lcmlkaWFuPVwiT05cIiBbc2Vjb25kc109XCJ0cnVlXCIgKGNoYW5nZSk9XCJnZXRMb2dEYXRhKClcIj48L25nYi10aW1lcGlja2VyPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPlxuXHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+RGF0ZSBFbmQ8L2xhYmVsPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG5cdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZGF0ZUVuZEVsZW1cIiBuZ2JEYXRlcGlja2VyICNkRW5kPVwibmdiRGF0ZXBpY2tlclwiIChjaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIiAoY2xpY2spPVwiZEVuZC50b2dnbGUoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImZhIGZhLWNhbGVuZGFyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPlxuXHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+VGltZSBFbmQ8L2xhYmVsPjxicj5cblx0XHRcdFx0XHRcdDxuZ2ItdGltZXBpY2tlciBbKG5nTW9kZWwpXT1cInRpbWVFbmRFbGVtXCIgbWVyaWRpYW49XCJPTlwiIFtzZWNvbmRzXT1cInRydWVcIiAoY2hhbmdlKT1cImdldExvZ0RhdGEoKVwiPjwvbmdiLXRpbWVwaWNrZXI+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG5cdDxkaXYgY2xhc3M9XCJjb2wtbGctOFwiPlxuXHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPkVudHJpZXMgUGVyIFBhZ2U8L2xhYmVsPlxuXHRcdDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImVudHJpZXNfcGVyX3BhZ2VcIiAoY2hhbmdlKT1cImdldExvZ0RhdGEoKVwiPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjEwXCI+MTA8L29wdGlvbj5cblx0XHRcdDxvcHRpb24gdmFsdWU9XCIyNVwiPjI1PC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPVwiNTBcIj41MDwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjEwMFwiPjEwMDwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjI1MFwiPjI1MDwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjUwMFwiPjUwMDwvb3B0aW9uPlxuXHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjEwMDBcIj4xMDAwPC9vcHRpb24+XG5cdFx0XHQ8b3B0aW9uIHZhbHVlPVwiNTAwMFwiPjUwMDA8L29wdGlvbj5cblx0XHQ8L3NlbGVjdD5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPlxuXHRcdDxuZ2ItcGFnaW5hdGlvbiBjbGFzcz1cImZsb2F0LXJpZ2h0XCJcblx0XHRib3VuZGFyeUxpbmtzPVwidHJ1ZVwiXG5cdFx0W2NvbGxlY3Rpb25TaXplXT1cImxvZ19jbnRcIlxuXHRcdGRpcmVjdGlvbkxpbmtzPVwidHJ1ZVwiXG5cdFx0ZWxsaXBzZXM9XCJmYWxzZVwiXG5cdFx0WyhwYWdlKV09XCJwYWdlX251bVwiXG5cdFx0bWF4U2l6ZT1cIjZcIlxuXHRcdFtwYWdlU2l6ZV09XCJlbnRyaWVzX3Blcl9wYWdlXCJcblx0XHRyb3RhdGU9XCJ0cnVlXCJcblx0XHQocGFnZUNoYW5nZSk9XCJnZXRMb2dEYXRhKClcIlxuXHRcdD5cblx0XHQ8L25nYi1wYWdpbmF0aW9uPlxuXHQ8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweFwiPlxuXHQ8bmdiLWFjY29yZGlvbiAjYWNjPVwibmdiQWNjb3JkaW9uXCIgYWN0aXZlSWRzPVwiXCI+XG5cdFx0PG5nYi1wYW5lbCAqbmdGb3I9XCJsZXQgbG9nIG9mIGxvZ3M7IGxldCBpID0gaW5kZXhcIiBbaWRdPVwiJ2xvZ18nICsgaVwiPlxuXHRcdFx0PG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGU+XG5cdFx0XHRcdDxkaXY+IFxuXHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cImxhYmVsLWFjY29yZGlvblwiIHN0eWxlPVwid2lkdGg6IDkwJTsgaGVpZ2h0OiAyMnB4XCI+XG5cdFx0XHRcdFx0XHQ8c3Ryb25nIGNsYXNzPVwicHVsbC1sZWZ0XCI+VHlwZToge3sgbG9nLnR5cGUgfX17e2xvZy5tZXRob2QgPyAnIC0gTWV0aG9kOiAnICsgbG9nLm1ldGhvZCA6ICcnIH19e3tsb2cuY29sbGVjdGlvbiA/ICcgLSBDb2xsZWN0aW9uOiAnICsgbG9nLmNvbGxlY3Rpb24gOiAnJyB9fXt7bG9nLnVzZXIgPyAnIC0gVXNlcjogJyArIGxvZy51c2VyIDogJycgfX17e2xvZy5yb3V0ZSA/ICcgLSBSb3V0ZTogJyArIGxvZy5yb3V0ZSA6ICcnIH19e3tsb2cuaWRfZG9jdW1lbnQgPyAnIC0gaWRfZG9jdW1lbnQ6ICcgKyBsb2cuaWRfZG9jdW1lbnQgOiAnJyB9fXt7bG9nLm1lc3NhZ2VJZCA/ICcgLSBtZXNzYWdlSWQ6ICcgKyBsb2cubWVzc2FnZUlkIDogJycgfX08L3N0cm9uZz5cblx0XHRcdFx0XHRcdDxwIGNsYXNzPVwicHVsbC1yaWdodFwiPnt7IGxvZy5jcmVhdGVkQXQgfCBkYXRlIDogJ21lZGl1bScgfX08L3A+XG5cdFx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0XHQ8aSAqbmdJZj1cIiFhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdsb2dfJyArIGkpXCIgY2xhc3M9XCJmYSBmYS1wbHVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHQ8aSAqbmdJZj1cImFjYy5hY3RpdmVJZHMuaW5jbHVkZXMoJ2xvZ18nICsgaSlcIiBjbGFzcz1cImZhIGZhLW1pbnVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cblx0XHRcdFx0PGRpdiAqbmdJZj1cImxvZy5wYXlsb2FkXCI+XG5cdFx0XHRcdFx0PHByZT57eyBsb2cucGF5bG9hZCB8IGpzb25QYXJzZSB9fTwvcHJlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiAqbmdJZj1cIiFsb2cucGF5bG9hZFwiPlxuXHRcdFx0XHRcdE5vIERhdGFcblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvbmdiLXBhbmVsPlxuXHQ8L25nYi1hY2NvcmRpb24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHhcIj5cblx0PGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPiBcblx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctOFwiPlxuXHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5FbnRyaWVzIFBlciBQYWdlPC9sYWJlbD5cblx0XHRcdFx0PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZW50cmllc19wZXJfcGFnZVwiIChjaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCI+XG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjEwXCI+MTA8L29wdGlvbj5cblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiMjVcIj4yNTwvb3B0aW9uPlxuXHRcdFx0XHRcdDxvcHRpb24gdmFsdWU9XCI1MFwiPjUwPC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjEwMFwiPjEwMDwvb3B0aW9uPlxuXHRcdFx0XHRcdDxvcHRpb24gdmFsdWU9XCIyNTBcIj4yNTA8L29wdGlvbj5cblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiNTAwXCI+NTAwPC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjEwMDBcIj4xMDAwPC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIjUwMDBcIj41MDAwPC9vcHRpb24+XG5cdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiY29sLWxnLThcIj5cblx0XHQ8bmdiLXBhZ2luYXRpb24gY2xhc3M9XCJmbG9hdC1yaWdodFwiXG5cdFx0Ym91bmRhcnlMaW5rcz1cInRydWVcIlxuXHRcdFtjb2xsZWN0aW9uU2l6ZV09XCJsb2dfY250XCJcblx0XHRkaXJlY3Rpb25MaW5rcz1cInRydWVcIlxuXHRcdGVsbGlwc2VzPVwiZmFsc2VcIlxuXHRcdFsocGFnZSldPVwicGFnZV9udW1cIlxuXHRcdG1heFNpemU9XCI2XCJcblx0XHRbcGFnZVNpemVdPVwiZW50cmllc19wZXJfcGFnZVwiXG5cdFx0cm90YXRlPVwidHJ1ZVwiXG5cdFx0KHBhZ2VDaGFuZ2UpPVwiZ2V0TG9nRGF0YSgpXCJcblx0XHQ+XG5cdFx0PC9uZ2ItcGFnaW5hdGlvbj5cblx0PC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXR1cy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvYXBwLXN0YXR1cy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkRvY3VtZW50IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRvY3VtZW50Lm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBTdGF0dXNNb2RlbCBleHRlbmRzIENvbGxlY3Rpb25Eb2N1bWVudCB7XG5cdG1lc3NhZ2U6IHN0cmluZztcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kb2N1bWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvY29sbGVjdGlvbi1kb2N1bWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uRG9jdW1lbnQge1xuXHRfaWQ/OiBhbnk7XG5cdF9fdj86IG51bWJlcjtcblx0Y3JlYXRlZEF0PzogRGF0ZTtcblx0dXBkYXRlZEF0PzogRGF0ZTtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1qb2IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL2Nyb24tam9iLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRG9jdW1lbnQgfSBmcm9tICcuL2NvbGxlY3Rpb24tZG9jdW1lbnQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyb25Kb2JNb2RlbCBleHRlbmRzIENvbGxlY3Rpb25Eb2N1bWVudCB7XG5cdG5hbWU6IHN0cmluZztcblx0cmVwZWF0OiBib29sZWFuO1xuXHR0aW1lX3RvX3J1bjogc3RyaW5nO1xuXHRtZXRob2RfcnVuOiBzdHJpbmc7XG5cdG1ldGhvZF9ydW5fZGF0YT86IE9iamVjdDtcblx0bWV0aG9kX2NvbXBsZXRlPzogc3RyaW5nO1xuXHRtZXRob2RfY29tcGxldGVfZGF0YT86IE9iamVjdDtcblx0cnVubmluZzogYm9vbGVhbjtcblx0dGltZXpvbmU/OiBzdHJpbmc7XG5cdG5leHRfcnVuPzogRGF0ZTtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL21vZGVscy9kaWFsb2cubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nSW5wdXRGaWVsZE1vZGVsIHtcblx0bGFiZWw6IHN0cmluZztcblx0Zm9ybTogc3RyaW5nO1xuXHRkYXRhOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55W107IFxuXHR2YWxpZGF0b3JzOiBhbnlbXTtcblx0dmFsaWRhdG9yRXJyb3JzPzogc3RyaW5nW107XG5cdHZhbGlkYXRvck1zZz86IHN0cmluZ1tdO1xuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHR0eXBlPzogRGlhbG9nSW5wdXRGaWVsZFR5cGVzO1xuXHRvcHRpb25zPzogRGlhbG9nSW5wdXRGaWVsZFNlbGVjdE9wdGlvbnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dJbnB1dEZpZWxkU2VsZWN0T3B0aW9ucyB7XG5cdHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG5cdHRleHQ6IHN0cmluZztcbn1cblxudHlwZSBEaWFsb2dJbnB1dEZpZWxkVHlwZXMgPSAndGV4dCcgfCAnbnVtYmVyJyB8ICdzZWxlY3QnIHwgJ25nLXNlbGVjdCcgfCAnc3RhdGUnIHwgJ2VtYWlsJyB8ICdwYXNzd29yZCcgfCAndGV4dGFyZWEnIHwgJ2Jvb2xlYW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ1NlbGVjdFdpdGhCdXR0b25zT3B0aW9uTW9kZWwge1xuXHR2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuXHR0ZXh0OiBzdHJpbmc7XG5cdHNlbGVjdGVkPzogYm9vbGVhbjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvZmlsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkRvY3VtZW50IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRvY3VtZW50Lm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uRG9jdW1lbnQge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHNpemU6IG51bWJlcjtcblx0a2V5OiBzdHJpbmc7XG5cdHR5cGU6IHN0cmluZztcblx0b3JkZXI6IG51bWJlcjtcblx0c3RhdHVzPzogc3RyaW5nO1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLW1ldGhvZC1sYXRlbmN5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL21vZGVscy9sb2ctbWV0aG9kLWxhdGVuY3kubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25Eb2N1bWVudCB9IGZyb20gJy4vY29sbGVjdGlvbi1kb2N1bWVudC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nTWV0aG9kTGF0ZW5jeU1vZGVsIGV4dGVuZHMgQ29sbGVjdGlvbkRvY3VtZW50IHtcblx0ZGF0ZV9zdGFydDogRGF0ZTtcblx0ZGF0ZV9lbmQ/OiBEYXRlO1xuXHRsYXRlbmN5X21zOiBudW1iZXI7XG5cdG1ldGhvZDogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1haW4tdGFiLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL21vZGVscy9uYXZiYXItbWFpbi10YWIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTmF2YmFyTWFpblRhYk1vZGVsIHtcbiAgICB0eXBlOiBOYXZiYXJNYWluVGFiVHlwZTtcbiAgICBsaW5rczogTmF2YmFyTWFpblRhYkxpbmtNb2RlbFtdO1xuXG4gICAgLy9Ecm9wIERvd25zXG4gICAgcm9sZXM/OiBzdHJpbmdbXTsgLy8gUm9sZXMgdG8gc2hvdyBtYWluIG5hdiBsYWJlbFxuICAgIGxhYmVsPzogc3RyaW5nOyAvL01haW4gTmF2IGxhYmVsXG5cbiAgICBsZWZ0PzogbnVtYmVyO1xuICAgIHRvdXJBbmNob3I/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTmF2YmFyTWFpblRhYlR5cGUgPSAnbGluaycgfCAnZHJvcGRvd24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hdmJhck1haW5UYWJMaW5rTW9kZWwge1xuICAgIHJvdXRlckxpbms6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHJvbGU6IHN0cmluZztcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgdHlwZSBTb3J0TW9uZ28gPSBzdHJpbmcgfCBFeGNsdWRlPFNvcnREaXJlY3Rpb24sIHtcbiAgICAkbWV0YTogc3RyaW5nO1xufT4gfCBzdHJpbmdbXSB8IHtcbiAgICBba2V5OiBzdHJpbmddOiBTb3J0RGlyZWN0aW9uO1xufSB8IE1hcDxzdHJpbmcsIFNvcnREaXJlY3Rpb24+IHwgW3N0cmluZywgU29ydERpcmVjdGlvbl1bXSB8IFtzdHJpbmcsIFNvcnREaXJlY3Rpb25dO1xuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBTb3J0RGlyZWN0aW9uID0gMSB8IC0xIHwgJ2FzYycgfCAnZGVzYycgfCAnYXNjZW5kaW5nJyB8ICdkZXNjZW5kaW5nJyB8IHtcbiAgICAkbWV0YTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uT3B0aW9ucyB7XG5cdGxpbWl0PzogbnVtYmVyO1xuXHRza2lwPzogbnVtYmVyO1xuXHRzb3J0PzogU29ydE1vbmdvO1xuXHRmaWVsZHM/OiB7XG5cdFx0W2tleTogc3RyaW5nXTogbnVtYmVyO1xuXHR9O1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvcGVybWlzc2lvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNb2R1bGVQZXJtaXNzaW9uTW9kZWwge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHZpZXdzOiBNb2R1bGVQZXJtaXNzaW9uVmlld01vZGVsW107XG5cdGFwcHJvdmFsPzogTW9kdWxlUGVybWlzc2lvbkFwcHJvdmFsTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlUGVybWlzc2lvblZpZXdNb2RlbCB7XG5cdGxpbms6IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0aGFzX3BhcmFtZXRlcj86IGJvb2xlYW47XG5cdGZha2Vfcm91dGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZVBlcm1pc3Npb25BcHByb3ZhbE1vZGVsIHtcblx0dHlwZTogc3RyaW5nO1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWRhdGEtbGFiZWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL3NlbGVjdC1kYXRhLWxhYmVsLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlbGVjdERhdGFMYWJlbE1vZGVsIHtcblx0ZGF0YTogc3RyaW5nO1xuXHRsYWJlbDogc3RyaW5nO1xuXHRzZWxlY3RlZDogYm9vbGVhbjtcblx0dHlwZTogc3RyaW5nO1xuXHRzdWJEYXRhOiBzdHJpbmc7XG5cdHN1YnR5cGU6IHN0cmluZztcblx0c3ViTGFiZWw6IHN0cmluZztcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL21vZGVscy9zdWJzY3JpcHRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25Nb2RlbCB7XG5cdFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvblB1Yk1vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvblB1Yk1vZGVsIHtcblx0Y2hlY2s/OiBhbnk7XG5cdFxuXHQvKiBcblx0XHROYW1lOiBwcmVGdW5jdGlvblxuXHRcdFR5cGU6IEZ1bmN0aW9uXG5cdFx0SW5wdXRzOiAwIG9yIG1vcmUgcHVibGljYXRpb24gcGFyYW1ldGVycyAoaWU6IGlkX2J1bGt0YW5rOiBzdHJpbmcpXG5cdFx0T3V0cHV0czogUHJvbWlzZTxPYmplY3Q+XG5cdFx0UmVhc29uOiBGb3IgYWdncmVnYXRlIHB1YnMgdG8gc3RheSBjdXJyZW50IChydW5zIGJlZm9yZSBmdW5jdGlvbikgdG8gZ2V0IGxhdGVzdCBzdWItZGF0YVxuXHRcdFJlcXVpcmVkOiBTaG91bGQgYmUgdXNlZCB3aXRoIGFnZ3JlZ2F0ZSBwdWJzXG5cdCovXG5cdHByZUZ1bmN0aW9uPzogKC4uLnBhcmFtZXRlcnM6IGFueVtdKSA9PiBQcm9taXNlPE9iamVjdD47XG5cblx0LyogXG5cdFx0TmFtZTogZnVuY3Rpb25cblx0XHRUeXBlOiBGdW5jdGlvblxuXHRcdElucHV0czogMCBvciBtb3JlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKGllOiBpZF9idWxrdGFuazogc3RyaW5nKVxuXHRcdE91dHB1dHM6IFByb21pc2U8YW55IHwgYW55W10+XG5cdFx0UmVhc29uOiBSdW5zIHB1YmxpY2F0aW9uIHF1ZXJ5IHRvIGdldCBkYXRhIHRvIHNlbmQgdG8gY2xpZW50XG5cdFx0UmVxdWlyZWQ6IEFsd2F5c1xuXHQqL1xuXHRmdW5jdGlvbjogKC4uLnBhcmFtZXRlcnM6IGFueVtdKSA9PiBQcm9taXNlPGFueSB8IGFueVtdPjtcblxuXHQvKiBcblx0XHROYW1lOiBjb2xsZWN0aW9uc1xuXHRcdFR5cGU6IEFycmF5XG5cdFx0SW5wdXRzOiBOL0Fcblx0XHRPdXRwdXRzOiBOL0Fcblx0XHRSZWFzb246IEFsbCBjb2xsZWN0aW9ucyB3aGljaCB3aWxsIGJlIHdhdGNoaW5nIG9wbG9nIHRvIHJlLXJ1biB0aGlzIHB1YlxuXHRcdFJlcXVpcmVkOiBBbHdheXNcblx0Ki9cblx0Y29sbGVjdGlvbnM6IHN0cmluZ1tdO1xuXG5cdC8qIFxuXHRcdE5hbWU6IGZldGNoRnVuY3Rpb25cblx0XHRUeXBlOiBGdW5jdGlvblxuXHRcdElucHV0czogRG9jdW1lbnQgdGhhdCBpcyBiZWluZyBtb2RpZmllZCAoYW55IGNvbGxlY3Rpb24gaW4gY29sbGVjdGlvbnMpLCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzIE9SIHByZUZ1bmN0aW9uIG9iamVjdFxuXHRcdE91dHB1dHM6IGJvb2xlYW5cblx0XHRSZWFzb246IFJ1bnMgdGhpcyBmdW5jdGlvbiB0byBzZWUgaWYgd2Ugc2hvdWxkIHJlLXJ1biBwdWJsaWNhdGlvbiBxdWVyeVxuXHRcdFJlcXVpcmVkOiBTaG91bGQgYmUgdXNlZCBpZiBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50XG5cdCovXG5cdGZldGNoRnVuY3Rpb24/OiAoZG9jdW1lbnQ6IE9iamVjdCwgLi4ucGFyYW1ldGVyczogYW55W10pID0+IGJvb2xlYW47XG5cblx0LyogXG5cdFx0TmFtZTogd3Nfc3BlY2lmaWNcblx0XHRUeXBlOiBCb29sZWFuXG5cdFx0SW5wdXRzOiBOL0Fcblx0XHRPdXRwdXRzOiBOL0Fcblx0XHRSZWFzb246IFVzZSBpZiB1c2VyIGlzIG5lZWRlZCAoaWUgJ3VzZXJzJyBwdWJsaWNhdGlvbiwgb25seSBzZW5kICdBZG1pbicgaWYgJ3N1cGVyLWFkbWluJyByb2xlKVxuXHRcdFJlcXVpcmVkOiBPbmx5IGlmIGZ1bmN0aW9uIGhhcyBwYXJhbWV0ZXIvc1xuXHRcdC0gTG93IHBlcmZvcm1hbmNlIGFzIGlmIHJ1bnMgcHViIGZvciBlYWNoIHVzZXIsIG9ubHkgdXNlIGlmIG5lZWRlZFxuXHQqL1xuXHR3c19zcGVjaWZpYz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlQ2xpZW50U3Vic2NyaXB0aW9uTW9kZWwge1xuXHRtZXNzYWdlSWQ6IG51bWJlcjtcblx0bWVzc2FnZVJvdXRlOiBzdHJpbmc7XG5cdHN1YnNjcmlwdGlvbjogc3RyaW5nO1xuXHRwYXJhbWV0ZXJzOiBhbnlbXTtcblx0c3ViamVjdDogU3ViamVjdDxhbnk+O1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbW9kZWxzL3N1cHBvcnQtdGlja2V0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRG9jdW1lbnQgfSBmcm9tICcuL2NvbGxlY3Rpb24tZG9jdW1lbnQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRUaWNrZXRNb2RlbCBleHRlbmRzIENvbGxlY3Rpb25Eb2N1bWVudCB7XG5cdHR5cGU6IFN1cHBvcnRUaWNrZXRUeXBlO1xuXHRwcmlvcml0eTogU3VwcG9ydFRpY2tldFByaW9yaXR5O1xuXHRpc3N1ZTogc3RyaW5nO1xuXHRzdXBwb3J0X3RpY2tldF9udW1iZXI6IG51bWJlcjtcblx0c3VwcG9ydF90aWNrZXRfbnVtYmVyX3N0cmluZzogc3RyaW5nO1xuXHRzdGF0dXM6IFN1cHBvcnRUaWNrZXRTdGF0dXM7XG5cdHN1YnN0YXR1czogU3VwcG9ydFRpY2tldFN1YnN0YXR1cztcblx0Y2xpZW50OiBzdHJpbmc7XG5cdGlkX2NsaWVudDogc3RyaW5nO1xuXHRtZXNzYWdlczogU3VwcG9ydFRpY2tldE1lc3NhZ2VNb2RlbFtdO1xuXHRkYXRlX2NyZWF0ZWQ6IERhdGU7XG5cdGRhdGVfY3JlYXRlZF9zdHJpbmc6IHN0cmluZztcblx0aWRfdXNlcl9jcmVhdGVkOiBzdHJpbmc7XG5cdHVzZXJfY3JlYXRlZDogc3RyaW5nO1xuXHRiaWxsYWJsZTogYm9vbGVhbjtcblx0ZGF0ZV9pbnZlc3RpZ2F0aW9uPzogRGF0ZTtcblx0ZGF0ZV9jbG9zZWQ/OiBEYXRlO1xuXHRmaWxlczogc3RyaW5nW107XG5cdGN1cnJlbnRfd2F0Y2hlcnM6IFN1cHBvcnRUaWNrZXRXYXRjaGVyc01vZGVsW107XG5cdGNsaWVudF91c2VyOiBTdXBwb3J0VGlja2V0Q2xpZW50VXNlck1vZGVsO1xuXHR1c2Vyc19hc3NpZ25lZDogU3VwcG9ydFRpY2tldFVzZXJBc3NpZ25lZE1vZGVsW107XG5cdGVzdGltYXRlZF9iaWxsYWJsZV9ob3Vycz86IG51bWJlcjtcblx0YmlsbGFibGVfaG91cnM/OiBudW1iZXI7XG5cdGJpbGxfZGVzY3JpcHRpb246IHN0cmluZztcblx0dGFza3M6IFN1cHBvcnRUaWNrZXRUYXNrTW9kZWxbXTtcblx0bm90ZXM6IFN1cHBvcnRUaWNrZXROb3RlTW9kZWxbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0VGlja2V0Q2xpZW50VXNlck1vZGVsIHtcblx0aWRfdXNlcjogc3RyaW5nO1xuXHR1c2VyOiBzdHJpbmc7XG5cdGVtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFN1cHBvcnRUaWNrZXRQcmlvcml0eSA9ICdIaWdoJyB8ICdMb3cnO1xuZXhwb3J0IHR5cGUgU3VwcG9ydFRpY2tldFR5cGUgPSAnU3lzdGVtIEltcGFpcm1lbnQnIHwgJ1JlcXVlc3QgTmV3IEZlYXR1cmUnIHwgJ0dlbmVyYWwgSW5xdWVyeScgfCAnTmV3IEJ1aWxkJztcblxuZXhwb3J0IHR5cGUgU3VwcG9ydFRpY2tldFN0YXR1cyA9ICdPcGVuZWQnIHwgJ1JldmlldycgfCAnQ2xvc2VkJztcblxuZXhwb3J0IHR5cGUgU3VwcG9ydFRpY2tldFN1YnN0YXR1cyA9ICdOZXcnIHwgJ1dvcmsgSW4gUHJvZ3Jlc3MnIHwgJ0lkbGUnIHwgJ0F3YWl0aW5nIEN1c3RvbWVyIEludGVyYWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0VGlja2V0TWVzc2FnZU1vZGVsIHtcblx0bWVzc2FnZTogc3RyaW5nO1xuXHRpZF91c2VyOiBzdHJpbmc7XG5cdHVzZXI6IHN0cmluZztcblx0ZGF0ZTogRGF0ZTtcblx0dHlwZTogU3VwcG9ydFRpY2tldE1lc3NhZ2VUeXBlO1xufVxuXG50eXBlIFN1cHBvcnRUaWNrZXRNZXNzYWdlVHlwZSA9ICdSZXNvbHZlSU8nIHwgJ0NsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydFRpY2tldFdhdGNoZXJzTW9kZWwge1xuXHR1c2VyOiBzdHJpbmc7XG5cdGlkX3VzZXI6IHN0cmluZztcblx0ZW1haWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0VGlja2V0VGFza01vZGVsIHtcblx0ZGVzY3JpcHRpb246IHN0cmluZztcblx0Y29tcGxldGVkOiBib29sZWFuO1xuXHRpZF91c2VyOiBzdHJpbmc7XG5cdHVzZXI6IHN0cmluZztcblx0ZGF0ZV9jcmVhdGVkOiBEYXRlO1xuXHRkYXRlX2NvbXBsZXRlZD86IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydFRpY2tldE5vdGVNb2RlbCB7XG5cdGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cdGlkX3VzZXI6IHN0cmluZztcblx0dXNlcjogc3RyaW5nO1xuXHRkYXRlX2NyZWF0ZWQ6IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydFRpY2tldFVzZXJBc3NpZ25lZE1vZGVsICB7XG5cdGlkX3VzZXI6IHN0cmluZztcblx0dXNlcjogc3RyaW5nO1xuXHRkYXRlX2NyZWF0ZWQ6IERhdGU7XG59ICJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvdXNlci1ncm91cC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkRvY3VtZW50IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRvY3VtZW50Lm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyR3JvdXBNb2RlbCBleHRlbmRzIENvbGxlY3Rpb25Eb2N1bWVudCB7XG5cdG5hbWU6IHN0cmluZztcblx0cGVybWlzc2lvbnM6IFVzZXJHcm91cFBlcm1pc3Npb25Nb2RlbFtdO1xuXHRub3RpZmljYXRpb25zOiBVc2VyR3JvdXBOb3RpZmljYXRpb25Nb2RlbFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJHcm91cE5vdGlmaWNhdGlvbk1vZGVsIHtcblx0bmFtZTogc3RyaW5nO1xuXHRzZWxlY3RlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyR3JvdXBQZXJtaXNzaW9uTW9kZWwge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHNlbGVjdGVkOiBib29sZWFuO1xuXHR2aWV3czogVXNlckdyb3VwVmlld01vZGVsW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckdyb3VwVmlld01vZGVsIHtcblx0bGluazogc3RyaW5nO1xuXHRzZWxlY3RlZDogYm9vbGVhbjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvdXNlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkRvY3VtZW50IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRvY3VtZW50Lm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uRG9jdW1lbnQge1xuXHRyb2xlczogVXNlclJvbGVNb2RlbDtcblx0dXNlcm5hbWU6IHN0cmluZztcblx0ZW1haWw6IHN0cmluZztcblx0ZnVsbG5hbWU6IHN0cmluZztcblx0YWN0aXZlOiBib29sZWFuO1xuXHRwaG9uZW51bWJlcjogc3RyaW5nO1xuXHRyZWFkb25seTogYm9vbGVhbjtcblx0b3RoZXI6IE90aGVyT2JqZWN0O1xuXG5cdC8vc2VjdXJpdHlcblx0YXR0ZW1wdHM6IG51bWJlcjtcblx0c2FsdDogc3RyaW5nO1xuXHRoYXNoOiBzdHJpbmc7XG5cblx0bGFzdD86IERhdGU7XG5cdHNldHRpbmdzPzogVXNlclNldHRpbmdzTW9kZWw7XG5cdHNlcnZpY2VzPzogT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTZXR0aW5nc01vZGVsIHtcblx0dGFibGVfY29sb3I6IHN0cmluZztcblx0dGFibGVfZm9udF9jb2xvcjogc3RyaW5nO1xuXHRzZWNvbmRhcnlfdGFibGVfY29sb3I6IHN0cmluZztcblx0c2Vjb25kYXJ5X3RhYmxlX2ZvbnRfY29sb3I6IHN0cmluZztcblx0dGVydGlhcnlfdGFibGVfY29sb3I6IHN0cmluZztcblx0dGVydGlhcnlfdGFibGVfZm9udF9jb2xvcjogc3RyaW5nO1xuXHRmb250X3NpemU6IG51bWJlcjtcblx0Y29sbGFwc2FibGVfbWVudTogYm9vbGVhbjtcblx0ZW50cmllc19wZXJfcGFnZTogc3RyaW5nXG5cdHdhcm5pbmdfY29sb3I6IHN0cmluZztcblx0d2FybmluZ19mb250X2NvbG9yOiBzdHJpbmc7XG5cdHdhcm5pbmdfaG92ZXJfY29sb3I6IHN0cmluZztcblx0c3VjY2Vzc19jb2xvcjogc3RyaW5nO1xuXHRzdWNjZXNzX2ZvbnRfY29sb3I6IHN0cmluZztcblx0c3VjY2Vzc19ob3Zlcl9jb2xvcjogc3RyaW5nO1xuXHRkYW5nZXJfY29sb3I6IHN0cmluZztcblx0ZGFuZ2VyX2ZvbnRfY29sb3I6IHN0cmluZztcblx0ZGFuZ2VyX2hvdmVyX2NvbG9yOiBzdHJpbmc7XG5cdGluZm9fY29sb3I6IHN0cmluZztcblx0aW5mb19mb250X2NvbG9yOiBzdHJpbmc7XG5cdGluZm9faG92ZXJfY29sb3I6IHN0cmluZztcblx0cHJpbWFyeV9jb2xvcjogc3RyaW5nO1xuXHRwcmltYXJ5X2ZvbnRfY29sb3I6IHN0cmluZztcblx0cHJpbWFyeV9ob3Zlcl9jb2xvcjogc3RyaW5nO1xuXHRzZWNvbmRhcnlfY29sb3I6IHN0cmluZztcblx0c2Vjb25kYXJ5X2ZvbnRfY29sb3I6IHN0cmluZztcblx0c2Vjb25kYXJ5X2hvdmVyX2NvbG9yOiBzdHJpbmc7XG5cdHJvdXRpbmdfcHJlZmVyZW5jZTogc3RyaW5nO1xuXHRvcGVuaW5nX3JvdXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVNb2RlbCB7XG5cdHN1cGVyX2FkbWluOiBib29sZWFuO1xuXHRhcHByb3ZhbHM6IFVzZXJSb2xlQXBwcm92YWxNb2RlbFtdO1xuXHRncm91cHM6IFVzZXJSb2xlR3JvdXBNb2RlbFtdO1xuXHRub3RpZmljYXRpb25zOiBzdHJpbmdbXTtcblx0bWlzY3M6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlQXBwcm92YWxNb2RlbCB7XG5cdHR5cGU6IHN0cmluZzsgLy8gcG8gb3IgYWZlIG9yIGNoZW1pY2FsXG5cdGtleV8xOiBzdHJpbmc7IC8vIGRlcGFydG1lbnQgb3IgYWNjb3VudGluZyBjb2RlXG5cdGtleV8yOiBzdHJpbmc7IC8vIG9yZGVyIHR5cGVcblx0a2V5XzM6IHN0cmluZzsgLy8gb3RoZXIvYWRkaXRpb25hbFxuXHRuYW1lOiBzdHJpbmc7IC8vIGFwcHJvdmFsIG5hbWVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUm9sZUdyb3VwTW9kZWwge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHZpZXdzOiBzdHJpbmdbXTtcblx0eWFyZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdGhlck9iamVjdCB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufSJdfQ==