@smarterplan/ngx-smarterplan-core 1.4.16 → 1.4.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2022/lib/components/csv-export/csv-export.component.mjs +3 -3
- package/esm2022/lib/components/loader/loader.component.mjs +3 -3
- package/esm2022/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
- package/esm2022/lib/components/menu-bar/menu-bar.component.mjs +3 -3
- package/esm2022/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
- package/esm2022/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/components/support-modal/support-modal.component.mjs +3 -3
- package/esm2022/lib/config.mjs +1 -1
- package/esm2022/lib/helpers.service.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
- package/esm2022/lib/matterport-extensions/security-camera/SecurityCamera.mjs +22 -22
- package/esm2022/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +22 -22
- package/esm2022/lib/mattertagData.mjs +10 -1
- package/esm2022/lib/ngx-smarterplan-core.module.mjs +1 -1
- package/esm2022/lib/ngx-smarterplan-core.service.mjs +1 -1
- package/esm2022/lib/pipes/duration-to-string.pipe.mjs +1 -1
- package/esm2022/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
- package/esm2022/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
- package/esm2022/lib/pipes/safe-url.pipe.mjs +1 -1
- package/esm2022/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
- package/esm2022/lib/pipes/username-from-id.pipe.mjs +1 -1
- package/esm2022/lib/services/amplify-cache.service.mjs +1 -1
- package/esm2022/lib/services/base-tab.service.mjs +1 -1
- package/esm2022/lib/services/baseVisibility.service.mjs +1 -1
- package/esm2022/lib/services/content.service.mjs +1 -1
- package/esm2022/lib/services/filter.service.mjs +11 -1
- package/esm2022/lib/services/intervention.service.mjs +1 -1
- package/esm2022/lib/services/locale.service.mjs +1 -1
- package/esm2022/lib/services/matterport-import.service.mjs +10 -3
- package/esm2022/lib/services/matterport-measurement.service.mjs +1 -1
- package/esm2022/lib/services/matterport-navigation.service.mjs +1 -1
- package/esm2022/lib/services/matterport-object3d.service.mjs +1 -1
- package/esm2022/lib/services/matterport-pointer.service.mjs +6 -6
- package/esm2022/lib/services/matterport-tag-copy.service.mjs +455 -9
- package/esm2022/lib/services/matterport-tag.service.mjs +99 -10
- package/esm2022/lib/services/matterport.service.mjs +95 -49
- package/esm2022/lib/services/models/affectation.service.mjs +1 -1
- package/esm2022/lib/services/models/base-object.service.mjs +31 -4
- package/esm2022/lib/services/models/capture.service.mjs +1 -1
- package/esm2022/lib/services/models/comment.service.mjs +1 -1
- package/esm2022/lib/services/models/domain.service.mjs +1 -1
- package/esm2022/lib/services/models/equipment.service.mjs +14 -13
- package/esm2022/lib/services/models/event.service.mjs +1 -1
- package/esm2022/lib/services/models/feature.service.mjs +8 -7
- package/esm2022/lib/services/models/hashtag.service.mjs +1 -1
- package/esm2022/lib/services/models/layer.service.mjs +1 -1
- package/esm2022/lib/services/models/measurement.service.mjs +1 -1
- package/esm2022/lib/services/models/mission.service.mjs +1 -1
- package/esm2022/lib/services/models/navigation.service.mjs +1 -1
- package/esm2022/lib/services/models/node.service.mjs +1 -1
- package/esm2022/lib/services/models/object3D.service.mjs +1 -1
- package/esm2022/lib/services/models/operation.service.mjs +1 -1
- package/esm2022/lib/services/models/organisation.service.mjs +1 -1
- package/esm2022/lib/services/models/plan.service.mjs +1 -1
- package/esm2022/lib/services/models/poi.service.mjs +62 -50
- package/esm2022/lib/services/models/profile.service.mjs +1 -1
- package/esm2022/lib/services/models/property.service.mjs +1 -1
- package/esm2022/lib/services/models/space.service.mjs +25 -2
- package/esm2022/lib/services/models/template.service.mjs +1 -1
- package/esm2022/lib/services/models/ticket.service.mjs +27 -8
- package/esm2022/lib/services/models/visit.service.mjs +1 -1
- package/esm2022/lib/services/models/zone.service.mjs +9 -5
- package/esm2022/lib/services/navigator.service.mjs +14 -1
- package/esm2022/lib/services/s3.service.mjs +1 -1
- package/esm2022/lib/services/search.service.mjs +1 -1
- package/esm2022/lib/services/support.service.mjs +1 -1
- package/esm2022/lib/services/tag.service.mjs +16 -16
- package/esm2022/lib/services/threejs-import.service.mjs +1 -1
- package/esm2022/lib/services/threejs.service.mjs +316 -35
- package/esm2022/lib/services/user.service.mjs +1 -1
- package/esm2022/lib/services/utils/matterport-transform.util.mjs +1 -1
- package/esm2022/lib/services/validators.service.mjs +1 -1
- package/esm2022/lib/services/viewer.service.mjs +147 -8
- package/esm2022/lib/services/zone-drawer.service.mjs +1 -1
- package/esm2022/lib/services/zoneChange.service.mjs +10 -1
- package/esm2022/lib/tokens/matterport-sdk-key.token.mjs +1 -1
- package/esm2022/lib/types.service.mjs +1 -1
- package/esm2022/lib/validators/email.directive.mjs +1 -1
- package/esm2022/lib/validators/no-empty.directive.mjs +1 -1
- package/esm2022/lib/validators/number.directive.mjs +1 -1
- package/esm2022/lib/validators/text.directive.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs +5150 -4022
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/mattertagData.d.ts +4 -0
- package/lib/services/matterport-tag-copy.service.d.ts +128 -2
- package/lib/services/matterport-tag.service.d.ts +24 -1
- package/lib/services/matterport.service.d.ts +12 -3
- package/lib/services/models/base-object.service.d.ts +11 -1
- package/lib/services/models/equipment.service.d.ts +2 -1
- package/lib/services/models/feature.service.d.ts +2 -1
- package/lib/services/models/poi.service.d.ts +1 -0
- package/lib/services/models/space.service.d.ts +7 -0
- package/lib/services/models/ticket.service.d.ts +4 -1
- package/lib/services/threejs.service.d.ts +103 -5
- package/lib/services/viewer.service.d.ts +39 -1
- package/lib/services/zoneChange.service.d.ts +9 -0
- package/lib/types.service.d.ts +8 -0
- package/package.json +1 -1
- package/src/assets/vs-app.json +67 -67
|
@@ -104,66 +104,78 @@ export class PoiService {
|
|
|
104
104
|
if (!sweeps || sweeps.length === 0) {
|
|
105
105
|
return [];
|
|
106
106
|
}
|
|
107
|
-
const queryStatement = `
|
|
108
|
-
query ListPOISLight($filter: ModelPOIFilterInput, $limit: Int, $nextToken: String) {
|
|
109
|
-
listPOIS(filter: $filter, limit: $limit, nextToken: $nextToken) {
|
|
110
|
-
items {
|
|
111
|
-
id
|
|
112
|
-
coordinate
|
|
113
|
-
specific
|
|
114
|
-
private
|
|
115
|
-
global
|
|
116
|
-
type
|
|
117
|
-
elementID
|
|
118
|
-
level
|
|
119
|
-
role
|
|
120
|
-
category
|
|
121
|
-
domainID
|
|
122
|
-
metadata
|
|
123
|
-
tagIcon
|
|
124
|
-
tagDescription
|
|
125
|
-
tagImageID
|
|
126
|
-
matterportSweepID
|
|
127
|
-
createdAt
|
|
128
|
-
updatedAt
|
|
129
|
-
}
|
|
130
|
-
nextToken
|
|
131
|
-
}
|
|
132
|
-
}
|
|
107
|
+
const queryStatement = `
|
|
108
|
+
query ListPOISLight($filter: ModelPOIFilterInput, $limit: Int, $nextToken: String) {
|
|
109
|
+
listPOIS(filter: $filter, limit: $limit, nextToken: $nextToken) {
|
|
110
|
+
items {
|
|
111
|
+
id
|
|
112
|
+
coordinate
|
|
113
|
+
specific
|
|
114
|
+
private
|
|
115
|
+
global
|
|
116
|
+
type
|
|
117
|
+
elementID
|
|
118
|
+
level
|
|
119
|
+
role
|
|
120
|
+
category
|
|
121
|
+
domainID
|
|
122
|
+
metadata
|
|
123
|
+
tagIcon
|
|
124
|
+
tagDescription
|
|
125
|
+
tagImageID
|
|
126
|
+
matterportSweepID
|
|
127
|
+
createdAt
|
|
128
|
+
updatedAt
|
|
129
|
+
}
|
|
130
|
+
nextToken
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
133
|
`;
|
|
134
134
|
const CHUNK_SIZE = 50; // safe margin for an "or" filter expression's practical size
|
|
135
135
|
const chunks = [];
|
|
136
136
|
for (let i = 0; i < sweeps.length; i += CHUNK_SIZE) {
|
|
137
137
|
chunks.push(sweeps.slice(i, i + CHUNK_SIZE));
|
|
138
138
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
139
|
+
// Each chunk is a full table Scan of its own: running them in parallel instead of one after
|
|
140
|
+
// the other divides the wait by the number of chunks (7.6 s -> ~1 s on a 456-sweep space).
|
|
141
|
+
// Results are flattened in chunk order, so the output is the same as the sequential version.
|
|
142
|
+
const results = await Promise.all(chunks.map(chunk => this.scanPoisForSweepChunk(queryStatement, chunk)));
|
|
143
|
+
return results.flat();
|
|
144
|
+
}
|
|
145
|
+
async scanPoisForSweepChunk(queryStatement, chunk) {
|
|
146
|
+
const pois = [];
|
|
147
|
+
let nextToken = null;
|
|
148
|
+
do {
|
|
149
|
+
const variables = {
|
|
150
|
+
filter: {
|
|
151
|
+
or: chunk.map((sweep) => ({ matterportSweepID: { eq: sweep } }))
|
|
152
|
+
},
|
|
153
|
+
limit: 1000,
|
|
154
|
+
nextToken
|
|
155
|
+
};
|
|
156
|
+
// A failed page is retried once: giving up at once silently dropped the rest of the
|
|
157
|
+
// chunk (up to 50 sweeps worth of POIs) from the copy or recalibration lists.
|
|
158
|
+
let resData = null;
|
|
159
|
+
for (let attempt = 1; attempt <= 2 && !resData; attempt++) {
|
|
150
160
|
try {
|
|
151
161
|
const response = (await API.graphql(graphqlOperation(queryStatement, variables)));
|
|
152
|
-
|
|
153
|
-
if (resData && resData.items.length > 0) {
|
|
154
|
-
allPois = [...allPois, ...resData.items];
|
|
155
|
-
}
|
|
156
|
-
nextToken = resData?.nextToken ?? null;
|
|
162
|
+
resData = response.data.listPOIS ?? { items: [], nextToken: null };
|
|
157
163
|
}
|
|
158
164
|
catch (error) {
|
|
159
|
-
//
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
165
|
+
// Amplify rejects when one item errors but still hands over the readable ones
|
|
166
|
+
if (error?.data?.listPOIS) {
|
|
167
|
+
resData = error.data.listPOIS;
|
|
168
|
+
}
|
|
169
|
+
else if (attempt === 2) {
|
|
170
|
+
// the rest of the process continues with whatever was already collected
|
|
171
|
+
console.error(`Error while fetching POIs for a sweep chunk:`, error);
|
|
172
|
+
}
|
|
163
173
|
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
|
|
174
|
+
}
|
|
175
|
+
pois.push(...(resData?.items || []).filter((poi) => !!poi));
|
|
176
|
+
nextToken = resData?.nextToken ?? null;
|
|
177
|
+
} while (nextToken);
|
|
178
|
+
return pois;
|
|
167
179
|
}
|
|
168
180
|
unsubscribe() {
|
|
169
181
|
this.destroy$.next(true);
|
|
@@ -184,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
184
196
|
type: Inject,
|
|
185
197
|
args: ['currentAwsKinesisAnalyticsService']
|
|
186
198
|
}] }, { type: i1.BaseUserService }, { type: i2.ZoneChangeService }] });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9wb2kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUk1RSxPQUFPLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7O0FBS3BELE1BQU0sT0FBTyxVQUFVO0lBZVg7SUFDQTtJQWZWLEdBQUcsQ0FBTSxDQUFDLGdCQUFnQjtJQUMxQixtQkFBbUIsQ0FBTSxDQUFDLEtBQUs7SUFDL0IsYUFBYSxHQUFTLElBQUksQ0FBQztJQUUzQixjQUFjLENBQVM7SUFFdkIsWUFBWSxDQUFTO0lBRWIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFakMsWUFDK0IsV0FBZ0IsRUFFN0MsMkJBQWdDLEVBQ3hCLFdBQTRCLEVBQzVCLGlCQUFvQyxDQUFDLGtGQUFrRjs7UUFEdkgsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFFNUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxJQUFJ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LENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7d0dBOUxVLFVBQVUsa0JBWVgsbUJBQW1CLGFBQ25CLG1DQUFtQzs0R0FibEMsVUFBVSxjQUZULE1BQU07OzRGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFhSSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcyAqL1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlbW92ZU51bGxLZXlzRnJvbU9iamVjdCwgd2FpdFVudGlsIH0gZnJvbSAnLi4vLi4vaGVscGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFBPSSwgUG9pVHlwZSwgWm9uZSB9IGZyb20gJy4uLy4uL3R5cGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWm9uZUNoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi96b25lQ2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFQSSwgZ3JhcGhxbE9wZXJhdGlvbiB9IGZyb20gJ2F3cy1hbXBsaWZ5JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBvaVNlcnZpY2Uge1xuICBBUEk6IGFueTsgLy9BV1MgQVBJU2VydmljZVxuICBhd3NLaW5lc2lzQW5hbHl0aWNzOiBhbnk7IC8vQVdTXG4gIHNlbGVjdGVkRmxvb3I6IFpvbmUgPSBudWxsO1xuXG4gIGN1cnJlbnRTcGFjZUlEOiBzdHJpbmc7XG5cbiAgem9uZUlERmlsdGVyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnY3VycmVudEFQSVNlcnZpY2UnKSBhcGlJbmplY3RlZDogYW55LFxuICAgIEBJbmplY3QoJ2N1cnJlbnRBd3NLaW5lc2lzQW5hbHl0aWNzU2VydmljZScpXG4gICAgYXdzS2luZXNpc0FuYWx5dGljc0luamVjdGVkOiBhbnksXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgem9uZUNoYW5nZVNlcnZpY2U6IFpvbmVDaGFuZ2VTZXJ2aWNlIC8vIGluamVjdCBab25lQ2hhbmdlU2VydmljZSBpbnN0ZWFkIG9mIE5hdmlnYXRvclNlcnZpY2UgdG8gZml4IGNpcmN1bGFyIGRlcGVuZGFuY3lcbiAgKSB7XG4gICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcbiAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgPSBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ7XG5cbiAgICB0aGlzLnpvbmVDaGFuZ2VTZXJ2aWNlLnpvbmVDaGFuZ2Uuc3Vic2NyaWJlKCh6b25lKSA9PiB7XG4gICAgICBpZiAoIXpvbmUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHpvbmUuc3BhY2VJRCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gem9uZS5zcGFjZUlEO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoem9uZS5pZCAhPT0gdGhpcy56b25lSURGaWx0ZXIpIHtcbiAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS5mbG9vckhhc0NoYW5nZWQuc3Vic2NyaWJlKChmbG9vcikgPT4ge1xuICAgICAgaWYgKGZsb29yKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vciA9IGZsb29yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0UG9pQnlFbGVtZW50SWQoZWxlbWVudElkOiBzdHJpbmcpOiBQcm9taXNlPFBPSSB8IG51bGw+IHtcbiAgICBjb25zdCBwb2lzID0gYXdhaXQgdGhpcy5BUEkuUG9pc0J5RWxlbWVudChlbGVtZW50SWQpO1xuICAgIGlmIChwb2lzICYmIHBvaXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHBvaXMuaXRlbXNbMF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgZ2V0UG9pc0J5VHlwZSh0eXBlOiBQb2lUeXBlKTogUHJvbWlzZTxbUE9JXSB8IGFueT4ge1xuICAgIHJldHVybiB0aGlzLkFQSS5Qb2lzQnlUeXBlKHR5cGUpLnRoZW4oKHBvaXMpID0+IHBvaXMuaXRlbXMpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUE9JRm9yU3BhY2VJRChwb2k6IFBPSSk6IFByb21pc2U8UE9JPiB7XG4gICAgcmVtb3ZlTnVsbEtleXNGcm9tT2JqZWN0KHBvaSk7XG4gICAgaWYgKCEhdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzICYmICEhdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzLnJlY29yZCAmJiB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkKCkpIHtcbiAgICAgIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5nZXRJbnN0YW5jZSgpLnJlY29yZChcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZXZlbnRUeXBlOiAnT2JqZWN0IENyZWF0aW9uJyxcbiAgICAgICAgICAgIG9iamVjdFR5cGU6ICdwb2knLFxuICAgICAgICAgICAgcG9pOiBwb2ksXG4gICAgICAgICAgICB1c2VyOiB0aGlzLnVzZXJTZXJ2aWNlLmN1LFxuICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcbiAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXG4gICAgICAgICAgICB6b25lSWQ6IHRoaXMuem9uZUlERmlsdGVyLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RyZWFtTmFtZTogJ3NtYXJ0ZXJwbGFuS2luZXNpcy1hbmFseXRpY3MnLFxuICAgICAgICAgIC8vIHBhcnRpdGlvbktleTogXCJcIixcbiAgICAgICAgfSxcbiAgICAgICAgJ0FXU0tpbmVzaXMnXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5BUEkuQ3JlYXRlUE9JKHBvaSk7XG4gIH1cblxuICBwb2lJc1ZpcnR1YWwocG9pOiBQT0kpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IGNvb3JkaW5hdGUgfSA9IHBvaTtcbiAgICByZXR1cm4gIWNvb3JkaW5hdGU7XG4gIH1cblxuICBhc3luYyB1cGRhdGVQb2kocG9pOiB7fSk6IFByb21pc2U8UE9JPiB7XG4gICAgcmV0dXJuIHRoaXMuQVBJLlVwZGF0ZVBPSShwb2kpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlUG9pKHBvaUlEOiBzdHJpbmcpOiBQcm9taXNlPFBPST4ge1xuICAgIHJldHVybiB0aGlzLkFQSS5EZWxldGVQT0koeyBpZDogcG9pSUQgfSk7XG4gIH1cblxuICBhc3luYyBnZXRQb2lzQnlNYXR0ZXJwb3J0U3dlZXBCeVR5cGUoXG4gICAgc3dlZXA6IHN0cmluZyxcbiAgICB0eXBlOiBQb2lUeXBlXG4gICk6IFByb21pc2U8UE9JW10+IHtcbiAgICByZXR1cm4gdGhpcy5BUEkuTGlzdFBPSVMoeyBtYXR0ZXJwb3J0U3dlZXBJRDogeyBlcTogc3dlZXAgfSB9LCAzMDApXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLml0ZW1zLmZpbHRlcigocG9pKSA9PiBwb2kudHlwZSA9PT0gdHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICogT3B0aW1pemVkIHZlcnNpb246IGZldGNoZXMgUE9JcyBmb3IgTUFOWSBzd2VlcHMgaW4gYXMgZmV3IEdyYXBoUUwgY2FsbHMgYXMgcG9zc2libGUsXG4gICogdXNpbmcgYW4gYG9yOiBbeyBtYXR0ZXJwb3J0U3dlZXBJRDogeyBlcSB9IH0sIC4uLl1gIGZpbHRlciBpbnN0ZWFkIG9mIGxvb3Bpbmcgb25lXG4gICogcmVxdWVzdCBwZXIgc3dlZXAuIFRoaXMgaXMgYSBEeW5hbW9EQiBTY2FuIHdpdGggYSBzZXJ2ZXItc2lkZSBmaWx0ZXIgKG5vdCBhIEdTSVxuICAqIGhhc2gta2V5IHF1ZXJ5KSwgc28gYG9yYCBjb21wb3NpdGlvbiB3b3JrcyBhbmQgY29sbGFwc2VzIE4gc3dlZXAtYnktc3dlZXAgY2FsbHNcbiAgKiBpbnRvIGEgaGFuZGZ1bCBvZiBwYWdpbmF0ZWQgY2FsbHMgdG90YWwuXG4gICpcbiAgKiBOT1RFOiBgaW5gIGlzIE5PVCBzdXBwb3J0ZWQgb24gdGhpcyBzY2hlbWEncyBNb2RlbFN0cmluZ0lucHV0IChvbGRlciBBbXBsaWZ5IGNvZGVnZW4pLFxuICAqIGhlbmNlIHRoZSBgb3JgIGNvbXBvc2l0aW9uIGluc3RlYWQg4oCUIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IGZvciB0aGlzIHVzZSBjYXNlLlxuICAqXG4gICogQ2h1bmtlZCBiZWNhdXNlIER5bmFtb0RCL0FwcFN5bmMgZmlsdGVyIGV4cHJlc3Npb25zIGhhdmUgYSBwcmFjdGljYWwgc2l6ZSBjZWlsaW5nIOKAlFxuICAqIHNwbGl0dGluZyBrZWVwcyBlYWNoIHJlcXVlc3Qgd2VsbCB3aXRoaW4gc2FmZSBsaW1pdHMgcmVnYXJkbGVzcyBvZiBzcGFjZSBzaXplLlxuICAqL1xuICBhc3luYyBnZXRQb2lzQnlNYXR0ZXJwb3J0U3dlZXBzKHN3ZWVwczogc3RyaW5nW10pOiBQcm9taXNlPFBPSVtdPiB7XG4gICAgaWYgKCFzd2VlcHMgfHwgc3dlZXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5U3RhdGVtZW50ID0gYFxuICAgIHF1ZXJ5IExpc3RQT0lTTGlnaHQoJGZpbHRlcjogTW9kZWxQT0lGaWx0ZXJJbnB1dCwgJGxpbWl0OiBJbnQsICRuZXh0VG9rZW46IFN0cmluZykge1xuICAgICAgbGlzdFBPSVMoZmlsdGVyOiAkZmlsdGVyLCBsaW1pdDogJGxpbWl0LCBuZXh0VG9rZW46ICRuZXh0VG9rZW4pIHtcbiAgICAgICAgaXRlbXMge1xuICAgICAgICAgIGlkXG4gICAgICAgICAgY29vcmRpbmF0ZVxuICAgICAgICAgIHNwZWNpZmljXG4gICAgICAgICAgcHJpdmF0ZVxuICAgICAgICAgIGdsb2JhbFxuICAgICAgICAgIHR5cGVcbiAgICAgICAgICBlbGVtZW50SURcbiAgICAgICAgICBsZXZlbFxuICAgICAgICAgIHJvbGVcbiAgICAgICAgICBjYXRlZ29yeVxuICAgICAgICAgIGRvbWFpbklEXG4gICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgICB0YWdJY29uXG4gICAgICAgICAgdGFnRGVzY3JpcHRpb25cbiAgICAgICAgICB0YWdJbWFnZUlEXG4gICAgICAgICAgbWF0dGVycG9ydFN3ZWVwSURcbiAgICAgICAgICBjcmVhdGVkQXRcbiAgICAgICAgICB1cGRhdGVkQXRcbiAgICAgICAgfVxuICAgICAgICBuZXh0VG9rZW5cbiAgICAgIH1cbiAgICB9XG4gIGA7XG5cbiAgICBjb25zdCBDSFVOS19TSVpFID0gNTA7IC8vIHNhZmUgbWFyZ2luIGZvciBhbiBcIm9yXCIgZmlsdGVyIGV4cHJlc3Npb24ncyBwcmFjdGljYWwgc2l6ZVxuICAgIGNvbnN0IGNodW5rczogc3RyaW5nW11bXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3dlZXBzLmxlbmd0aDsgaSArPSBDSFVOS19TSVpFKSB7XG4gICAgICBjaHVua3MucHVzaChzd2VlcHMuc2xpY2UoaSwgaSArIENIVU5LX1NJWkUpKTtcbiAgICB9XG5cbiAgICBsZXQgYWxsUG9pczogUE9JW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgICAgZG8ge1xuICAgICAgICBjb25zdCB2YXJpYWJsZXMgPSB7XG4gICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICBvcjogY2h1bmsubWFwKChzd2VlcCkgPT4gKHsgbWF0dGVycG9ydFN3ZWVwSUQ6IHsgZXE6IHN3ZWVwIH0gfSkpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW1pdDogMTAwMCxcbiAgICAgICAgICBuZXh0VG9rZW5cbiAgICAgICAgfTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IEFQSS5ncmFwaHFsKGdyYXBocWxPcGVyYXRpb24ocXVlcnlTdGF0ZW1lbnQsIHZhcmlhYmxlcykpKSBhcyBhbnk7XG4gICAgICAgICAgY29uc3QgcmVzRGF0YSA9IHJlc3BvbnNlLmRhdGEubGlzdFBPSVM7XG5cbiAgICAgICAgICBpZiAocmVzRGF0YSAmJiByZXNEYXRhLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbFBvaXMgPSBbLi4uYWxsUG9pcywgLi4ucmVzRGF0YS5pdGVtc107XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dFRva2VuID0gcmVzRGF0YT8ubmV4dFRva2VuID8/IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgLy8gQSBmYWlsZWQgcGFnZSBzaG91bGRuJ3QgYWJvcnQgdGhlIHdob2xlIGJhdGNoIOKAlCBsb2cgYW5kIHN0b3AgcGFnaW5nIHRoaXMgY2h1bmsgb25seSxcbiAgICAgICAgICAvLyB0aGUgcmVzdCBvZiB0aGUgY29weSBwcm9jZXNzIGNvbnRpbnVlcyB3aXRoIHdoYXRldmVyIHdhcyBhbHJlYWR5IGNvbGxlY3RlZC5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciB3aGlsZSBmZXRjaGluZyBQT0lzIGZvciBhIHN3ZWVwIGNodW5rOmAsIGVycm9yKTtcbiAgICAgICAgICBuZXh0VG9rZW4gPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9IHdoaWxlIChuZXh0VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxQb2lzO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9wb2kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUk1RSxPQUFPLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7O0FBS3BELE1BQU0sT0FBTyxVQUFVO0lBZVg7SUFDQTtJQWZWLEdBQUcsQ0FBTSxDQUFDLGdCQUFnQjtJQUMxQixtQkFBbUIsQ0FBTSxDQUFDLEtBQUs7SUFDL0IsYUFBYSxHQUFTLElBQUksQ0FBQztJQUUzQixjQUFjLENBQVM7SUFFdkIsWUFBWSxDQUFTO0lBRWIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFakMsWUFDK0IsV0FBZ0IsRUFFN0MsMkJBQWdDLEVBQ3hCLFdBQTRCLEVBQzVCLGlCQUFvQyxDQUFDLGtGQUFrRjs7UUFEdkgsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFFNUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxJQUFJ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QUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUMxQixPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ2hDLENBQUM7eUJBQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ3pCLHdFQUF3RTt3QkFDeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDdkUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDekMsQ0FBQyxRQUFRLFNBQVMsRUFBRTtRQUVwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQXhNVSxVQUFVLGtCQVlYLG1CQUFtQixhQUNuQixtQ0FBbUM7NEdBYmxDLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBYUksTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyByZW1vdmVOdWxsS2V5c0Zyb21PYmplY3QsIHdhaXRVbnRpbCB9IGZyb20gJy4uLy4uL2hlbHBlcnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFBPSSwgUG9pVHlwZSwgWm9uZSB9IGZyb20gJy4uLy4uL3R5cGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBab25lQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uL3pvbmVDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFQSSwgZ3JhcGhxbE9wZXJhdGlvbiB9IGZyb20gJ2F3cy1hbXBsaWZ5JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb2lTZXJ2aWNlIHtcclxuICBBUEk6IGFueTsgLy9BV1MgQVBJU2VydmljZVxyXG4gIGF3c0tpbmVzaXNBbmFseXRpY3M6IGFueTsgLy9BV1NcclxuICBzZWxlY3RlZEZsb29yOiBab25lID0gbnVsbDtcclxuXHJcbiAgY3VycmVudFNwYWNlSUQ6IHN0cmluZztcclxuXHJcbiAgem9uZUlERmlsdGVyOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSxcclxuICAgIEBJbmplY3QoJ2N1cnJlbnRBd3NLaW5lc2lzQW5hbHl0aWNzU2VydmljZScpXHJcbiAgICBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ6IGFueSxcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgem9uZUNoYW5nZVNlcnZpY2U6IFpvbmVDaGFuZ2VTZXJ2aWNlIC8vIGluamVjdCBab25lQ2hhbmdlU2VydmljZSBpbnN0ZWFkIG9mIE5hdmlnYXRvclNlcnZpY2UgdG8gZml4IGNpcmN1bGFyIGRlcGVuZGFuY3lcclxuICApIHtcclxuICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWQ7XHJcbiAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgPSBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ7XHJcblxyXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS56b25lQ2hhbmdlLnN1YnNjcmliZSgoem9uZSkgPT4ge1xyXG4gICAgICBpZiAoIXpvbmUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHpvbmUuc3BhY2VJRCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB6b25lLnNwYWNlSUQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XHJcbiAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSBudWxsO1xyXG4gICAgICB9IGVsc2UgaWYgKHpvbmUuaWQgIT09IHRoaXMuem9uZUlERmlsdGVyKSB7XHJcbiAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnpvbmVDaGFuZ2VTZXJ2aWNlLmZsb29ySGFzQ2hhbmdlZC5zdWJzY3JpYmUoKGZsb29yKSA9PiB7XHJcbiAgICAgIGlmIChmbG9vcikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vciA9IGZsb29yO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFBvaUJ5RWxlbWVudElkKGVsZW1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxQT0kgfCBudWxsPiB7XHJcbiAgICBjb25zdCBwb2lzID0gYXdhaXQgdGhpcy5BUEkuUG9pc0J5RWxlbWVudChlbGVtZW50SWQpO1xyXG4gICAgaWYgKHBvaXMgJiYgcG9pcy5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBwb2lzLml0ZW1zWzBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRQb2lzQnlUeXBlKHR5cGU6IFBvaVR5cGUpOiBQcm9taXNlPFtQT0ldIHwgYW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5BUEkuUG9pc0J5VHlwZSh0eXBlKS50aGVuKChwb2lzKSA9PiBwb2lzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNyZWF0ZVBPSUZvclNwYWNlSUQocG9pOiBQT0kpOiBQcm9taXNlPFBPST4ge1xyXG4gICAgcmVtb3ZlTnVsbEtleXNGcm9tT2JqZWN0KHBvaSk7XHJcbiAgICBpZiAoISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MgJiYgISF0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MucmVjb3JkICYmIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5yZWNvcmQoKSkge1xyXG4gICAgICB0aGlzLmF3c0tpbmVzaXNBbmFseXRpY3MuZ2V0SW5zdGFuY2UoKS5yZWNvcmQoXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiAnT2JqZWN0IENyZWF0aW9uJyxcclxuICAgICAgICAgICAgb2JqZWN0VHlwZTogJ3BvaScsXHJcbiAgICAgICAgICAgIHBvaTogcG9pLFxyXG4gICAgICAgICAgICB1c2VyOiB0aGlzLnVzZXJTZXJ2aWNlLmN1LFxyXG4gICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgICAgIGZsb29ySWQ6IHRoaXMuc2VsZWN0ZWRGbG9vcj8uaWQsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXHJcbiAgICAgICAgICAgIHpvbmVJZDogdGhpcy56b25lSURGaWx0ZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3RyZWFtTmFtZTogJ3NtYXJ0ZXJwbGFuS2luZXNpcy1hbmFseXRpY3MnLFxyXG4gICAgICAgICAgLy8gcGFydGl0aW9uS2V5OiBcIlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ0FXU0tpbmVzaXMnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5BUEkuQ3JlYXRlUE9JKHBvaSk7XHJcbiAgfVxyXG5cclxuICBwb2lJc1ZpcnR1YWwocG9pOiBQT0kpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHsgY29vcmRpbmF0ZSB9ID0gcG9pO1xyXG4gICAgcmV0dXJuICFjb29yZGluYXRlO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlUG9pKHBvaToge30pOiBQcm9taXNlPFBPST4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLlVwZGF0ZVBPSShwb2kpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZGVsZXRlUG9pKHBvaUlEOiBzdHJpbmcpOiBQcm9taXNlPFBPST4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLkRlbGV0ZVBPSSh7IGlkOiBwb2lJRCB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFBvaXNCeU1hdHRlcnBvcnRTd2VlcEJ5VHlwZShcclxuICAgIHN3ZWVwOiBzdHJpbmcsXHJcbiAgICB0eXBlOiBQb2lUeXBlXHJcbiAgKTogUHJvbWlzZTxQT0lbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLkxpc3RQT0lTKHsgbWF0dGVycG9ydFN3ZWVwSUQ6IHsgZXE6IHN3ZWVwIH0gfSwgMzAwKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLml0ZW1zLmZpbHRlcigocG9pKSA9PiBwb2kudHlwZSA9PT0gdHlwZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBPcHRpbWl6ZWQgdmVyc2lvbjogZmV0Y2hlcyBQT0lzIGZvciBNQU5ZIHN3ZWVwcyBpbiBhcyBmZXcgR3JhcGhRTCBjYWxscyBhcyBwb3NzaWJsZSxcclxuICAqIHVzaW5nIGFuIGBvcjogW3sgbWF0dGVycG9ydFN3ZWVwSUQ6IHsgZXEgfSB9LCAuLi5dYCBmaWx0ZXIgaW5zdGVhZCBvZiBsb29waW5nIG9uZVxyXG4gICogcmVxdWVzdCBwZXIgc3dlZXAuIFRoaXMgaXMgYSBEeW5hbW9EQiBTY2FuIHdpdGggYSBzZXJ2ZXItc2lkZSBmaWx0ZXIgKG5vdCBhIEdTSVxyXG4gICogaGFzaC1rZXkgcXVlcnkpLCBzbyBgb3JgIGNvbXBvc2l0aW9uIHdvcmtzIGFuZCBjb2xsYXBzZXMgTiBzd2VlcC1ieS1zd2VlcCBjYWxsc1xyXG4gICogaW50byBhIGhhbmRmdWwgb2YgcGFnaW5hdGVkIGNhbGxzIHRvdGFsLlxyXG4gICpcclxuICAqIE5PVEU6IGBpbmAgaXMgTk9UIHN1cHBvcnRlZCBvbiB0aGlzIHNjaGVtYSdzIE1vZGVsU3RyaW5nSW5wdXQgKG9sZGVyIEFtcGxpZnkgY29kZWdlbiksXHJcbiAgKiBoZW5jZSB0aGUgYG9yYCBjb21wb3NpdGlvbiBpbnN0ZWFkIOKAlCBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBmb3IgdGhpcyB1c2UgY2FzZS5cclxuICAqXHJcbiAgKiBDaHVua2VkIGJlY2F1c2UgRHluYW1vREIvQXBwU3luYyBmaWx0ZXIgZXhwcmVzc2lvbnMgaGF2ZSBhIHByYWN0aWNhbCBzaXplIGNlaWxpbmcg4oCUXHJcbiAgKiBzcGxpdHRpbmcga2VlcHMgZWFjaCByZXF1ZXN0IHdlbGwgd2l0aGluIHNhZmUgbGltaXRzIHJlZ2FyZGxlc3Mgb2Ygc3BhY2Ugc2l6ZS5cclxuICAqL1xyXG4gIGFzeW5jIGdldFBvaXNCeU1hdHRlcnBvcnRTd2VlcHMoc3dlZXBzOiBzdHJpbmdbXSk6IFByb21pc2U8UE9JW10+IHtcclxuICAgIGlmICghc3dlZXBzIHx8IHN3ZWVwcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHF1ZXJ5U3RhdGVtZW50ID0gYFxyXG4gICAgcXVlcnkgTGlzdFBPSVNMaWdodCgkZmlsdGVyOiBNb2RlbFBPSUZpbHRlcklucHV0LCAkbGltaXQ6IEludCwgJG5leHRUb2tlbjogU3RyaW5nKSB7XHJcbiAgICAgIGxpc3RQT0lTKGZpbHRlcjogJGZpbHRlciwgbGltaXQ6ICRsaW1pdCwgbmV4dFRva2VuOiAkbmV4dFRva2VuKSB7XHJcbiAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgaWRcclxuICAgICAgICAgIGNvb3JkaW5hdGVcclxuICAgICAgICAgIHNwZWNpZmljXHJcbiAgICAgICAgICBwcml2YXRlXHJcbiAgICAgICAgICBnbG9iYWxcclxuICAgICAgICAgIHR5cGVcclxuICAgICAgICAgIGVsZW1lbnRJRFxyXG4gICAgICAgICAgbGV2ZWxcclxuICAgICAgICAgIHJvbGVcclxuICAgICAgICAgIGNhdGVnb3J5XHJcbiAgICAgICAgICBkb21haW5JRFxyXG4gICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgIHRhZ0ljb25cclxuICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uXHJcbiAgICAgICAgICB0YWdJbWFnZUlEXHJcbiAgICAgICAgICBtYXR0ZXJwb3J0U3dlZXBJRFxyXG4gICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICB9XHJcbiAgICAgICAgbmV4dFRva2VuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICBgO1xyXG5cclxuICAgIGNvbnN0IENIVU5LX1NJWkUgPSA1MDsgLy8gc2FmZSBtYXJnaW4gZm9yIGFuIFwib3JcIiBmaWx0ZXIgZXhwcmVzc2lvbidzIHByYWN0aWNhbCBzaXplXHJcbiAgICBjb25zdCBjaHVua3M6IHN0cmluZ1tdW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3dlZXBzLmxlbmd0aDsgaSArPSBDSFVOS19TSVpFKSB7XHJcbiAgICAgIGNodW5rcy5wdXNoKHN3ZWVwcy5zbGljZShpLCBpICsgQ0hVTktfU0laRSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEVhY2ggY2h1bmsgaXMgYSBmdWxsIHRhYmxlIFNjYW4gb2YgaXRzIG93bjogcnVubmluZyB0aGVtIGluIHBhcmFsbGVsIGluc3RlYWQgb2Ygb25lIGFmdGVyXHJcbiAgICAvLyB0aGUgb3RoZXIgZGl2aWRlcyB0aGUgd2FpdCBieSB0aGUgbnVtYmVyIG9mIGNodW5rcyAoNy42IHMgLT4gfjEgcyBvbiBhIDQ1Ni1zd2VlcCBzcGFjZSkuXHJcbiAgICAvLyBSZXN1bHRzIGFyZSBmbGF0dGVuZWQgaW4gY2h1bmsgb3JkZXIsIHNvIHRoZSBvdXRwdXQgaXMgdGhlIHNhbWUgYXMgdGhlIHNlcXVlbnRpYWwgdmVyc2lvbi5cclxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChjaHVua3MubWFwKGNodW5rID0+IHRoaXMuc2NhblBvaXNGb3JTd2VlcENodW5rKHF1ZXJ5U3RhdGVtZW50LCBjaHVuaykpKTtcclxuICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2NhblBvaXNGb3JTd2VlcENodW5rKHF1ZXJ5U3RhdGVtZW50OiBzdHJpbmcsIGNodW5rOiBzdHJpbmdbXSk6IFByb21pc2U8UE9JW10+IHtcclxuICAgIGNvbnN0IHBvaXM6IFBPSVtdID0gW107XHJcbiAgICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBkbyB7XHJcbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcclxuICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgIG9yOiBjaHVuay5tYXAoKHN3ZWVwKSA9PiAoeyBtYXR0ZXJwb3J0U3dlZXBJRDogeyBlcTogc3dlZXAgfSB9KSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxpbWl0OiAxMDAwLFxyXG4gICAgICAgIG5leHRUb2tlblxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gQSBmYWlsZWQgcGFnZSBpcyByZXRyaWVkIG9uY2U6IGdpdmluZyB1cCBhdCBvbmNlIHNpbGVudGx5IGRyb3BwZWQgdGhlIHJlc3Qgb2YgdGhlXHJcbiAgICAgIC8vIGNodW5rICh1cCB0byA1MCBzd2VlcHMgd29ydGggb2YgUE9JcykgZnJvbSB0aGUgY29weSBvciByZWNhbGlicmF0aW9uIGxpc3RzLlxyXG4gICAgICBsZXQgcmVzRGF0YTogYW55ID0gbnVsbDtcclxuICAgICAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgPD0gMiAmJiAhcmVzRGF0YTsgYXR0ZW1wdCsrKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IEFQSS5ncmFwaHFsKGdyYXBocWxPcGVyYXRpb24ocXVlcnlTdGF0ZW1lbnQsIHZhcmlhYmxlcykpKSBhcyBhbnk7XHJcbiAgICAgICAgICByZXNEYXRhID0gcmVzcG9uc2UuZGF0YS5saXN0UE9JUyA/PyB7IGl0ZW1zOiBbXSwgbmV4dFRva2VuOiBudWxsIH07XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgLy8gQW1wbGlmeSByZWplY3RzIHdoZW4gb25lIGl0ZW0gZXJyb3JzIGJ1dCBzdGlsbCBoYW5kcyBvdmVyIHRoZSByZWFkYWJsZSBvbmVzXHJcbiAgICAgICAgICBpZiAoZXJyb3I/LmRhdGE/Lmxpc3RQT0lTKSB7XHJcbiAgICAgICAgICAgIHJlc0RhdGEgPSBlcnJvci5kYXRhLmxpc3RQT0lTO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChhdHRlbXB0ID09PSAyKSB7XHJcbiAgICAgICAgICAgIC8vIHRoZSByZXN0IG9mIHRoZSBwcm9jZXNzIGNvbnRpbnVlcyB3aXRoIHdoYXRldmVyIHdhcyBhbHJlYWR5IGNvbGxlY3RlZFxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciB3aGlsZSBmZXRjaGluZyBQT0lzIGZvciBhIHN3ZWVwIGNodW5rOmAsIGVycm9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHBvaXMucHVzaCguLi4ocmVzRGF0YT8uaXRlbXMgfHwgW10pLmZpbHRlcigocG9pOiBQT0kpID0+ICEhcG9pKSk7XHJcbiAgICAgIG5leHRUb2tlbiA9IHJlc0RhdGE/Lm5leHRUb2tlbiA/PyBudWxsO1xyXG4gICAgfSB3aGlsZSAobmV4dFRva2VuKTtcclxuXHJcbiAgICByZXR1cm4gcG9pcztcclxuICB9XHJcblxyXG4gIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
56
56
|
type: Inject,
|
|
57
57
|
args: ['currentAPIService']
|
|
58
58
|
}] }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tb2RlbHMvcHJvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGNBQWM7SUFDdkIsR0FBRyxDQUFNO0lBRVQsWUFBeUMsV0FBZ0I7UUFDckQsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBZ0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQjtRQUNyQixNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFZO1FBQzVCLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQWM7UUFDcEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBWTtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN6RSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQWM7UUFDckMsT0FBTyxDQUNILE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7U0FDekIsQ0FBQyxDQUNMLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQzt3R0F2RFEsY0FBYyxrQkFHSCxtQkFBbUI7NEdBSDlCLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSWdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFXU1R5cGUsIFByb2ZpbGUgfSBmcm9tIFwiLi4vLi4vdHlwZXMuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlU2VydmljZSB7XHJcbiAgICBBUEk6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnkpIHtcclxuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNyZWF0ZVByb2ZpbGUocHJvZmlsZTogUHJvZmlsZSk6IFByb21pc2U8UHJvZmlsZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlUHJvZmlsZShwcm9maWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRQcm9maWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb2ZpbGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldFByb2ZpbGUoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGxpc3RDdXJyZW50UHJvZmlsZXMoKTogUHJvbWlzZTxQcm9maWxlW10+IHtcclxuICAgICAgICBjb25zdCBwcm9maWxlcyA9IChhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdFByb2ZpbGVzKCkpLml0ZW1zO1xyXG4gICAgICAgIHJldHVybiBwcm9maWxlcy5maWx0ZXIoKHApID0+ICFwLmRlbGV0ZWRBdCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdXBkYXRlUHJvZmlsZShwcm9maWxlOiBhbnkpOiBQcm9taXNlPFByb2ZpbGU+IHtcclxuICAgICAgICBpZiAocHJvZmlsZS5pZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBhbiBJRCBpcyByZXF1aXJlZCBmb3IgdXBkYXRlIFByb2ZpbGVgKTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlUHJvZmlsZShwcm9maWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkZWxldGVQcm9maWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb2ZpbGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZVByb2ZpbGUoeyBpZDogaWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0UHJvZmlsZUZyb21BV1NJRCh1c2VySUQ6IHN0cmluZyk6IFByb21pc2U8UHJvZmlsZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uUHJvZmlsZXNCeVVzZXJJRCh1c2VySUQpLnRoZW4oKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdHMuaXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5pdGVtc1swXTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRVc2Vyc0Zvck1haWwobWFpbDogc3RyaW5nKTogUHJvbWlzZTxQcm9maWxlW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkxpc3RQcm9maWxlcyh7IG1ldGFkYXRhOiB7IGNvbnRhaW5zOiBtYWlsIH0gfSkudGhlbihcclxuICAgICAgICAgICAgKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzLml0ZW1zLmZpbHRlcigocHJvZmlsZSkgPT4gIXByb2ZpbGUuZGVsZXRlZEF0KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldFByb2ZpbGVzRm9yU3RhdHVzKHN0YXR1czogc3RyaW5nKTogUHJvbWlzZTxQcm9maWxlW10+IHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdFByb2ZpbGVzKHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogeyBlcTogc3RhdHVzIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5pdGVtcztcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
42
42
|
type: Inject,
|
|
43
43
|
args: ['currentAPIService']
|
|
44
44
|
}] }] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxlQUFlO0lBQ3hCLEdBQUcsQ0FBTTtJQUVULFlBQXlDLFdBQWdCO1FBQ3JELElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQWtCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQWtCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxLQUFhO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMxRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDekIsQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNoQixJQUFJLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUFDLE9BQWU7UUFDeEMsSUFBSSxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkcsQ0FBQztJQUVMLENBQUM7d0dBcENRLGVBQWUsa0JBR0osbUJBQW1COzRHQUg5QixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUlnQixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIHtcclxuICAgIEFQSTogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY3JlYXRlUHJvcGVydHkocHJvcGVydHk6IFByb3BlcnR5KTogUHJvbWlzZTxQcm9wZXJ0eT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlUHJvcGVydHkocHJvcGVydHkpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRlbGV0ZVByb3BlcnR5KHByb3BlcnR5SUQ6IHN0cmluZyk6IFByb21pc2U8UHJvcGVydHk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZVByb3BlcnR5KHsgaWQ6IHByb3BlcnR5SUQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0UHJvcGVydGllc0Zvck9yZ2FuaXNhdGlvbihvcmdJRDogc3RyaW5nKTogUHJvbWlzZTxQcm9wZXJ0eVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5Qcm9wZXJ0aWVzQnlPcmdhbmlzYXRpb24ob3JnSUQpLnRoZW4oXHJcbiAgICAgICAgICAgIChwcm9wcykgPT4gcHJvcHMuaXRlbXMsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBsaXN0UHJvcGVydGllcygpOiBQcm9taXNlPFByb3BlcnR5W10+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkxpc3RQcm9wZXJ0aWVzKCkudGhlbigocHJvcHMpID0+IHByb3BzLml0ZW1zKTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5MaXN0UHJvcGVydHlzKCkudGhlbigocHJvcHMpID0+IHByb3BzLml0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbGlzdFByb3BlcnRpZXNGb3JTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPFByb3BlcnR5W10+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkxpc3RQcm9wZXJ0aWVzKHsgc3BhY2VJRDogeyBlcTogc3BhY2VJRCB9IH0pLnRoZW4oKHByb3BzKSA9PiBwcm9wcy5pdGVtcyk7XHJcbiAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdFByb3BlcnR5cyh7IHNwYWNlSUQ6IHsgZXE6IHNwYWNlSUQgfSB9KS50aGVuKChwcm9wcykgPT4gcHJvcHMuaXRlbXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -141,7 +141,30 @@ export class SpaceService {
|
|
|
141
141
|
// No image count: this feeds the viewer, which only needs to know which visits exist. Asking
|
|
142
142
|
// for it would add an S3 listing per node before anything can be drawn.
|
|
143
143
|
const visits = await this.visitService.getVisitsForSpaceForUser(spaceID, false);
|
|
144
|
-
|
|
144
|
+
if (!visits || visits.length === 0) {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
// The space's chosen capture comes first, so callers can take the head of the list without
|
|
148
|
+
// knowing the rule. Without this the order is whatever DynamoDB returns, which is stable
|
|
149
|
+
// enough to look deliberate and can change when a capture is added or removed.
|
|
150
|
+
const space = await this.getSpace(spaceID);
|
|
151
|
+
const defaultID = space?.defaultCaptureID;
|
|
152
|
+
if (!defaultID) {
|
|
153
|
+
return visits;
|
|
154
|
+
}
|
|
155
|
+
const chosen = visits.filter((visit) => visit.captureID === defaultID);
|
|
156
|
+
return chosen.length > 0
|
|
157
|
+
? [...chosen, ...visits.filter((visit) => visit.captureID !== defaultID)]
|
|
158
|
+
: visits;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Sets which capture a visitor opens by default for this space.
|
|
162
|
+
*
|
|
163
|
+
* Pass null to clear it. Writing a single field on the space is what keeps the answer unique:
|
|
164
|
+
* there is nothing to clear elsewhere, and no way for two captures to both claim it.
|
|
165
|
+
*/
|
|
166
|
+
async setDefaultCapture(spaceID, captureID) {
|
|
167
|
+
return this.updateSpace({ id: spaceID, defaultCaptureID: captureID });
|
|
145
168
|
}
|
|
146
169
|
async getAllowedModel3DForSpace(spaceID) {
|
|
147
170
|
const visit = await this.getAllowedVisitForSpace(spaceID);
|
|
@@ -230,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
230
253
|
type: Inject,
|
|
231
254
|
args: ['currentAPIService']
|
|
232
255
|
}] }] });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL3NwYWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEYsT0FBTyxFQUFnQixZQUFZLEVBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7O0FBZTFELE1BQU0sT0FBTyxZQUFZO0lBU1Q7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBZlosZ0JBQWdCLEdBQVksRUFBRSxDQUFDO0lBRS9CLGVBQWUsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUUzRCxHQUFHLENBQU0sQ0FBQyxLQUFLO0lBRWYsWUFDWSxZQUEwQixFQUMxQixXQUE0QixFQUM1QixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixjQUE4QixFQUM5QixhQUE2QixFQUM3QixZQUE4QixFQUM5QixjQUE4QixFQUM5QixrQkFBc0MsRUFDakIsV0FBZ0I7UUFUckMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixpQkFBWSxH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QztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQWU7UUFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxNQUFNLGFBQWEsR0FDZixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQ25ELFVBQVUsQ0FBQyxFQUFFLENBQ2hCLENBQUM7UUFDTixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUMvQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQy9DLENBQUM7UUFDRixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO3dHQTVQUSxZQUFZLHNTQWtCVCxtQkFBbUI7NEdBbEJ0QixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQW1CUSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpbHRlclVuaXF1ZUFycmF5QnlJRCwgc29ydEFscGhhYmV0aWNhbGx5T25OYW1lIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMuc2VydmljZVwiO1xuaW1wb3J0IHsgU3BhY2UsIExheWVyLCBQcm9wZXJ0eVR5cGUsIFZpc2l0IH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcbmltcG9ydCB7IGdldFNpZ25lZEltYWdlVXJsRm9yU3BhY2UgfSBmcm9tIFwiLi4vczMuc2VydmljZVwiO1xuaW1wb3J0IHsgQmFzZVVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3VzZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQ2FwdHVyZVNlcnZpY2UgfSBmcm9tIFwiLi9jYXB0dXJlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEVxdWlwbWVudFNlcnZpY2UgfSBmcm9tIFwiLi9lcXVpcG1lbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgRmVhdHVyZVNlcnZpY2UgfSBmcm9tIFwiLi9mZWF0dXJlLnNlcnZpY2VcIjtcbmltcG9ydCB7IE1lYXN1cmVtZW50U2VydmljZSB9IGZyb20gXCIuL21lYXN1cmVtZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IE1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vbWlzc2lvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tIFwiLi9wcm9wZXJ0eS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gXCIuL3RpY2tldC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBWaXNpdFNlcnZpY2UgfSBmcm9tIFwiLi92aXNpdC5zZXJ2aWNlXCI7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBTcGFjZVNlcnZpY2Uge1xuXG4gICAgbG9jYXRpb25zRm9yVXNlcjogU3BhY2VbXSA9IFtdO1xuXG4gICAgbG9jYXRpb25VcGRhdGVkOiBTdWJqZWN0PFNwYWNlW10+ID0gbmV3IFN1YmplY3Q8U3BhY2VbXT4oKTtcblxuICAgIEFQSTogYW55OyAvL0FXU1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlzaXRTZXJ2aWNlOiBWaXNpdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwcm9wZXJ0eVNlcnZpY2U6IFByb3BlcnR5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjYXB0dXJlU2VydmljZTogQ2FwdHVyZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWlzc2lvblNlcnZpY2U6IE1pc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRpY2tldFNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVxdWlwU2VydmljZTogRXF1aXBtZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmZWF0dXJlU2VydmljZTogRmVhdHVyZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWVhc3VyZW1lbnRTZXJ2aWNlOiBNZWFzdXJlbWVudFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueVxuICAgICkge1xuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xuICAgIH1cblxuICAgIGFzeW5jIGxpc3RTcGFjZXMoKTogUHJvbWlzZTxTcGFjZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdFNwYWNlcygpLnRoZW4oKHNwYWNlcykgPT5cbiAgICAgICAgICAgIHNwYWNlcy5pdGVtcy5maWx0ZXIoKHNwKSA9PiAhc3AuZGVsZXRlZEF0KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRMb2NhdGlvbnNGb3JDdXJyZW50VXNlcigpOiBQcm9taXNlPFNwYWNlW10+IHtcbiAgICAgICAgY29uc3QgbWlzc2lvbnMgPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9ucztcbiAgICAgICAgaWYgKCFtaXNzaW9ucykgcmV0dXJuIFtdO1xuICAgICAgICBsZXQgbG9jYXRpb25zID0gW107XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgbWlzc2lvbnMubWFwKGFzeW5jIChtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1pc3Npb24uc3BhY2UgJiYgIW1pc3Npb24uc3BhY2UuZGVsZXRlZEF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwYWNlID0gYXdhaXQgdGhpcy5nZXRTcGFjZShtaXNzaW9uLnNwYWNlLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zaWduVXJsRm9yU3BhY2Uoc3BhY2UpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnZpc2l0U2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFZpc2l0c0ZvclNwYWNlRm9yVXNlcihzcGFjZS5pZClcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCh2aXNpdHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlzaXRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlLnZpc2l0cyA9IHZpc2l0cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25zLnB1c2goc3BhY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgICBpZiAobG9jYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxvY2F0aW9ucyA9IHNvcnRBbHBoYWJldGljYWxseU9uTmFtZShcbiAgICAgICAgICAgICAgICBmaWx0ZXJVbmlxdWVBcnJheUJ5SUQobG9jYXRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2NhdGlvbnNGb3JVc2VyID0gbG9jYXRpb25zO1xuICAgICAgICB0aGlzLmxvY2F0aW9uVXBkYXRlZC5uZXh0KGxvY2F0aW9ucyk7XG4gICAgICAgIHJldHVybiBsb2NhdGlvbnM7XG4gICAgfVxuXG4gICAgYXN5bmMgc2lnblVybEZvclNwYWNlKGxvYzogU3BhY2UpIHtcbiAgICAgICAgaWYgKGxvYy5hbm5leGVzKSB7XG4gICAgICAgICAgICBnZXRTaWduZWRJbWFnZVVybEZvclNwYWNlKGxvYykudGhlbigodXJsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgICAgICAgICBsb2MuYW5uZXhlcyA9IHVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGdldEFsbG93ZWRTcGFjZXNGb3JPcmcoXG4gICAgICAgIG9yZ0lEOiBzdHJpbmcsXG4gICAgICAgIHVzZXJPcmdJRDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8U3BhY2VbXT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB1c2VyT3JnSUQgPT09IFwiNmUyODIwMWYtNDY3OS00YzI5LTlkMmQtOGEzMjVmNTdjZWU5XCIgfHxcbiAgICAgICAgICAgIG9yZ0lEID09PSBcIjZlMjgyMDFmLTQ2NzktNGMyOS05ZDJkLThhMzI1ZjU3Y2VlOVwiXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlzdFNwYWNlcygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNwYWNlc0Zvck9yZyh1c2VyT3JnSUQpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFNwYWNlc0Zvck9yZyhvcmdJRDogc3RyaW5nKTogUHJvbWlzZTxTcGFjZVtdPiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0UHJvcGVydGllc0Zvck9yZ2FuaXNhdGlvbihvcmdJRCk7XG4gICAgICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNwYWNlcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LnNwYWNlICYmICFwcm9wZXJ0eS5zcGFjZS5kZWxldGVkQXQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3BhY2VzLnB1c2gocHJvcGVydHkuc3BhY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzcGFjZXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgYXN5bmMgY3JlYXRlU3BhY2UodmFsdWVzOiBTcGFjZSwgbGF5ZXI/OiBMYXllcik6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGxvYyA9IGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVTcGFjZSh2YWx1ZXMpO1xuICAgICAgICBjb25zdCB6b25lSW5wdXQgPSB7XG4gICAgICAgICAgICBuYW1lOiB2YWx1ZXMubmFtZSxcbiAgICAgICAgICAgIHNwYWNlSUQ6IGxvYy5pZCxcbiAgICAgICAgICAgIHN1cmZhY2U6IDAsXG4gICAgICAgICAgICBsYXllcklEOiBsYXllciA/IGxheWVyLmlkIDogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZVpvbmUoem9uZUlucHV0KTtcbiAgICAgICAgcmV0dXJuIGxvYztcbiAgICB9XG5cbiAgICBhc3luYyB1cGRhdGVTcGFjZShpbnB1dDogYW55KTogUHJvbWlzZTxTcGFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZVNwYWNlKGlucHV0KTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRTcGFjZShpZDogc3RyaW5nKTogUHJvbWlzZTxTcGFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldFNwYWNlKGlkKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNb2RlbDNERm9yU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgY2FwdHVyZXMgPSBhd2FpdCB0aGlzLmNhcHR1cmVTZXJ2aWNlLmdldENhcHR1cmVzQnlTcGFjZShzcGFjZUlEKTtcbiAgICAgICAgaWYgKGNhcHR1cmVzLmxlbmd0aCA+IDAgJiYgY2FwdHVyZXNbMF0ubm9kZXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVzWzBdLm5vZGVzLml0ZW1zWzBdLm1vZGVsM0Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZpc2l0IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBvcGVuIGZvciB0aGlzIHNwYWNlLlxuICAgICAqXG4gICAgICogQ2FsbGVycyBuZWVkIG1vcmUgdGhhbiB0aGUgbW9kZWwgcmVmZXJlbmNlIC0gd2hpY2ggdmlld2VyIHRoZSB2aXNpdCB3YXMgY2FwdHVyZWQgd2l0aCBkZWNpZGVzXG4gICAgICogd2hldGhlciBpdCBvcGVucyBpbiBNYXR0ZXJwb3J0IG9yIFRocmVlLmpzIC0gc28gdGhlIHdob2xlIHZpc2l0IGlzIHJldHVybmVkIGhlcmUuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0QWxsb3dlZFZpc2l0Rm9yU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxWaXNpdD4ge1xuICAgICAgICBjb25zdCB2aXNpdHMgPSBhd2FpdCB0aGlzLmdldEFsbG93ZWRWaXNpdHNGb3JTcGFjZShzcGFjZUlEKTtcbiAgICAgICAgcmV0dXJuIHZpc2l0cy5sZW5ndGggPiAwID8gdmlzaXRzWzBdIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVyeSB2aXNpdCB0aGUgY3VycmVudCB1c2VyIG1heSBvcGVuIGZvciB0aGlzIHNwYWNlLlxuICAgICAqXG4gICAgICogQSBzaXRlIGNhbiBjYXJyeSBtb3JlIHRoYW4gb25lIC0gYSBNYXR0ZXJwb3J0IGNhcHR1cmUgcGx1cyBvbmUgb3IgbW9yZSAzRCBtb2RlbHMgLSBhbmQgdGhlXG4gICAgICogdmlld2VyIG9mZmVycyB0aGVtIGFzIGEgbGlzdCwgc28gdGhlIGNhbGxlciBuZWVkcyBhbGwgb2YgdGhlbSByYXRoZXIgdGhhbiBqdXN0IHRoZSBmaXJzdC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRBbGxvd2VkVmlzaXRzRm9yU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxWaXNpdFtdPiB7XG4gICAgICAgIC8vIE5vIGltYWdlIGNvdW50OiB0aGlzIGZlZWRzIHRoZSB2aWV3ZXIsIHdoaWNoIG9ubHkgbmVlZHMgdG8ga25vdyB3aGljaCB2aXNpdHMgZXhpc3QuIEFza2luZ1xuICAgICAgICAvLyBmb3IgaXQgd291bGQgYWRkIGFuIFMzIGxpc3RpbmcgcGVyIG5vZGUgYmVmb3JlIGFueXRoaW5nIGNhbiBiZSBkcmF3bi5cbiAgICAgICAgY29uc3QgdmlzaXRzID0gYXdhaXQgdGhpcy52aXNpdFNlcnZpY2UuZ2V0VmlzaXRzRm9yU3BhY2VGb3JVc2VyKFxuICAgICAgICAgICAgc3BhY2VJRCxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdmlzaXRzID8/IFtdO1xuICAgIH1cblxuICAgIGFzeW5jIGdldEFsbG93ZWRNb2RlbDNERm9yU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdmlzaXQgPSBhd2FpdCB0aGlzLmdldEFsbG93ZWRWaXNpdEZvclNwYWNlKHNwYWNlSUQpO1xuICAgICAgICByZXR1cm4gdmlzaXQgPyB2aXNpdC5tb2RlbDNkIDogbnVsbDtcbiAgICB9XG5cbiAgICBhc3luYyBzb2Z0RGVsZXRlU3BhY2Uoc3BhY2VJRDogc3RyaW5nKSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlU3BhY2Uoe1xuICAgICAgICAgICAgaWQ6IHNwYWNlSUQsXG4gICAgICAgICAgICBkZWxldGVkQXQ6IERhdGUubm93KCksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBtaXNzaW9ucyA9IGF3YWl0IHRoaXMubWlzc2lvblNlcnZpY2UuZ2V0TWlzc2lvbnNGb3JTcGFjZShzcGFjZUlEKTtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IHRoaXMucHJvcGVydHlTZXJ2aWNlLmxpc3RQcm9wZXJ0aWVzRm9yU3BhY2Uoc3BhY2VJRCk7XG4gICAgICAgIGlmICh0aGlzLnVzZXJTZXJ2aWNlLmlzU1BBZG1pbigpKSB7XG4gICAgICAgICAgICAvLyBkZWxldGUgYWxsIHByb3BlcnRpZXNcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXMubWFwKGFzeW5jIChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb3BlcnR5U2VydmljZS5kZWxldGVQcm9wZXJ0eShwcm9wZXJ0eS5pZCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gZGVsZXRlIGFsbCBtaXNzaW9uc1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgbWlzc2lvbnMubWFwKGFzeW5jIChtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWlzc2lvblNlcnZpY2UudXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBtaXNzaW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEF0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBkZWxldGUgcHJvcGVydHkgZm9yIGN1cnJlbnQgT3JnXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50T3JnID0gdGhpcy51c2VyU2VydmljZS5jdXJyZW50T3JnYW5pc2F0aW9uKHNwYWNlSUQpO1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlUb0RlbGV0ZSA9IHByb3BlcnRpZXMuZmluZChcbiAgICAgICAgICAgICAgICAocHJvcGVydHkpID0+IHByb3BlcnR5Lm9yZ2FuaXNhdGlvbklEID09PSBjdXJyZW50T3JnLmlkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eVRvRGVsZXRlKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZGVsZXRlUHJvcGVydHkocHJvcGVydHlUb0RlbGV0ZS5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtaXNzaW9uc1RvRGVsZXRlID0gbWlzc2lvbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChtaXNzaW9uKSA9PlxuICAgICAgICAgICAgICAgICAgICBtaXNzaW9uLm9yZ2FuaXNhdGlvbklEID09PSBjdXJyZW50T3JnLmlkIHx8XG4gICAgICAgICAgICAgICAgICAgIG1pc3Npb24ub3JkZXJlZE9yZ2FuaXNhdGlvbklEID09PSBjdXJyZW50T3JnLmlkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIG1pc3Npb25zVG9EZWxldGUubWFwKGFzeW5jIChtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWlzc2lvblNlcnZpY2UudXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBtaXNzaW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEF0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGlja2V0cyA9IGF3YWl0IHRoaXMudGlja2V0U2VydmljZS5nZXRUaWNrZXRzQnlTcGFjZShzcGFjZUlEKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICB0aWNrZXRzLm1hcChhc3luYyAodGlja2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy50aWNrZXRTZXJ2aWNlLmRlbGV0ZVRpY2tldCh0aWNrZXQpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGVxdWlwcyA9IGF3YWl0IHRoaXMuZXF1aXBTZXJ2aWNlLmdldEVxdWlwbWVudHNGb3JTcGFjZShzcGFjZUlEKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBlcXVpcHMubWFwKGFzeW5jIChlcSkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXF1aXBTZXJ2aWNlLmRlbGV0ZUVxdWlwbWVudChlcSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBhd2FpdCB0aGlzLmZlYXR1cmVTZXJ2aWNlLmdldEZlYXR1cmVzRm9yU3BhY2Uoc3BhY2VJRCk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgZmVhdHVyZXMubWFwKGFzeW5jIChmZWF0dXJlKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZWF0dXJlU2VydmljZS5kZWxldGVGZWF0dXJlKGZlYXR1cmUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gbWVhc3VyZW1lbnRzXG4gICAgICAgIGNvbnN0IG1lYXN1cmVzID0gYXdhaXQgdGhpcy5tZWFzdXJlbWVudFNlcnZpY2UuZ2V0TWVhc3VyZW1lbnRzRm9yU3BhY2VGb3JVc2VyKHNwYWNlSUQpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIG1lYXN1cmVzLm1hcChhc3luYyAobWVhc3VyZSkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWVhc3VyZW1lbnRTZXJ2aWNlLmRlbGV0ZU1lYXN1cmVtZW50KG1lYXN1cmUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIC8vIHJlbW92ZSBmcm9tIGxpc3RcbiAgICAgICAgdGhpcy5sb2NhdGlvbnNGb3JVc2VyID0gdGhpcy5sb2NhdGlvbnNGb3JVc2VyLmZpbHRlcigoc3BhY2UpID0+IHNwYWNlLmlkICE9PSBzcGFjZUlEKTtcbiAgICAgICAgdGhpcy5sb2NhdGlvblVwZGF0ZWQubmV4dCh0aGlzLmxvY2F0aW9uc0ZvclVzZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGN1cnJlbnQgdXNlciBjYW4gYXJjaGl2ZSBhIHNwYWNlIChvbmx5IGlmIGhpcyBvcmdhbmlzYXRpb24gaXMgb3duaW5nIHRoZSBwcm9wZXJ0eSAoUHJvcGVydHlUeXBlLlBST1BFUlRZKSlcbiAgICAgKiBAcGFyYW0gc3BhY2VJRFxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgYXN5bmMgY2FuQXJjaGl2ZVNwYWNlKHNwYWNlSUQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBjdXJyZW50T3JnID0gdGhpcy51c2VyU2VydmljZS5jdXJyZW50T3JnYW5pc2F0aW9uKHNwYWNlSUQpO1xuICAgICAgICBjb25zdCBvcmdQcm9wZXJ0aWVzID1cbiAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldFByb3BlcnRpZXNGb3JPcmdhbmlzYXRpb24oXG4gICAgICAgICAgICAgICAgY3VycmVudE9yZy5pZCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gb3JnUHJvcGVydGllcy5maW5kKFxuICAgICAgICAgICAgKHByb3BlcnR5XykgPT4gcHJvcGVydHlfLnNwYWNlSUQgPT09IHNwYWNlSUQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChwcm9wZXJ0eS50eXBlID09PSBQcm9wZXJ0eVR5cGUuUFJPUEVSVFkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL3NwYWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEYsT0FBTyxFQUFnQixZQUFZLEVBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7O0FBZTFELE1BQU0sT0FBTyxZQUFZO0lBU1Q7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBZlosZ0JBQWdCLEdBQVksRUFBRSxDQUFDO0lBRS9CLGVBQWUsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUUzRCxHQUFHLENBQU0sQ0FBQyxLQUFLO0lBRWYsWUFDWSxZQUEwQixFQUMxQixXQUE0QixFQUM1QixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixjQUE4QixFQUM5QixhQUE2QixFQUM3QixZQUE4QixFQUM5QixjQUE4QixFQUM5QixrQkFBc0MsRUFDakIsV0FBZ0I7UUFUckMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixpQkFBWSxH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QztRQUNOLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQy9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FDL0MsQ0FBQztRQUNGLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7d0dBclJRLFlBQVksc1NBa0JULG1CQUFtQjs0R0FsQnRCLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBbUJRLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcyAqL1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyVW5pcXVlQXJyYXlCeUlELCBzb3J0QWxwaGFiZXRpY2FsbHlPbk5hbWUgfSBmcm9tIFwiLi4vLi4vaGVscGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNwYWNlLCBMYXllciwgUHJvcGVydHlUeXBlLCBWaXNpdCB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGdldFNpZ25lZEltYWdlVXJsRm9yU3BhY2UgfSBmcm9tIFwiLi4vczMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVXNlclNlcnZpY2UgfSBmcm9tIFwiLi4vdXNlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENhcHR1cmVTZXJ2aWNlIH0gZnJvbSBcIi4vY2FwdHVyZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEVxdWlwbWVudFNlcnZpY2UgfSBmcm9tIFwiLi9lcXVpcG1lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBGZWF0dXJlU2VydmljZSB9IGZyb20gXCIuL2ZlYXR1cmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNZWFzdXJlbWVudFNlcnZpY2UgfSBmcm9tIFwiLi9tZWFzdXJlbWVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vbWlzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gXCIuL3Byb3BlcnR5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tIFwiLi90aWNrZXQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBWaXNpdFNlcnZpY2UgfSBmcm9tIFwiLi92aXNpdC5zZXJ2aWNlXCI7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGFjZVNlcnZpY2Uge1xyXG5cclxuICAgIGxvY2F0aW9uc0ZvclVzZXI6IFNwYWNlW10gPSBbXTtcclxuXHJcbiAgICBsb2NhdGlvblVwZGF0ZWQ6IFN1YmplY3Q8U3BhY2VbXT4gPSBuZXcgU3ViamVjdDxTcGFjZVtdPigpO1xyXG5cclxuICAgIEFQSTogYW55OyAvL0FXU1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdmlzaXRTZXJ2aWNlOiBWaXNpdFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlOiBQcm9wZXJ0eVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjYXB0dXJlU2VydmljZTogQ2FwdHVyZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtaXNzaW9uU2VydmljZTogTWlzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0aWNrZXRTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGVxdWlwU2VydmljZTogRXF1aXBtZW50U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZlYXR1cmVTZXJ2aWNlOiBGZWF0dXJlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1lYXN1cmVtZW50U2VydmljZTogTWVhc3VyZW1lbnRTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBsaXN0U3BhY2VzKCk6IFByb21pc2U8U3BhY2VbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdFNwYWNlcygpLnRoZW4oKHNwYWNlcykgPT5cclxuICAgICAgICAgICAgc3BhY2VzLml0ZW1zLmZpbHRlcigoc3ApID0+ICFzcC5kZWxldGVkQXQpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0TG9jYXRpb25zRm9yQ3VycmVudFVzZXIoKTogUHJvbWlzZTxTcGFjZVtdPiB7XHJcbiAgICAgICAgY29uc3QgbWlzc2lvbnMgPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9ucztcclxuICAgICAgICBpZiAoIW1pc3Npb25zKSByZXR1cm4gW107XHJcbiAgICAgICAgbGV0IGxvY2F0aW9ucyA9IFtdO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBtaXNzaW9ucy5tYXAoYXN5bmMgKG1pc3Npb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChtaXNzaW9uLnNwYWNlICYmICFtaXNzaW9uLnNwYWNlLmRlbGV0ZWRBdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwYWNlID0gYXdhaXQgdGhpcy5nZXRTcGFjZShtaXNzaW9uLnNwYWNlLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNpZ25VcmxGb3JTcGFjZShzcGFjZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy52aXNpdFNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFZpc2l0c0ZvclNwYWNlRm9yVXNlcihzcGFjZS5pZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHZpc2l0cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpc2l0cykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlLnZpc2l0cyA9IHZpc2l0cztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25zLnB1c2goc3BhY2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChsb2NhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMgPSBzb3J0QWxwaGFiZXRpY2FsbHlPbk5hbWUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJVbmlxdWVBcnJheUJ5SUQobG9jYXRpb25zKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbnNGb3JVc2VyID0gbG9jYXRpb25zO1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25VcGRhdGVkLm5leHQobG9jYXRpb25zKTtcclxuICAgICAgICByZXR1cm4gbG9jYXRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNpZ25VcmxGb3JTcGFjZShsb2M6IFNwYWNlKSB7XHJcbiAgICAgICAgaWYgKGxvYy5hbm5leGVzKSB7XHJcbiAgICAgICAgICAgIGdldFNpZ25lZEltYWdlVXJsRm9yU3BhY2UobG9jKS50aGVuKCh1cmwpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2MuYW5uZXhlcyA9IHVybDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEFsbG93ZWRTcGFjZXNGb3JPcmcoXHJcbiAgICAgICAgb3JnSUQ6IHN0cmluZyxcclxuICAgICAgICB1c2VyT3JnSUQ6IHN0cmluZyxcclxuICAgICk6IFByb21pc2U8U3BhY2VbXT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdXNlck9yZ0lEID09PSBcIjZlMjgyMDFmLTQ2NzktNGMyOS05ZDJkLThhMzI1ZjU3Y2VlOVwiIHx8XHJcbiAgICAgICAgICAgIG9yZ0lEID09PSBcIjZlMjgyMDFmLTQ2NzktNGMyOS05ZDJkLThhMzI1ZjU3Y2VlOVwiXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxpc3RTcGFjZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3BhY2VzRm9yT3JnKHVzZXJPcmdJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0U3BhY2VzRm9yT3JnKG9yZ0lEOiBzdHJpbmcpOiBQcm9taXNlPFNwYWNlW10+IHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID1cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0UHJvcGVydGllc0Zvck9yZ2FuaXNhdGlvbihvcmdJRCk7XHJcbiAgICAgICAgaWYgKHByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBzcGFjZXMgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkuc3BhY2UgJiYgIXByb3BlcnR5LnNwYWNlLmRlbGV0ZWRBdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYWNlcy5wdXNoKHByb3BlcnR5LnNwYWNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc3BhY2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjcmVhdGVTcGFjZSh2YWx1ZXM6IFNwYWNlLCBsYXllcj86IExheWVyKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBsb2MgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlU3BhY2UodmFsdWVzKTtcclxuICAgICAgICBjb25zdCB6b25lSW5wdXQgPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxyXG4gICAgICAgICAgICBzcGFjZUlEOiBsb2MuaWQsXHJcbiAgICAgICAgICAgIHN1cmZhY2U6IDAsXHJcbiAgICAgICAgICAgIGxheWVySUQ6IGxheWVyID8gbGF5ZXIuaWQgOiBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZVpvbmUoem9uZUlucHV0KTtcclxuICAgICAgICByZXR1cm4gbG9jO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHVwZGF0ZVNwYWNlKGlucHV0OiBhbnkpOiBQcm9taXNlPFNwYWNlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVTcGFjZShpbnB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0U3BhY2UoaWQ6IHN0cmluZyk6IFByb21pc2U8U3BhY2U+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldFNwYWNlKGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRNb2RlbDNERm9yU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBjb25zdCBjYXB0dXJlcyA9IGF3YWl0IHRoaXMuY2FwdHVyZVNlcnZpY2UuZ2V0Q2FwdHVyZXNCeVNwYWNlKHNwYWNlSUQpO1xyXG4gICAgICAgIGlmIChjYXB0dXJlcy5sZW5ndGggPiAwICYmIGNhcHR1cmVzWzBdLm5vZGVzLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVzWzBdLm5vZGVzLml0ZW1zWzBdLm1vZGVsM0Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZpc2l0IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBvcGVuIGZvciB0aGlzIHNwYWNlLlxyXG4gICAgICpcclxuICAgICAqIENhbGxlcnMgbmVlZCBtb3JlIHRoYW4gdGhlIG1vZGVsIHJlZmVyZW5jZSAtIHdoaWNoIHZpZXdlciB0aGUgdmlzaXQgd2FzIGNhcHR1cmVkIHdpdGggZGVjaWRlc1xyXG4gICAgICogd2hldGhlciBpdCBvcGVucyBpbiBNYXR0ZXJwb3J0IG9yIFRocmVlLmpzIC0gc28gdGhlIHdob2xlIHZpc2l0IGlzIHJldHVybmVkIGhlcmUuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGdldEFsbG93ZWRWaXNpdEZvclNwYWNlKHNwYWNlSUQ6IHN0cmluZyk6IFByb21pc2U8VmlzaXQ+IHtcclxuICAgICAgICBjb25zdCB2aXNpdHMgPSBhd2FpdCB0aGlzLmdldEFsbG93ZWRWaXNpdHNGb3JTcGFjZShzcGFjZUlEKTtcclxuICAgICAgICByZXR1cm4gdmlzaXRzLmxlbmd0aCA+IDAgPyB2aXNpdHNbMF0gOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlcnkgdmlzaXQgdGhlIGN1cnJlbnQgdXNlciBtYXkgb3BlbiBmb3IgdGhpcyBzcGFjZS5cclxuICAgICAqXHJcbiAgICAgKiBBIHNpdGUgY2FuIGNhcnJ5IG1vcmUgdGhhbiBvbmUgLSBhIE1hdHRlcnBvcnQgY2FwdHVyZSBwbHVzIG9uZSBvciBtb3JlIDNEIG1vZGVscyAtIGFuZCB0aGVcclxuICAgICAqIHZpZXdlciBvZmZlcnMgdGhlbSBhcyBhIGxpc3QsIHNvIHRoZSBjYWxsZXIgbmVlZHMgYWxsIG9mIHRoZW0gcmF0aGVyIHRoYW4ganVzdCB0aGUgZmlyc3QuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGdldEFsbG93ZWRWaXNpdHNGb3JTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPFZpc2l0W10+IHtcclxuICAgICAgICAvLyBObyBpbWFnZSBjb3VudDogdGhpcyBmZWVkcyB0aGUgdmlld2VyLCB3aGljaCBvbmx5IG5lZWRzIHRvIGtub3cgd2hpY2ggdmlzaXRzIGV4aXN0LiBBc2tpbmdcclxuICAgICAgICAvLyBmb3IgaXQgd291bGQgYWRkIGFuIFMzIGxpc3RpbmcgcGVyIG5vZGUgYmVmb3JlIGFueXRoaW5nIGNhbiBiZSBkcmF3bi5cclxuICAgICAgICBjb25zdCB2aXNpdHMgPSBhd2FpdCB0aGlzLnZpc2l0U2VydmljZS5nZXRWaXNpdHNGb3JTcGFjZUZvclVzZXIoXHJcbiAgICAgICAgICAgIHNwYWNlSUQsXHJcbiAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKCF2aXNpdHMgfHwgdmlzaXRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBUaGUgc3BhY2UncyBjaG9zZW4gY2FwdHVyZSBjb21lcyBmaXJzdCwgc28gY2FsbGVycyBjYW4gdGFrZSB0aGUgaGVhZCBvZiB0aGUgbGlzdCB3aXRob3V0XHJcbiAgICAgICAgLy8ga25vd2luZyB0aGUgcnVsZS4gV2l0aG91dCB0aGlzIHRoZSBvcmRlciBpcyB3aGF0ZXZlciBEeW5hbW9EQiByZXR1cm5zLCB3aGljaCBpcyBzdGFibGVcclxuICAgICAgICAvLyBlbm91Z2ggdG8gbG9vayBkZWxpYmVyYXRlIGFuZCBjYW4gY2hhbmdlIHdoZW4gYSBjYXB0dXJlIGlzIGFkZGVkIG9yIHJlbW92ZWQuXHJcbiAgICAgICAgY29uc3Qgc3BhY2UgPSBhd2FpdCB0aGlzLmdldFNwYWNlKHNwYWNlSUQpO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRJRCA9IHNwYWNlPy5kZWZhdWx0Q2FwdHVyZUlEO1xyXG4gICAgICAgIGlmICghZGVmYXVsdElEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2aXNpdHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNob3NlbiA9IHZpc2l0cy5maWx0ZXIoKHZpc2l0KSA9PiB2aXNpdC5jYXB0dXJlSUQgPT09IGRlZmF1bHRJRCk7XHJcbiAgICAgICAgcmV0dXJuIGNob3Nlbi5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgID8gWy4uLmNob3NlbiwgLi4udmlzaXRzLmZpbHRlcigodmlzaXQpID0+IHZpc2l0LmNhcHR1cmVJRCAhPT0gZGVmYXVsdElEKV1cclxuICAgICAgICAgICAgOiB2aXNpdHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHdoaWNoIGNhcHR1cmUgYSB2aXNpdG9yIG9wZW5zIGJ5IGRlZmF1bHQgZm9yIHRoaXMgc3BhY2UuXHJcbiAgICAgKlxyXG4gICAgICogUGFzcyBudWxsIHRvIGNsZWFyIGl0LiBXcml0aW5nIGEgc2luZ2xlIGZpZWxkIG9uIHRoZSBzcGFjZSBpcyB3aGF0IGtlZXBzIHRoZSBhbnN3ZXIgdW5pcXVlOlxyXG4gICAgICogdGhlcmUgaXMgbm90aGluZyB0byBjbGVhciBlbHNld2hlcmUsIGFuZCBubyB3YXkgZm9yIHR3byBjYXB0dXJlcyB0byBib3RoIGNsYWltIGl0LlxyXG4gICAgICovXHJcbiAgICBhc3luYyBzZXREZWZhdWx0Q2FwdHVyZShzcGFjZUlEOiBzdHJpbmcsIGNhcHR1cmVJRDogc3RyaW5nIHwgbnVsbCk6IFByb21pc2U8U3BhY2U+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVTcGFjZSh7IGlkOiBzcGFjZUlELCBkZWZhdWx0Q2FwdHVyZUlEOiBjYXB0dXJlSUQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0QWxsb3dlZE1vZGVsM0RGb3JTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIGNvbnN0IHZpc2l0ID0gYXdhaXQgdGhpcy5nZXRBbGxvd2VkVmlzaXRGb3JTcGFjZShzcGFjZUlEKTtcclxuICAgICAgICByZXR1cm4gdmlzaXQgPyB2aXNpdC5tb2RlbDNkIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzb2Z0RGVsZXRlU3BhY2Uoc3BhY2VJRDogc3RyaW5nKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVTcGFjZSh7XHJcbiAgICAgICAgICAgIGlkOiBzcGFjZUlELFxyXG4gICAgICAgICAgICBkZWxldGVkQXQ6IERhdGUubm93KCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgbWlzc2lvbnMgPSBhd2FpdCB0aGlzLm1pc3Npb25TZXJ2aWNlLmdldE1pc3Npb25zRm9yU3BhY2Uoc3BhY2VJRCk7XHJcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IHRoaXMucHJvcGVydHlTZXJ2aWNlLmxpc3RQcm9wZXJ0aWVzRm9yU3BhY2Uoc3BhY2VJRCk7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclNlcnZpY2UuaXNTUEFkbWluKCkpIHtcclxuICAgICAgICAgICAgLy8gZGVsZXRlIGFsbCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICAgICAgcHJvcGVydGllcy5tYXAoYXN5bmMgKHByb3BlcnR5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZGVsZXRlUHJvcGVydHkocHJvcGVydHkuaWQpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIC8vIGRlbGV0ZSBhbGwgbWlzc2lvbnNcclxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgICBtaXNzaW9ucy5tYXAoYXN5bmMgKG1pc3Npb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1pc3Npb25TZXJ2aWNlLnVwZGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBtaXNzaW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVkQXQ6IERhdGUubm93KCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBkZWxldGUgcHJvcGVydHkgZm9yIGN1cnJlbnQgT3JnXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPcmcgPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRPcmdhbmlzYXRpb24oc3BhY2VJRCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5VG9EZWxldGUgPSBwcm9wZXJ0aWVzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAocHJvcGVydHkpID0+IHByb3BlcnR5Lm9yZ2FuaXNhdGlvbklEID09PSBjdXJyZW50T3JnLmlkLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZiAocHJvcGVydHlUb0RlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZGVsZXRlUHJvcGVydHkocHJvcGVydHlUb0RlbGV0ZS5pZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbWlzc2lvbnNUb0RlbGV0ZSA9IG1pc3Npb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgIChtaXNzaW9uKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIG1pc3Npb24ub3JnYW5pc2F0aW9uSUQgPT09IGN1cnJlbnRPcmcuaWQgfHxcclxuICAgICAgICAgICAgICAgICAgICBtaXNzaW9uLm9yZGVyZWRPcmdhbmlzYXRpb25JRCA9PT0gY3VycmVudE9yZy5pZCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgICBtaXNzaW9uc1RvRGVsZXRlLm1hcChhc3luYyAobWlzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWlzc2lvblNlcnZpY2UudXBkYXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1pc3Npb24uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0aWNrZXRzID0gYXdhaXQgdGhpcy50aWNrZXRTZXJ2aWNlLmdldFRpY2tldHNCeVNwYWNlKHNwYWNlSUQpO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICB0aWNrZXRzLm1hcChhc3luYyAodGlja2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnRpY2tldFNlcnZpY2UuZGVsZXRlVGlja2V0KHRpY2tldCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZXF1aXBzID0gYXdhaXQgdGhpcy5lcXVpcFNlcnZpY2UuZ2V0RXF1aXBtZW50c0ZvclNwYWNlKHNwYWNlSUQpO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBlcXVpcHMubWFwKGFzeW5jIChlcSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5lcXVpcFNlcnZpY2UuZGVsZXRlRXF1aXBtZW50KGVxKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGF3YWl0IHRoaXMuZmVhdHVyZVNlcnZpY2UuZ2V0RmVhdHVyZXNGb3JTcGFjZShzcGFjZUlEKTtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgZmVhdHVyZXMubWFwKGFzeW5jIChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZlYXR1cmVTZXJ2aWNlLmRlbGV0ZUZlYXR1cmUoZmVhdHVyZSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIG1lYXN1cmVtZW50c1xyXG4gICAgICAgIGNvbnN0IG1lYXN1cmVzID0gYXdhaXQgdGhpcy5tZWFzdXJlbWVudFNlcnZpY2UuZ2V0TWVhc3VyZW1lbnRzRm9yU3BhY2VGb3JVc2VyKHNwYWNlSUQpO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBtZWFzdXJlcy5tYXAoYXN5bmMgKG1lYXN1cmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWVhc3VyZW1lbnRTZXJ2aWNlLmRlbGV0ZU1lYXN1cmVtZW50KG1lYXN1cmUpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIHJlbW92ZSBmcm9tIGxpc3RcclxuICAgICAgICB0aGlzLmxvY2F0aW9uc0ZvclVzZXIgPSB0aGlzLmxvY2F0aW9uc0ZvclVzZXIuZmlsdGVyKChzcGFjZSkgPT4gc3BhY2UuaWQgIT09IHNwYWNlSUQpO1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25VcGRhdGVkLm5leHQodGhpcy5sb2NhdGlvbnNGb3JVc2VyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIGN1cnJlbnQgdXNlciBjYW4gYXJjaGl2ZSBhIHNwYWNlIChvbmx5IGlmIGhpcyBvcmdhbmlzYXRpb24gaXMgb3duaW5nIHRoZSBwcm9wZXJ0eSAoUHJvcGVydHlUeXBlLlBST1BFUlRZKSlcclxuICAgICAqIEBwYXJhbSBzcGFjZUlEXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBhc3luYyBjYW5BcmNoaXZlU3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudE9yZyA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE9yZ2FuaXNhdGlvbihzcGFjZUlEKTtcclxuICAgICAgICBjb25zdCBvcmdQcm9wZXJ0aWVzID1cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0UHJvcGVydGllc0Zvck9yZ2FuaXNhdGlvbihcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRPcmcuaWQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBvcmdQcm9wZXJ0aWVzLmZpbmQoXHJcbiAgICAgICAgICAgIChwcm9wZXJ0eV8pID0+IHByb3BlcnR5Xy5zcGFjZUlEID09PSBzcGFjZUlELFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHByb3BlcnR5LnR5cGUgPT09IFByb3BlcnR5VHlwZS5QUk9QRVJUWSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
39
39
|
type: Inject,
|
|
40
40
|
args: ['currentAPIService']
|
|
41
41
|
}] }] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL3RlbXBsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxlQUFlO0lBQ3hCLEdBQUcsQ0FBTSxDQUFDLEtBQUs7SUFFZixZQUNpQyxXQUFnQjtRQUU3QyxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtJQUNaLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQWtCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQWU7UUFDckMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQWM7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekYsQ0FBQzt3R0FwQ1EsZUFBZSxrQkFJWixtQkFBbUI7NEdBSnRCLGVBQWUsY0FGWixNQUFNOzs0RkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBS1EsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBWaXNpdFRlbXBsYXRlIH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVTZXJ2aWNlIHtcclxuICAgIEFQSTogYW55OyAvL0FXU1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLUNSVUQtLS1cclxuICAgIGFzeW5jIGNyZWF0ZSh0ZW1wbGF0ZTogVmlzaXRUZW1wbGF0ZSk6IFByb21pc2U8VmlzaXRUZW1wbGF0ZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlVmlzaXRUZW1wbGF0ZSh0ZW1wbGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdXBkYXRlKHRlbXBsYXRlOiBhbnkpOiBQcm9taXNlPFZpc2l0VGVtcGxhdGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZVZpc2l0VGVtcGxhdGUodGVtcGxhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRldGVsZSh0ZW1wbGF0ZUlEOiBzdHJpbmcpOiBQcm9taXNlPFZpc2l0VGVtcGxhdGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZVZpc2l0VGVtcGxhdGUoe2lkOnRlbXBsYXRlSUR9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzb2Z0RGVsZXRlKHRlbXBsYXRlSUQ6IHN0cmluZyk6IFByb21pc2U8VmlzaXRUZW1wbGF0ZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7aWQ6IHRlbXBsYXRlSUQsIGRlbGV0ZWRBdDogRGF0ZS5ub3coKX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldCh0ZW1wbGF0ZUlEOiBzdHJpbmcpOiBQcm9taXNlPFZpc2l0VGVtcGxhdGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldFZpc2l0VGVtcGxhdGUodGVtcGxhdGVJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0VGVtcGxhdGVzQnlTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPFZpc2l0VGVtcGxhdGVbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVGVtcGxhdGVzQnlTcGFjZShzcGFjZUlEKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuaXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldFRlbXBsYXRlc0J5Wm9uZSh6b25lSUQ6IHN0cmluZyk6IFByb21pc2U8VmlzaXRUZW1wbGF0ZVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5UZW1wbGF0ZXNCeVpvbmUoem9uZUlEKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuaXRlbXMpO1xyXG4gICAgfVxyXG59Il19
|