io.parrots
Version:
Parrots.io App
164 lines (163 loc) • 18.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { RequestOptions } from '@angular/http';
import { AbstractServerResource } from 'com.phloxui';
export class MeResource extends AbstractServerResource {
/**
* @param {?} connectionMgr
*/
constructor(connectionMgr) {
super(connectionMgr);
this.basePath = './me';
}
/**
* @return {?}
*/
getAccountInfo() {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath;
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
let /** @type {?} */ responseProm = this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs);
if (responseProm != null && typeof responseProm !== 'undefined') {
return new Promise((resolve, reject) => {
responseProm.then((response) => {
resolve(response);
}, (error) => {
reject(error);
});
});
}
}
return new Promise((resolve, reject) => {
resolve(null);
});
}
/**
* @return {?}
*/
getAccountAuthenticationid() {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath + "?fetchAuthenIds=true&fetchFields=address.*,address.addressFormat.*,address.fieldValue.countrySubdivision.*,address.addressFormat.field.countrySubdivisionType.*";
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @return {?}
*/
addAccountAuthenticationid(body) {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath + "/account/authenid/oauth";
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} accountUUID
* @param {?} authenProvider
* @param {?} authenProviderUserId
* @return {?}
*/
removeAccountAuthenticationid(accountUUID, authenProvider, authenProviderUserId) {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath + "/account/authenid/oauth";
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
requestOptionsArgs.body = {
userId: authenProviderUserId,
authenProvider: authenProvider
};
return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @return {?}
*/
accountChangePassword(body) {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath + "/account/changepassword";
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} sessionId
* @return {?}
*/
logoutWithHttpInfo(sessionId) {
if (sessionId === null || sessionId === undefined) {
return Promise.reject(null);
}
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath + "/session/" + sessionId;
//! for testing
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @return {?}
*/
checkTimeout() {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath;
//! for testing
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
let /** @type {?} */ responseProm = this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs);
if (responseProm != null && typeof responseProm !== 'undefined') {
return new Promise((resolve, reject) => {
responseProm.then((response) => {
resolve(true);
}, (error) => {
if (error.status === 401 || error.status === 500) {
resolve(false);
}
else {
reject(error);
}
});
});
}
}
return new Promise((resolve, reject) => {
resolve(null);
});
}
/**
* @return {?}
*/
getAddress() {
if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') {
let /** @type {?} */ url = this.basePath + "/account/address";
//! for testing
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
}
function MeResource_tsickle_Closure_declarations() {
/** @type {?} */
MeResource.prototype.basePath;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVSZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lvLnBhcnJvdHMvIiwic291cmNlcyI6WyJsaWIvc2hhcmUvcmVzb3VyY2UvTWVSZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUEyQixjQUFjLEVBQTJFLE1BQU0sZUFBZSxDQUFDO0FBRWpKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxNQUFNLGlCQUFrQixTQUFRLHNCQUFzQjs7OztJQUlwRCxZQUFZLGFBQWlDO1FBQzNDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFISixNQUFNO0tBSXhCOzs7O0lBRU0sY0FBYztRQUNuQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3RSxxQkFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVoQyxxQkFBSSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQzlDLHFCQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUUvRSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sWUFBWSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtvQkFDckMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO3dCQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ25CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNK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QyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTt3QkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNmLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDWCxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDaEI7d0JBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUNmO3FCQUNGLENBQUMsQ0FBQztpQkFDSixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNmLENBQUMsQ0FBQzs7Ozs7SUFJRSxVQUFVO1FBQ2YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0UscUJBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7O1lBR3JELHFCQUFJLGtCQUFrQixHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFFOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3BFO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3Qjs7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHAsIFJlc3BvbnNlLCBIZWFkZXJzLCBSZXF1ZXN0T3B0aW9ucywgUmVxdWVzdE9wdGlvbnNBcmdzLCBVUkxTZWFyY2hQYXJhbXMsIFJlc3BvbnNlQ29udGVudFR5cGUsIFJlcXVlc3RNZXRob2QgfSBmcm9tICdAYW5ndWxhci9odHRwJztcbmltcG9ydCB7IElDb25uZWN0aW9uTWFuYWdlciB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IEFic3RyYWN0U2VydmVyUmVzb3VyY2UgfSBmcm9tICdjb20ucGhsb3h1aSc7XG5cbmV4cG9ydCBjbGFzcyBNZVJlc291cmNlIGV4dGVuZHMgQWJzdHJhY3RTZXJ2ZXJSZXNvdXJjZSB7XG5cbiAgcHJpdmF0ZSBiYXNlUGF0aCA9ICcuL21lJztcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uTWdyOiBJQ29ubmVjdGlvbk1hbmFnZXIpIHtcbiAgICBzdXBlcihjb25uZWN0aW9uTWdyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBY2NvdW50SW5mbygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGg7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcbiAgICAgIGxldCByZXNwb25zZVByb20gPSB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcblxuICAgICAgaWYgKHJlc3BvbnNlUHJvbSAhPSBudWxsICYmIHR5cGVvZiByZXNwb25zZVByb20gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgcmVzcG9uc2VQcm9tLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjb3VudEF1dGhlbnRpY2F0aW9uaWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCI/ZmV0Y2hBdXRoZW5JZHM9dHJ1ZSZmZXRjaEZpZWxkcz1hZGRyZXNzLiosYWRkcmVzcy5hZGRyZXNzRm9ybWF0LiosYWRkcmVzcy5maWVsZFZhbHVlLmNvdW50cnlTdWJkaXZpc2lvbi4qLGFkZHJlc3MuYWRkcmVzc0Zvcm1hdC5maWVsZC5jb3VudHJ5U3ViZGl2aXNpb25UeXBlLipcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkQWNjb3VudEF1dGhlbnRpY2F0aW9uaWQoYm9keTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvYWNjb3VudC9hdXRoZW5pZC9vYXV0aFwiO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IucG9zdFdpdGhIdHRwSW5mbyh1cmwsIGJvZHksIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQWNjb3VudEF1dGhlbnRpY2F0aW9uaWQoYWNjb3VudFVVSUQ6IHN0cmluZywgYXV0aGVuUHJvdmlkZXI6IHN0cmluZywgYXV0aGVuUHJvdmlkZXJVc2VySWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiL2FjY291bnQvYXV0aGVuaWQvb2F1dGhcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXF1ZXN0T3B0aW9uc0FyZ3MuYm9keSA9IHtcbiAgICAgICAgdXNlcklkOiBhdXRoZW5Qcm92aWRlclVzZXJJZCxcbiAgICAgICAgYXV0aGVuUHJvdmlkZXI6IGF1dGhlblByb3ZpZGVyXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmRlbGV0ZVdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWNjb3VudENoYW5nZVBhc3N3b3JkKGJvZHk6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiL2FjY291bnQvY2hhbmdlcGFzc3dvcmRcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLnBvc3RXaXRoSHR0cEluZm8odXJsLCBib2R5LCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cblxuICBwdWJsaWMgbG9nb3V0V2l0aEh0dHBJbmZvKHNlc3Npb25JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIGlmIChzZXNzaW9uSWQgPT09IG51bGwgfHwgc2Vzc2lvbklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvc2Vzc2lvbi9cIiArIHNlc3Npb25JZDtcblxuICAgICAgLy8hIGZvciB0ZXN0aW5nXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZGVsZXRlV2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZWNrVGltZW91dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGg7XG5cbiAgICAgIC8vISBmb3IgdGVzdGluZ1xuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICBsZXQgcmVzcG9uc2VQcm9tID0gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG5cbiAgICAgIGlmIChyZXNwb25zZVByb20gIT0gbnVsbCAmJiB0eXBlb2YgcmVzcG9uc2VQcm9tICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIHJlc3BvbnNlUHJvbS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgZ2V0QWRkcmVzcygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGggKyBcIi9hY2NvdW50L2FkZHJlc3NcIjtcblxuICAgICAgLy8hIGZvciB0ZXN0aW5nXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxufVxuIl19