New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@datorama/akita-ng-entity-service

Package Overview
Dependencies
Maintainers
2
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@datorama/akita-ng-entity-service - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

108

bundles/datorama-akita-ng-entity-service.umd.js

@@ -5,3 +5,3 @@ (function (global, factory) {

(global = global || self, factory((global.datorama = global.datorama || {}, global.datorama['akita-ng-entity-service'] = {}), global.akita, global.rxjs, global.ng.core, global.ng.common.http, global.rxjs.operators));
}(this, function (exports, akita, rxjs, core, http, operators) { 'use strict';
}(this, (function (exports, akita, rxjs, core, http, operators) { 'use strict';

@@ -71,5 +71,14 @@ /**

];
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = core.defineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
return NgEntityServiceNotifier;
}());
if (false) {
/**
* @type {?}
* @private
*/
NgEntityServiceNotifier.prototype.dispatcher;
/** @type {?} */
NgEntityServiceNotifier.prototype.action$;
}

@@ -192,5 +201,14 @@ /**

];
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = core.defineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
return NgEntityServiceLoader;
}());
if (false) {
/**
* @type {?}
* @private
*/
NgEntityServiceLoader.prototype.dispatcher;
/** @type {?} */
NgEntityServiceLoader.prototype.loading$;
}

@@ -217,2 +235,12 @@ var __read = (this && this.__read) || function (o, n) {

};
/**
* @record
*/
function NgEntityServiceGlobalConfig() { }
if (false) {
/** @type {?|undefined} */
NgEntityServiceGlobalConfig.prototype.baseUrl;
/** @type {?|undefined} */
NgEntityServiceGlobalConfig.prototype.httpMethods;
}
/** @type {?} */

@@ -236,3 +264,2 @@ var NG_ENTITY_SERVICE_CONFIG = new core.InjectionToken('NgEntityServiceGlobalConfig');

function mergeDeep(target) {
var _a, _b;
var sources = [];

@@ -242,2 +269,3 @@ for (var _i = 1; _i < arguments.length; _i++) {

}
var _a, _b;
if (!sources.length)

@@ -429,2 +457,11 @@ return target;

/**
* @return {?}
*/
NgEntityService.prototype.getConfig = /**
* @return {?}
*/
function () {
return this.mergedConfig;
};
/**
* @template T

@@ -779,3 +816,64 @@ * @param {?=} idOrConfig

}(akita.EntityService));
if (false) {
/** @type {?} */
NgEntityService.prototype.baseUrl;
/** @type {?} */
NgEntityService.prototype.loader;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.http;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.notifier;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.globalConfig;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.mergedConfig;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.dispatchSuccess;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.dispatchError;
/**
* @type {?}
* @protected
*/
NgEntityService.prototype.store;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.config;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function NgEntityServiceParams() { }
if (false) {
/** @type {?|undefined} */
NgEntityServiceParams.prototype.baseUrl;
/** @type {?|undefined} */
NgEntityServiceParams.prototype.resourceName;
}
exports.HttpMethod = HttpMethod;

@@ -799,3 +897,3 @@ exports.NG_ENTITY_SERVICE_CONFIG = NG_ENTITY_SERVICE_CONFIG;

}));
})));
//# sourceMappingURL=datorama-akita-ng-entity-service.umd.js.map

2

bundles/datorama-akita-ng-entity-service.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@datorama/akita"),require("rxjs"),require("@angular/core"),require("@angular/common/http"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@datorama/akita-ng-entity-service",["exports","@datorama/akita","rxjs","@angular/core","@angular/common/http","rxjs/operators"],e):e(((t=t||self).datorama=t.datorama||{},t.datorama["akita-ng-entity-service"]={}),t.akita,t.rxjs,t.ng.core,t.ng.common.http,t.rxjs.operators)}(this,function(t,e,r,o,n,i){"use strict";var s={GET:"GET",POST:"POST",PUT:"PUT",PATCH:"PATCH",DELETE:"DELETE"},a=function(){function t(){this.dispatcher=new r.Subject,this.action$=this.dispatcher.asObservable()}return t.prototype.dispatch=function(t){this.dispatcher.next(t)},t.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),c=function(){function t(){this.dispatcher=new r.Subject,this.loading$=this.dispatcher.asObservable()}return t.prototype.dispatch=function(t){this.dispatcher.next(t)},t.prototype.loadersFor=function(t){var r=this,o=i.filter(function(e){var r=e.storeName;return!t||r===t}),n=function(t){return i.filter(function(r){var o=r.method;return e.isFunction(t)?t(o):o===t})},a=function(t){return r.loading$.pipe(o,n(t),i.map(function(t){return t.loading}))},c=function(t,e){return r.loading$.pipe(o,n(e),i.filter(function(e){return e.entityId===t}),i.map(function(t){return t.loading}))};return{get$:a(s.GET),add$:a(s.POST),update$:a(function(t){return t===s.PUT||t===s.PATCH}),delete$:a(s.DELETE),getEntity:function(t){return c(t,s.GET)},updateEntity:function(t){return c(t,function(t){return t===s.PUT||t===s.PATCH})},deleteEntity:function(t){return c(t,s.DELETE)}}},t.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),u=this&&this.__read||function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var o,n,i=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(a){n={error:a}}finally{try{o&&!o.done&&(r=i["return"])&&r.call(i)}finally{if(n)throw n.error}}return s},p=this&&this.__spread||function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(u(arguments[e]));return t},d=new o.InjectionToken("NgEntityServiceGlobalConfig"),f={httpMethods:{GET:s.GET,POST:s.POST,PATCH:s.PATCH,PUT:s.PUT,DELETE:s.DELETE}};function h(t){for(var r,o,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];if(!n.length)return t;var s=n.shift();if(e.isObject(t)&&e.isObject(s))for(var a in s)e.isObject(s[a])?(t[a]||Object.assign(t,((r={})[a]={},r)),h(t[a],s[a])):Object.assign(t,((o={})[a]=s[a],o));return h.apply(void 0,p([t],n))}function l(t){return e.isNumber(t)||e.isString(t)}function g(t,e){return function(r){var o=r.payload,n=r.method,i=r.successMsg;e.dispatch({type:"success",storeName:t,payload:o,method:n,successMsg:i})}}function m(t,e){return function(r){var o=r.payload,n=r.method,i=r.errorMsg;e.dispatch({type:"error",storeName:t,payload:o,method:n,errorMsg:i})}}var y,E=this&&this.__extends||(y=function(t,e){return(y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)},function(t,e){function r(){this.constructor=t}y(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),v=function(t){return i.map(function(e){return(t||{}).mapResponseFn?t.mapResponseFn(e):e})},b=function(t){function u(e,r){void 0===r&&(r={});var i=t.call(this)||this;return i.store=e,i.config=r,i.globalConfig={},i.http=o.inject(n.HttpClient),i.loader=o.inject(c),i.notifier=o.inject(a),i.globalConfig=o.inject(d),i.mergedConfig=h(f,i.globalConfig,r),i.dispatchSuccess=g(i.store.storeName,i.notifier),i.dispatchError=m(i.store.storeName,i.notifier),i}return E(u,t),Object.defineProperty(u.prototype,"api",{get:function(){return(this.baseUrl||this.getConfigValue("baseUrl"))+"/"+this.resourceName},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"resourceName",{get:function(){return this.getConfigValue("resourceName")||this.store.storeName},enumerable:!0,configurable:!0}),u.prototype.setBaseUrl=function(t){this.baseUrl=t},u.prototype.getHttp=function(){return this.http},u.prototype.get=function(t,e){var r,o=this,n=l(t),a=(n?e:t)||{},c=this.getHttpMethod(s.GET);return r=a.url?a.url:n?this.api+"/"+t:this.api,this.loader.dispatch({method:c,loading:!0,entityId:n?t:null,storeName:this.store.storeName}),this.http[c.toLowerCase()](r,a).pipe(v(a),i.tap(function(e){n?o.store.upsert(t,e):a.append?o.store.add(e):a.upsert?o.store.upsertMany(e):o.store.set(e),o.dispatchSuccess({method:c,payload:e,successMsg:a.successMsg})}),i.catchError(function(t){return o.handleError(c,t,a.errorMsg)}),i.finalize(function(){o.loader.dispatch({method:c,loading:!1,storeName:o.store.storeName})}))},u.prototype.add=function(t,e){var r=this,o=this.getHttpMethod(s.POST);return this.loader.dispatch({method:o,loading:!0,storeName:this.store.storeName}),this.http[o.toLowerCase()](this.resolveUrl(e),t,e).pipe(v(e),i.tap(function(t){r.store.add(t,e),r.dispatchSuccess({method:o,payload:t,successMsg:e&&e.successMsg})}),i.catchError(function(t){return r.handleError(o,t,e&&e.errorMsg)}),i.finalize(function(){r.loader.dispatch({method:o,loading:!1,storeName:r.store.storeName})}))},u.prototype.update=function(t,e,r){var o=this,n=r&&r.method?r.method:this.getHttpMethod(s.PUT);return this.loader.dispatch({method:n,loading:!0,entityId:t,storeName:this.store.storeName}),this.http[n.toLocaleLowerCase()](this.resolveUrl(r,t),e,r).pipe(v(r),i.tap(function(e){o.store.update(t,e),o.dispatchSuccess({method:n,payload:e,successMsg:r&&r.successMsg})}),i.catchError(function(t){return o.handleError(n,t,r&&r.errorMsg)}),i.finalize(function(){o.loader.dispatch({method:n,loading:!1,entityId:t,storeName:o.store.storeName})}))},u.prototype["delete"]=function(t,e){var r=this,o=this.getHttpMethod(s.DELETE);return this.loader.dispatch({method:o,loading:!0,entityId:t,storeName:this.store.storeName}),this.http[o.toLowerCase()](this.resolveUrl(e,t),e).pipe(v(e),i.tap(function(n){r.store.remove(t),r.dispatchSuccess({method:o,payload:n,successMsg:e&&e.successMsg})}),i.catchError(function(t){return r.handleError(o,t,e&&e.errorMsg)}),i.finalize(function(){r.loader.dispatch({method:o,loading:!1,entityId:t,storeName:r.store.storeName})}))},u.prototype.getHttpMethod=function(t){return this.mergedConfig.httpMethods[t]},u.prototype.getConfigValue=function(t){return this.constructor[t]||this.mergedConfig[t]},u.prototype.resolveUrl=function(t,r){var o=(t||{}).url;return e.isDefined(r)?o||this.api+"/"+r:o||this.api},u.prototype.handleError=function(t,e,o){return this.dispatchError({method:t,errorMsg:o,payload:e}),r.throwError(e)},u}(e.EntityService);t.HttpMethod=s,t.NG_ENTITY_SERVICE_CONFIG=d,t.NgEntityService=b,t.NgEntityServiceConfig=function(t){return void 0===t&&(t={}),function(e){t.baseUrl&&(e.baseUrl=t.baseUrl),t.resourceName&&(e.resourceName=t.resourceName)}},t.NgEntityServiceLoader=c,t.NgEntityServiceNotifier=a,t.defaultConfig=f,t.errorAction=m,t.filterMethod=function(t){return i.filter(function(e){return e.method===t})},t.filterStore=function(t){return i.filter(function(e){return e.storeName===t})},t.isID=l,t.mapResponse=v,t.mergeDeep=h,t.ofType=function(t){return i.filter(function(e){return e.type===t})},t.successAction=g,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@datorama/akita"),require("rxjs"),require("@angular/core"),require("@angular/common/http"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@datorama/akita-ng-entity-service",["exports","@datorama/akita","rxjs","@angular/core","@angular/common/http","rxjs/operators"],e):e(((t=t||self).datorama=t.datorama||{},t.datorama["akita-ng-entity-service"]={}),t.akita,t.rxjs,t.ng.core,t.ng.common.http,t.rxjs.operators)}(this,(function(t,e,r,o,n,i){"use strict";var s={GET:"GET",POST:"POST",PUT:"PUT",PATCH:"PATCH",DELETE:"DELETE"},a=function(){function t(){this.dispatcher=new r.Subject,this.action$=this.dispatcher.asObservable()}return t.prototype.dispatch=function(t){this.dispatcher.next(t)},t.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=o.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();var c=function(){function t(){this.dispatcher=new r.Subject,this.loading$=this.dispatcher.asObservable()}return t.prototype.dispatch=function(t){this.dispatcher.next(t)},t.prototype.loadersFor=function(t){var r=this,o=i.filter((function(e){var r=e.storeName;return!t||r===t})),n=function(t){return i.filter((function(r){var o=r.method;return e.isFunction(t)?t(o):o===t}))},a=function(t){return r.loading$.pipe(o,n(t),i.map((function(t){return t.loading})))},c=function(t,e){return r.loading$.pipe(o,n(e),i.filter((function(e){return e.entityId===t})),i.map((function(t){return t.loading})))};return{get$:a(s.GET),add$:a(s.POST),update$:a((function(t){return t===s.PUT||t===s.PATCH})),delete$:a(s.DELETE),getEntity:function(t){return c(t,s.GET)},updateEntity:function(t){return c(t,(function(t){return t===s.PUT||t===s.PATCH}))},deleteEntity:function(t){return c(t,s.DELETE)}}},t.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=o.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();var u=this&&this.__read||function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var o,n,i=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return s},p=this&&this.__spread||function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(u(arguments[e]));return t};var d=new o.InjectionToken("NgEntityServiceGlobalConfig"),f={httpMethods:{GET:s.GET,POST:s.POST,PATCH:s.PATCH,PUT:s.PUT,DELETE:s.DELETE}};function h(t){for(var r,o,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];if(!n.length)return t;var s=n.shift();if(e.isObject(t)&&e.isObject(s))for(var a in s)e.isObject(s[a])?(t[a]||Object.assign(t,((r={})[a]={},r)),h(t[a],s[a])):Object.assign(t,((o={})[a]=s[a],o));return h.apply(void 0,p([t],n))}function l(t){return e.isNumber(t)||e.isString(t)}function g(t,e){return function(r){var o=r.payload,n=r.method,i=r.successMsg;e.dispatch({type:"success",storeName:t,payload:o,method:n,successMsg:i})}}function m(t,e){return function(r){var o=r.payload,n=r.method,i=r.errorMsg;e.dispatch({type:"error",storeName:t,payload:o,method:n,errorMsg:i})}}var y,E=this&&this.__extends||(y=function(t,e){return(y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)},function(t,e){function r(){this.constructor=t}y(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),v=function(t){return i.map((function(e){return(t||{}).mapResponseFn?t.mapResponseFn(e):e}))},b=function(t){function u(e,r){void 0===r&&(r={});var i=t.call(this)||this;return i.store=e,i.config=r,i.globalConfig={},i.http=o.inject(n.HttpClient),i.loader=o.inject(c),i.notifier=o.inject(a),i.globalConfig=o.inject(d),i.mergedConfig=h(f,i.globalConfig,r),i.dispatchSuccess=g(i.store.storeName,i.notifier),i.dispatchError=m(i.store.storeName,i.notifier),i}return E(u,t),Object.defineProperty(u.prototype,"api",{get:function(){return(this.baseUrl||this.getConfigValue("baseUrl"))+"/"+this.resourceName},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"resourceName",{get:function(){return this.getConfigValue("resourceName")||this.store.storeName},enumerable:!0,configurable:!0}),u.prototype.setBaseUrl=function(t){this.baseUrl=t},u.prototype.getHttp=function(){return this.http},u.prototype.getConfig=function(){return this.mergedConfig},u.prototype.get=function(t,e){var r,o=this,n=l(t),a=(n?e:t)||{},c=this.getHttpMethod(s.GET);return r=a.url?a.url:n?this.api+"/"+t:this.api,this.loader.dispatch({method:c,loading:!0,entityId:n?t:null,storeName:this.store.storeName}),this.http[c.toLowerCase()](r,a).pipe(v(a),i.tap((function(e){n?o.store.upsert(t,e):a.append?o.store.add(e):a.upsert?o.store.upsertMany(e):o.store.set(e),o.dispatchSuccess({method:c,payload:e,successMsg:a.successMsg})})),i.catchError((function(t){return o.handleError(c,t,a.errorMsg)})),i.finalize((function(){o.loader.dispatch({method:c,loading:!1,storeName:o.store.storeName})})))},u.prototype.add=function(t,e){var r=this,o=this.getHttpMethod(s.POST);return this.loader.dispatch({method:o,loading:!0,storeName:this.store.storeName}),this.http[o.toLowerCase()](this.resolveUrl(e),t,e).pipe(v(e),i.tap((function(t){r.store.add(t,e),r.dispatchSuccess({method:o,payload:t,successMsg:e&&e.successMsg})})),i.catchError((function(t){return r.handleError(o,t,e&&e.errorMsg)})),i.finalize((function(){r.loader.dispatch({method:o,loading:!1,storeName:r.store.storeName})})))},u.prototype.update=function(t,e,r){var o=this,n=r&&r.method?r.method:this.getHttpMethod(s.PUT);return this.loader.dispatch({method:n,loading:!0,entityId:t,storeName:this.store.storeName}),this.http[n.toLocaleLowerCase()](this.resolveUrl(r,t),e,r).pipe(v(r),i.tap((function(e){o.store.update(t,e),o.dispatchSuccess({method:n,payload:e,successMsg:r&&r.successMsg})})),i.catchError((function(t){return o.handleError(n,t,r&&r.errorMsg)})),i.finalize((function(){o.loader.dispatch({method:n,loading:!1,entityId:t,storeName:o.store.storeName})})))},u.prototype.delete=function(t,e){var r=this,o=this.getHttpMethod(s.DELETE);return this.loader.dispatch({method:o,loading:!0,entityId:t,storeName:this.store.storeName}),this.http[o.toLowerCase()](this.resolveUrl(e,t),e).pipe(v(e),i.tap((function(n){r.store.remove(t),r.dispatchSuccess({method:o,payload:n,successMsg:e&&e.successMsg})})),i.catchError((function(t){return r.handleError(o,t,e&&e.errorMsg)})),i.finalize((function(){r.loader.dispatch({method:o,loading:!1,entityId:t,storeName:r.store.storeName})})))},u.prototype.getHttpMethod=function(t){return this.mergedConfig.httpMethods[t]},u.prototype.getConfigValue=function(t){return this.constructor[t]||this.mergedConfig[t]},u.prototype.resolveUrl=function(t,r){var o=(t||{}).url;return e.isDefined(r)?o||this.api+"/"+r:o||this.api},u.prototype.handleError=function(t,e,o){return this.dispatchError({method:t,errorMsg:o,payload:e}),r.throwError(e)},u}(e.EntityService);t.HttpMethod=s,t.NG_ENTITY_SERVICE_CONFIG=d,t.NgEntityService=b,t.NgEntityServiceConfig=function(t){return void 0===t&&(t={}),function(e){t.baseUrl&&(e.baseUrl=t.baseUrl),t.resourceName&&(e.resourceName=t.resourceName)}},t.NgEntityServiceLoader=c,t.NgEntityServiceNotifier=a,t.defaultConfig=f,t.errorAction=m,t.filterMethod=function(t){return i.filter((function(e){return e.method===t}))},t.filterStore=function(t){return i.filter((function(e){return e.storeName===t}))},t.isID=l,t.mapResponse=v,t.mergeDeep=h,t.ofType=function(t){return i.filter((function(e){return e.type===t}))},t.successAction=g,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=datorama-akita-ng-entity-service.umd.min.js.map

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"mapResponse":{"__symbolic":"error","message":"Lambda not supported","line":25,"character":27,"module":"./lib/ng-entity.service"},"NgEntityService":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@datorama/akita","name":"EntityService","line":28,"character":66},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EntityStore","module":"@datorama/akita","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":40,"character":43,"context":{"typeName":"S"},"module":"./lib/ng-entity.service"}]},{"__symbolic":"reference","name":"NgEntityServiceParams"}]}],"setBaseUrl":[{"__symbolic":"method"}],"getHttp":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getHttpMethod":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"resolveUrl":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}]}},"NgEntityServiceGlobalConfig":{"__symbolic":"interface"},"NG_ENTITY_SERVICE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":44},"arguments":["NgEntityServiceGlobalConfig"]},"defaultConfig":{"httpMethods":{"GET":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"GET"},"POST":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"POST"},"PATCH":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"PATCH"},"PUT":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"PUT"},"DELETE":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"DELETE"}}},"mergeDeep":{"__symbolic":"function"},"NgEntityServiceConfig":{"__symbolic":"function","parameters":["config"],"defaults":[{}],"value":{"__symbolic":"error","message":"Lambda not supported","line":47,"character":9,"module":"./lib/ng-entity-service.config"}},"HttpMethod":{"GET":"GET","POST":"POST","PUT":"PUT","PATCH":"PATCH","DELETE":"DELETE"},"ActionType":{"__symbolic":"interface"},"EntityServiceAction":{"__symbolic":"interface"},"ofType":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":22,"module":"./lib/ng-entity-service-notifier"},"filterMethod":{"__symbolic":"error","message":"Lambda not supported","line":24,"character":28,"module":"./lib/ng-entity-service-notifier"},"filterStore":{"__symbolic":"error","message":"Lambda not supported","line":27,"character":27,"module":"./lib/ng-entity-service-notifier"},"NgEntityServiceNotifier":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"dispatch":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"isID":{"__symbolic":"function","parameters":["idOrConfig"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@datorama/akita","name":"isNumber","line":3,"character":9},"arguments":[{"__symbolic":"reference","name":"idOrConfig"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@datorama/akita","name":"isString","line":3,"character":33},"arguments":[{"__symbolic":"reference","name":"idOrConfig"}]}}},"NgEntityServiceParams":{"__symbolic":"interface"},"Msg":{"__symbolic":"interface"},"HttpConfig":{"__symbolic":"interface"},"NgEntityServiceLoader":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"dispatch":[{"__symbolic":"method"}],"loadersFor":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"successAction":{"__symbolic":"function","parameters":["storeName","notifier"],"value":{"__symbolic":"error","message":"Lambda not supported","line":6,"character":9,"module":"./lib/action-factory"}},"errorAction":{"__symbolic":"function","parameters":["storeName","notifier"],"value":{"__symbolic":"error","message":"Lambda not supported","line":21,"character":9,"module":"./lib/action-factory"}}},"origins":{"mapResponse":"./lib/ng-entity.service","NgEntityService":"./lib/ng-entity.service","NgEntityServiceGlobalConfig":"./lib/ng-entity-service.config","NG_ENTITY_SERVICE_CONFIG":"./lib/ng-entity-service.config","defaultConfig":"./lib/ng-entity-service.config","mergeDeep":"./lib/ng-entity-service.config","NgEntityServiceConfig":"./lib/ng-entity-service.config","HttpMethod":"./lib/ng-entity-service-notifier","ActionType":"./lib/ng-entity-service-notifier","EntityServiceAction":"./lib/ng-entity-service-notifier","ofType":"./lib/ng-entity-service-notifier","filterMethod":"./lib/ng-entity-service-notifier","filterStore":"./lib/ng-entity-service-notifier","NgEntityServiceNotifier":"./lib/ng-entity-service-notifier","isID":"./lib/helpers","NgEntityServiceParams":"./lib/types","Msg":"./lib/types","HttpConfig":"./lib/types","NgEntityServiceLoader":"./lib/ng-entity-service.loader","successAction":"./lib/action-factory","errorAction":"./lib/action-factory"},"importAs":"@datorama/akita-ng-entity-service"}
{"__symbolic":"module","version":4,"metadata":{"mapResponse":{"__symbolic":"error","message":"Lambda not supported","line":25,"character":27,"module":"./lib/ng-entity.service"},"NgEntityService":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@datorama/akita","name":"EntityService","line":28,"character":66},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EntityStore","module":"@datorama/akita","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":40,"character":43,"context":{"typeName":"S"},"module":"./lib/ng-entity.service"}]},{"__symbolic":"reference","name":"NgEntityServiceParams"}]}],"setBaseUrl":[{"__symbolic":"method"}],"getHttp":[{"__symbolic":"method"}],"getConfig":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getHttpMethod":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"resolveUrl":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}]}},"NgEntityServiceGlobalConfig":{"__symbolic":"interface"},"NG_ENTITY_SERVICE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":44},"arguments":["NgEntityServiceGlobalConfig"]},"defaultConfig":{"httpMethods":{"GET":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"GET"},"POST":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"POST"},"PATCH":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"PATCH"},"PUT":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"PUT"},"DELETE":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"HttpMethod"},"member":"DELETE"}}},"mergeDeep":{"__symbolic":"function"},"NgEntityServiceConfig":{"__symbolic":"function","parameters":["config"],"defaults":[{}],"value":{"__symbolic":"error","message":"Lambda not supported","line":47,"character":9,"module":"./lib/ng-entity-service.config"}},"HttpMethod":{"GET":"GET","POST":"POST","PUT":"PUT","PATCH":"PATCH","DELETE":"DELETE"},"ActionType":{"__symbolic":"interface"},"EntityServiceAction":{"__symbolic":"interface"},"ofType":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":22,"module":"./lib/ng-entity-service-notifier"},"filterMethod":{"__symbolic":"error","message":"Lambda not supported","line":24,"character":28,"module":"./lib/ng-entity-service-notifier"},"filterStore":{"__symbolic":"error","message":"Lambda not supported","line":27,"character":27,"module":"./lib/ng-entity-service-notifier"},"NgEntityServiceNotifier":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"dispatch":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"isID":{"__symbolic":"function","parameters":["idOrConfig"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@datorama/akita","name":"isNumber","line":3,"character":9},"arguments":[{"__symbolic":"reference","name":"idOrConfig"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@datorama/akita","name":"isString","line":3,"character":33},"arguments":[{"__symbolic":"reference","name":"idOrConfig"}]}}},"NgEntityServiceParams":{"__symbolic":"interface"},"Msg":{"__symbolic":"interface"},"HttpConfig":{"__symbolic":"interface"},"NgEntityServiceLoader":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"dispatch":[{"__symbolic":"method"}],"loadersFor":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"successAction":{"__symbolic":"function","parameters":["storeName","notifier"],"value":{"__symbolic":"error","message":"Lambda not supported","line":6,"character":9,"module":"./lib/action-factory"}},"errorAction":{"__symbolic":"function","parameters":["storeName","notifier"],"value":{"__symbolic":"error","message":"Lambda not supported","line":21,"character":9,"module":"./lib/action-factory"}}},"origins":{"mapResponse":"./lib/ng-entity.service","NgEntityService":"./lib/ng-entity.service","NgEntityServiceGlobalConfig":"./lib/ng-entity-service.config","NG_ENTITY_SERVICE_CONFIG":"./lib/ng-entity-service.config","defaultConfig":"./lib/ng-entity-service.config","mergeDeep":"./lib/ng-entity-service.config","NgEntityServiceConfig":"./lib/ng-entity-service.config","HttpMethod":"./lib/ng-entity-service-notifier","ActionType":"./lib/ng-entity-service-notifier","EntityServiceAction":"./lib/ng-entity-service-notifier","ofType":"./lib/ng-entity-service-notifier","filterMethod":"./lib/ng-entity-service-notifier","filterStore":"./lib/ng-entity-service-notifier","NgEntityServiceNotifier":"./lib/ng-entity-service-notifier","isID":"./lib/helpers","NgEntityServiceParams":"./lib/types","Msg":"./lib/types","HttpConfig":"./lib/types","NgEntityServiceLoader":"./lib/ng-entity-service.loader","successAction":"./lib/action-factory","errorAction":"./lib/action-factory"},"importAs":"@datorama/akita-ng-entity-service"}

@@ -64,3 +64,3 @@ /**

];
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = i0.defineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
if (false) {

@@ -67,0 +67,0 @@ /**

@@ -105,3 +105,3 @@ /**

];
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = i0.defineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
if (false) {

@@ -108,0 +108,0 @@ /**

@@ -72,2 +72,8 @@ /**

/**
* @return {?}
*/
getConfig() {
return this.mergedConfig;
}
/**
* @template T

@@ -373,2 +379,2 @@ * @param {?=} idOrConfig

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEtbmctZW50aXR5LXNlcnZpY2UvIiwic291cmNlcyI6WyJsaWIvbmctZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxhQUFhLEVBS2IsU0FBUyxFQUNWLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUF1QixVQUFVLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsRUFDVCx3QkFBd0IsRUFFekIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTlELE1BQU0sT0FBTyxXQUFXOzs7O0FBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FDaEQsR0FBRzs7OztBQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUE7Ozs7QUFFOUUsTUFBTSxP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dGlvbnMsXG4gIEVudGl0eVNlcnZpY2UsXG4gIEVudGl0eVN0YXRlLFxuICBFbnRpdHlTdG9yZSxcbiAgZ2V0RW50aXR5VHlwZSxcbiAgZ2V0SURUeXBlLFxuICBpc0RlZmluZWRcbn0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDb25maWcsIE1zZywgTmdFbnRpdHlTZXJ2aWNlUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlQWN0aW9uLCBIdHRwTWV0aG9kLCBOZ0VudGl0eVNlcnZpY2VOb3RpZmllciB9IGZyb20gJy4vbmctZW50aXR5LXNlcnZpY2Utbm90aWZpZXInO1xuaW1wb3J0IHsgTmdFbnRpdHlTZXJ2aWNlTG9hZGVyIH0gZnJvbSAnLi9uZy1lbnRpdHktc2VydmljZS5sb2FkZXInO1xuaW1wb3J0IHtcbiAgZGVmYXVsdENvbmZpZyxcbiAgbWVyZ2VEZWVwLFxuICBOR19FTlRJVFlfU0VSVklDRV9DT05GSUcsXG4gIE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZ1xufSBmcm9tICcuL25nLWVudGl0eS1zZXJ2aWNlLmNvbmZpZyc7XG5pbXBvcnQgeyBpc0lEIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGVycm9yQWN0aW9uLCBzdWNjZXNzQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24tZmFjdG9yeSc7XG5cbmV4cG9ydCBjb25zdCBtYXBSZXNwb25zZSA9IChjb25maWc6IEh0dHBDb25maWcpID0+XG4gIG1hcChyZXMgPT4gKChjb25maWcgfHwge30pLm1hcFJlc3BvbnNlRm4gPyBjb25maWcubWFwUmVzcG9uc2VGbihyZXMpIDogcmVzKSk7XG5cbmV4cG9ydCBjbGFzcyBOZ0VudGl0eVNlcnZpY2U8UyBleHRlbmRzIEVudGl0eVN0YXRlID0gYW55PiBleHRlbmRzIEVudGl0eVNlcnZpY2U8Uz4ge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGxvYWRlcjogTmdFbnRpdHlTZXJ2aWNlTG9hZGVyO1xuXG4gIHByaXZhdGUgaHR0cDogSHR0cENsaWVudDtcbiAgcHJpdmF0ZSBub3RpZmllcjogTmdFbnRpdHlTZXJ2aWNlTm90aWZpZXI7XG4gIHByaXZhdGUgZ2xvYmFsQ29uZmlnOiBOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBtZXJnZWRDb25maWc6IE5nRW50aXR5U2VydmljZVBhcmFtcyAmIE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZztcblxuICBwcml2YXRlIGRpc3BhdGNoU3VjY2VzczogKGFjdGlvbjogUGFydGlhbDxFbnRpdHlTZXJ2aWNlQWN0aW9uPikgPT4gdm9pZDtcbiAgcHJpdmF0ZSBkaXNwYXRjaEVycm9yOiAoYWN0aW9uOiBQYXJ0aWFsPEVudGl0eVNlcnZpY2VBY3Rpb24+KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yZTogRW50aXR5U3RvcmU8Uz4sIHByaXZhdGUgY29uZmlnOiBOZ0VudGl0eVNlcnZpY2VQYXJhbXMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5odHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHRoaXMubG9hZGVyID0gaW5qZWN0KE5nRW50aXR5U2VydmljZUxvYWRlcik7XG4gICAgdGhpcy5ub3RpZmllciA9IGluamVjdChOZ0VudGl0eVNlcnZpY2VOb3RpZmllcik7XG4gICAgdGhpcy5nbG9iYWxDb25maWcgPSBpbmplY3QoTkdfRU5USVRZX1NFUlZJQ0VfQ09ORklHKTtcblxuICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gbWVyZ2VEZWVwKGRlZmF1bHRDb25maWcsIHRoaXMuZ2xvYmFsQ29uZmlnLCBjb25maWcpO1xuXG4gICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3MgPSBzdWNjZXNzQWN0aW9uKHRoaXMuc3RvcmUuc3RvcmVOYW1lLCB0aGlzLm5vdGlmaWVyKTtcbiAgICB0aGlzLmRpc3BhdGNoRXJyb3IgPSBlcnJvckFjdGlvbih0aGlzLnN0b3JlLnN0b3JlTmFtZSwgdGhpcy5ub3RpZmllcik7XG4gIH1cblxuICBnZXQgYXBpKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmwgfHwgdGhpcy5nZXRDb25maWdWYWx1ZSgnYmFzZVVybCcpfS8ke3RoaXMucmVzb3VyY2VOYW1lfWA7XG4gIH1cblxuICBnZXQgcmVzb3VyY2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldENvbmZpZ1ZhbHVlKCdyZXNvdXJjZU5hbWUnKSB8fCB0aGlzLnN0b3JlLnN0b3JlTmFtZTtcbiAgfVxuXG4gIHNldEJhc2VVcmwoYXBpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBhcGk7XG4gIH1cblxuICBnZXRIdHRwKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHA7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogR2V0IGFsbCBvciBvbmUgZW50aXR5IC0gQ3JlYXRlcyBhIEdFVCByZXF1ZXN0XG4gICAqXG4gICAqIHNlcnZpY2UuZ2V0KCkuc3Vic2NyaWJlKClcbiAgICogc2VydmljZS5nZXQoeyBoZWFkZXJzLCBwYXJhbXMsIHVybCB9KVxuICAgKlxuICAgKiBzZXJ2aWNlLmdldChpZClcbiAgICogc2VydmljZS5nZXQoaWQsIHsgaGVhZGVycywgcGFyYW1zLCB1cmwgfSlcbiAgICpcbiAgICovXG4gIGdldDxUPihpZD86IGdldElEVHlwZTxTPiwgY29uZmlnPzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbiB9ICYgTXNnKTogT2JzZXJ2YWJsZTxUPjtcbiAgZ2V0PFQ+KGNvbmZpZz86IEh0dHBDb25maWcgJiB7IGFwcGVuZD86IGJvb2xlYW4gfSAmIE1zZyk6IE9ic2VydmFibGU8VD47XG4gIGdldDxUPihcbiAgICBpZE9yQ29uZmlnPzogZ2V0SURUeXBlPFM+IHwgSHR0cENvbmZpZyxcbiAgICBjb25maWc/OiBIdHRwQ29uZmlnICYgeyBhcHBlbmQ/OiBib29sZWFuOyB1cHNlcnQ/OiBib29sZWFuIH0gJiBNc2dcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgbGV0IHVybDogc3RyaW5nO1xuICAgIGNvbnN0IGlzU2luZ2xlID0gaXNJRChpZE9yQ29uZmlnKTtcbiAgICBjb25zdCBfY29uZmlnOiBIdHRwQ29uZmlnICYgeyBhcHBlbmQ/OiBib29sZWFuOyB1cHNlcnQ/OiBib29sZWFuIH0gJiBNc2cgPSAoaXNTaW5nbGUgPyBjb25maWcgOiBpZE9yQ29uZmlnKSB8fCB7fTtcbiAgICBjb25zdCBtZXRob2QgPSB0aGlzLmdldEh0dHBNZXRob2QoSHR0cE1ldGhvZC5HRVQpO1xuXG4gICAgaWYgKF9jb25maWcudXJsKSB7XG4gICAgICB1cmwgPSBfY29uZmlnLnVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gaXNTaW5nbGUgPyBgJHt0aGlzLmFwaX0vJHtpZE9yQ29uZmlnfWAgOiB0aGlzLmFwaTtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICBtZXRob2QsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZW50aXR5SWQ6IGlzU2luZ2xlID8gaWRPckNvbmZpZyA6IG51bGwsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvd2VyQ2FzZSgpXSh1cmwsIF9jb25maWcpLnBpcGUoXG4gICAgICBtYXBSZXNwb25zZShfY29uZmlnKSxcbiAgICAgIHRhcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpc1NpbmdsZSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0KGlkT3JDb25maWcgYXMgZ2V0SURUeXBlPFM+LCBkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoX2NvbmZpZy5hcHBlbmQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuYWRkKGRhdGEpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoX2NvbmZpZy51cHNlcnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUudXBzZXJ0TWFueShkYXRhKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXQoZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3Moe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXlsb2FkOiBkYXRhLFxuICAgICAgICAgIHN1Y2Nlc3NNc2c6IF9jb25maWcuc3VjY2Vzc01zZ1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmhhbmRsZUVycm9yKG1ldGhvZCwgZXJyb3IsIF9jb25maWcuZXJyb3JNc2cpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQWRkIGEgbmV3IGVudGl0eSAtIENyZWF0ZXMgYSBQT1NUIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS5hZGQoZW50aXR5KVxuICAgKiBzZXJ2aWNlLmFkZChlbnRpdHksIGNvbmZpZylcbiAgICpcbiAgICovXG4gIGFkZDxUPihlbnRpdHk6IGdldEVudGl0eVR5cGU8Uz4sIGNvbmZpZz86IEh0dHBDb25maWcgJiBQaWNrPEFkZEVudGl0aWVzT3B0aW9ucywgJ3ByZXBlbmQnPiAmIE1zZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMuZ2V0SHR0cE1ldGhvZChIdHRwTWV0aG9kLlBPU1QpO1xuXG4gICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgbWV0aG9kLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIHN0b3JlTmFtZTogdGhpcy5zdG9yZS5zdG9yZU5hbWVcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvd2VyQ2FzZSgpXSh0aGlzLnJlc29sdmVVcmwoY29uZmlnKSwgZW50aXR5LCBjb25maWcpLnBpcGUoXG4gICAgICBtYXBSZXNwb25zZShjb25maWcpLFxuICAgICAgdGFwKChlbnRpdHk6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZChlbnRpdHksIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZW50aXR5LFxuICAgICAgICAgIHN1Y2Nlc3NNc2c6IGNvbmZpZyAmJiBjb25maWcuc3VjY2Vzc01zZ1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmhhbmRsZUVycm9yKG1ldGhvZCwgZXJyb3IsIGNvbmZpZyAmJiBjb25maWcuZXJyb3JNc2cpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVXBkYXRlIGFuIGVudGl0eSAtIENyZWF0ZXMgYSBQVVQvUEFUQ0ggcmVxdWVzdFxuICAgKlxuICAgKiBzZXJ2aWNlLnVwZGF0ZShpZCwgZW50aXR5KVxuICAgKiBzZXJ2aWNlLnVwZGF0ZShpZCwgZW50aXR5LCBjb25maWcpXG4gICAqXG4gICAqL1xuICB1cGRhdGU8VD4oXG4gICAgaWQ6IGdldElEVHlwZTxTPixcbiAgICBlbnRpdHk6IFBhcnRpYWw8Z2V0RW50aXR5VHlwZTxTPj4sXG4gICAgY29uZmlnPzogSHR0cENvbmZpZyAmIHsgbWV0aG9kOiBIdHRwTWV0aG9kLlBVVCB8IEh0dHBNZXRob2QuUEFUQ0ggfSAmIE1zZ1xuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBtZXRob2QgPSBjb25maWcgJiYgY29uZmlnLm1ldGhvZCA/IGNvbmZpZy5tZXRob2QgOiB0aGlzLmdldEh0dHBNZXRob2QoSHR0cE1ldGhvZC5QVVQpO1xuXG4gICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgbWV0aG9kLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVudGl0eUlkOiBpZCxcbiAgICAgIHN0b3JlTmFtZTogdGhpcy5zdG9yZS5zdG9yZU5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBbbWV0aG9kLnRvTG9jYWxlTG93ZXJDYXNlKCldKHRoaXMucmVzb2x2ZVVybChjb25maWcsIGlkKSwgZW50aXR5LCBjb25maWcpLnBpcGUoXG4gICAgICBtYXBSZXNwb25zZShjb25maWcpLFxuICAgICAgdGFwKGVudGl0eSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKGlkLCBlbnRpdHkgYXMgYW55KTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3Moe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXlsb2FkOiBlbnRpdHksXG4gICAgICAgICAgc3VjY2Vzc01zZzogY29uZmlnICYmIGNvbmZpZy5zdWNjZXNzTXNnXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IobWV0aG9kLCBlcnJvciwgY29uZmlnICYmIGNvbmZpZy5lcnJvck1zZykpLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVudGl0eUlkOiBpZCxcbiAgICAgICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGVsZXRlIGFuIGVudGl0eSAtIENyZWF0ZXMgYSBERUxFVEUgcmVxdWVzdFxuICAgKlxuICAgKiBzZXJ2aWNlLmRlbGV0ZShpZClcbiAgICogc2VydmljZS5kZWxldGUoaWQsIGNvbmZpZylcbiAgICpcbiAgICovXG4gIGRlbGV0ZTxUPihpZDogZ2V0SURUeXBlPFM+LCBjb25maWc/OiBIdHRwQ29uZmlnICYgTXNnKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuREVMRVRFKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlbnRpdHlJZDogaWQsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvd2VyQ2FzZSgpXSh0aGlzLnJlc29sdmVVcmwoY29uZmlnLCBpZCksIGNvbmZpZykucGlwZShcbiAgICAgIG1hcFJlc3BvbnNlKGNvbmZpZyksXG4gICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5yZW1vdmUoaWQpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoU3VjY2Vzcyh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBheWxvYWQ6IHJlcyxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBjb25maWcgJiYgY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBjb25maWcgJiYgY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgZW50aXR5SWQ6IGlkLFxuICAgICAgICAgIHN0b3JlTmFtZTogdGhpcy5zdG9yZS5zdG9yZU5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkgYXMgT2JzZXJ2YWJsZTxUPjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SHR0cE1ldGhvZCh0eXBlOiBIdHRwTWV0aG9kKSB7XG4gICAgcmV0dXJuIHRoaXMubWVyZ2VkQ29uZmlnLmh0dHBNZXRob2RzW3R5cGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25maWdWYWx1ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yW2tleV0gfHwgdGhpcy5tZXJnZWRDb25maWdba2V5XTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVVybChjb25maWc6IEh0dHBDb25maWcsIGlkPzogYW55KSB7XG4gICAgY29uc3QgY3VzdG9tVXJsID0gKGNvbmZpZyB8fCB7fSkudXJsO1xuICAgIGlmIChpc0RlZmluZWQoaWQpKSB7XG4gICAgICByZXR1cm4gY3VzdG9tVXJsIHx8IGAke3RoaXMuYXBpfS8ke2lkfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1c3RvbVVybCB8fCB0aGlzLmFwaTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IobWV0aG9kOiBIdHRwTWV0aG9kLCBlcnJvcjogYW55LCBlcnJvck1zZzogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNwYXRjaEVycm9yKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGVycm9yTXNnLFxuICAgICAgcGF5bG9hZDogZXJyb3JcbiAgICB9KTtcblxuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEtbmctZW50aXR5LXNlcnZpY2UvIiwic291cmNlcyI6WyJsaWIvbmctZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxhQUFhLEVBS2IsU0FBUyxFQUNWLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUF1QixVQUFVLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLFNBQVMsRUFDVCx3QkFBd0IsRUFFekIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTlELE1BQU0sT0FBTyxXQUFXOzs7O0FBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FDaEQsR0FBRzs7OztBQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUE7Ozs7QUFFOUUsTUFBTSxPQUFPLGVBQTZDLFNBQVEsYUFBZ0I7Ozs7O0lBWWhGLFlBQXNCLEtBQXFCLEVBQVUsU0FBZ0MsRUFBRTtRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURZLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBNEI7UUFOL0UsaUJBQVksR0FBZ0MsRUFBRSxDQUFDO1FBUXJELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7OztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xGLENBQUM7Ozs7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDOzs7O0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDOzs7O0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzs7Ozs7O0lBZUQsR0FBRyxDQUNELFVBQXNDLEVBQ3RDLE1BQWtFOztZQUU5RCxHQUFXOztjQUNULFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDOztjQUMzQixPQUFPLEdBQThELENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7O2NBQzNHLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFFakQsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2YsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDbkI7YUFBTTtZQUNMLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN6RDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ25CLE1BQU07WUFDTixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN0QyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1NBQ2hDLENBQUMsQ0FBQztRQUVILE9BQU8sbUJBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQ3BCLEdBQUc7Ozs7UUFBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2hCLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFBLFVBQVUsRUFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN0QjtxQkFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM3QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtZQUVELElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLE1BQU07Z0JBQ04sT0FBTyxFQUFFLElBQUk7Z0JBQ2IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2FBQy9CLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxFQUNGLFVBQVU7Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUMsRUFDdEUsUUFBUTs7O1FBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ25CLE1BQU07Z0JBQ04sT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FDSCxFQUFpQixDQUFDO0lBQ3JCLENBQUM7Ozs7Ozs7Ozs7Ozs7SUFVRCxHQUFHLENBQUksTUFBd0IsRUFBRSxNQUErRDs7Y0FDeEYsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUVsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNuQixNQUFNO1lBQ04sT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1NBQ2hDLENBQUMsQ0FBQztRQUNILE9BQU8sbUJBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ2xGLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFDbkIsR0FBRzs7OztRQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLE1BQU07Z0JBQ04sT0FBTyxFQUFFLE1BQU07Z0JBQ2YsVUFBVSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVTthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxFQUMvRSxRQUFROzs7UUFBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDbkIsTUFBTTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUNILEVBQWlCLENBQUM7SUFDckIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUFVRCxNQUFNLENBQ0osRUFBZ0IsRUFDaEIsTUFBaUMsRUFDakMsTUFBeUU7O2NBRW5FLE1BQU0sR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBRTNGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ25CLE1BQU07WUFDTixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLG1CQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM1RixXQUFXLENBQUMsTUFBTSxDQUFDLEVBQ25CLEdBQUc7Ozs7UUFBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLE1BQU07Z0JBQ04sT0FBTyxFQUFFLE1BQU07Z0JBQ2YsVUFBVSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVTthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxFQUMvRSxRQUFROzs7UUFBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDbkIsTUFBTTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUNILEVBQWlCLENBQUM7SUFDckIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQVVELE1BQU0sQ0FBSSxFQUFnQixFQUFFLE1BQXlCOztjQUM3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRXBELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ25CLE1BQU07WUFDTixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLG1CQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM5RSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQ25CLEdBQUc7Ozs7UUFBQyxHQUFHLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLE1BQU07Z0JBQ04sT0FBTyxFQUFFLEdBQUc7Z0JBQ1osVUFBVSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVTthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxFQUMvRSxRQUFROzs7UUFBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDbkIsTUFBTTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUNILEVBQWlCLENBQUM7SUFDckIsQ0FBQzs7Ozs7O0lBRU8sYUFBYSxDQUFDLElBQWdCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7Ozs7O0lBRU8sY0FBYyxDQUFDLEdBQVc7UUFDaEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7OztJQUVPLFVBQVUsQ0FBQyxNQUFrQixFQUFFLEVBQVE7O2NBQ3ZDLFNBQVMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHO1FBQ3BDLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sU0FBUyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUN6QztRQUVELE9BQU8sU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsQ0FBQzs7Ozs7Ozs7SUFFTyxXQUFXLENBQUMsTUFBa0IsRUFBRSxLQUFVLEVBQUUsUUFBZ0I7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNO1lBQ04sUUFBUTtZQUNSLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGOzs7SUFsUUMsa0NBQWdCOztJQUNoQixpQ0FBOEI7Ozs7O0lBRTlCLCtCQUF5Qjs7Ozs7SUFDekIsbUNBQTBDOzs7OztJQUMxQyx1Q0FBdUQ7Ozs7O0lBQ3ZELHVDQUEwRTs7Ozs7SUFFMUUsMENBQXdFOzs7OztJQUN4RSx3Q0FBc0U7Ozs7O0lBRTFELGdDQUErQjs7Ozs7SUFBRSxpQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGRFbnRpdGllc09wdGlvbnMsXG4gIEVudGl0eVNlcnZpY2UsXG4gIEVudGl0eVN0YXRlLFxuICBFbnRpdHlTdG9yZSxcbiAgZ2V0RW50aXR5VHlwZSxcbiAgZ2V0SURUeXBlLFxuICBpc0RlZmluZWRcbn0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDb25maWcsIE1zZywgTmdFbnRpdHlTZXJ2aWNlUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlQWN0aW9uLCBIdHRwTWV0aG9kLCBOZ0VudGl0eVNlcnZpY2VOb3RpZmllciB9IGZyb20gJy4vbmctZW50aXR5LXNlcnZpY2Utbm90aWZpZXInO1xuaW1wb3J0IHsgTmdFbnRpdHlTZXJ2aWNlTG9hZGVyIH0gZnJvbSAnLi9uZy1lbnRpdHktc2VydmljZS5sb2FkZXInO1xuaW1wb3J0IHtcbiAgZGVmYXVsdENvbmZpZyxcbiAgbWVyZ2VEZWVwLFxuICBOR19FTlRJVFlfU0VSVklDRV9DT05GSUcsXG4gIE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZ1xufSBmcm9tICcuL25nLWVudGl0eS1zZXJ2aWNlLmNvbmZpZyc7XG5pbXBvcnQgeyBpc0lEIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGVycm9yQWN0aW9uLCBzdWNjZXNzQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24tZmFjdG9yeSc7XG5cbmV4cG9ydCBjb25zdCBtYXBSZXNwb25zZSA9IChjb25maWc6IEh0dHBDb25maWcpID0+XG4gIG1hcChyZXMgPT4gKChjb25maWcgfHwge30pLm1hcFJlc3BvbnNlRm4gPyBjb25maWcubWFwUmVzcG9uc2VGbihyZXMpIDogcmVzKSk7XG5cbmV4cG9ydCBjbGFzcyBOZ0VudGl0eVNlcnZpY2U8UyBleHRlbmRzIEVudGl0eVN0YXRlID0gYW55PiBleHRlbmRzIEVudGl0eVNlcnZpY2U8Uz4ge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGxvYWRlcjogTmdFbnRpdHlTZXJ2aWNlTG9hZGVyO1xuXG4gIHByaXZhdGUgaHR0cDogSHR0cENsaWVudDtcbiAgcHJpdmF0ZSBub3RpZmllcjogTmdFbnRpdHlTZXJ2aWNlTm90aWZpZXI7XG4gIHByaXZhdGUgZ2xvYmFsQ29uZmlnOiBOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBtZXJnZWRDb25maWc6IE5nRW50aXR5U2VydmljZVBhcmFtcyAmIE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZztcblxuICBwcml2YXRlIGRpc3BhdGNoU3VjY2VzczogKGFjdGlvbjogUGFydGlhbDxFbnRpdHlTZXJ2aWNlQWN0aW9uPikgPT4gdm9pZDtcbiAgcHJpdmF0ZSBkaXNwYXRjaEVycm9yOiAoYWN0aW9uOiBQYXJ0aWFsPEVudGl0eVNlcnZpY2VBY3Rpb24+KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yZTogRW50aXR5U3RvcmU8Uz4sIHByaXZhdGUgY29uZmlnOiBOZ0VudGl0eVNlcnZpY2VQYXJhbXMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5odHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHRoaXMubG9hZGVyID0gaW5qZWN0KE5nRW50aXR5U2VydmljZUxvYWRlcik7XG4gICAgdGhpcy5ub3RpZmllciA9IGluamVjdChOZ0VudGl0eVNlcnZpY2VOb3RpZmllcik7XG4gICAgdGhpcy5nbG9iYWxDb25maWcgPSBpbmplY3QoTkdfRU5USVRZX1NFUlZJQ0VfQ09ORklHKTtcblxuICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gbWVyZ2VEZWVwKGRlZmF1bHRDb25maWcsIHRoaXMuZ2xvYmFsQ29uZmlnLCBjb25maWcpO1xuXG4gICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3MgPSBzdWNjZXNzQWN0aW9uKHRoaXMuc3RvcmUuc3RvcmVOYW1lLCB0aGlzLm5vdGlmaWVyKTtcbiAgICB0aGlzLmRpc3BhdGNoRXJyb3IgPSBlcnJvckFjdGlvbih0aGlzLnN0b3JlLnN0b3JlTmFtZSwgdGhpcy5ub3RpZmllcik7XG4gIH1cblxuICBnZXQgYXBpKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmwgfHwgdGhpcy5nZXRDb25maWdWYWx1ZSgnYmFzZVVybCcpfS8ke3RoaXMucmVzb3VyY2VOYW1lfWA7XG4gIH1cblxuICBnZXQgcmVzb3VyY2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldENvbmZpZ1ZhbHVlKCdyZXNvdXJjZU5hbWUnKSB8fCB0aGlzLnN0b3JlLnN0b3JlTmFtZTtcbiAgfVxuXG4gIHNldEJhc2VVcmwoYXBpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBhcGk7XG4gIH1cblxuICBnZXRIdHRwKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHA7XG4gIH1cblxuICBnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVyZ2VkQ29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEdldCBhbGwgb3Igb25lIGVudGl0eSAtIENyZWF0ZXMgYSBHRVQgcmVxdWVzdFxuICAgKlxuICAgKiBzZXJ2aWNlLmdldCgpLnN1YnNjcmliZSgpXG4gICAqIHNlcnZpY2UuZ2V0KHsgaGVhZGVycywgcGFyYW1zLCB1cmwgfSlcbiAgICpcbiAgICogc2VydmljZS5nZXQoaWQpXG4gICAqIHNlcnZpY2UuZ2V0KGlkLCB7IGhlYWRlcnMsIHBhcmFtcywgdXJsIH0pXG4gICAqXG4gICAqL1xuICBnZXQ8VD4oaWQ/OiBnZXRJRFR5cGU8Uz4sIGNvbmZpZz86IEh0dHBDb25maWcgJiB7IGFwcGVuZD86IGJvb2xlYW4gfSAmIE1zZyk6IE9ic2VydmFibGU8VD47XG4gIGdldDxUPihjb25maWc/OiBIdHRwQ29uZmlnICYgeyBhcHBlbmQ/OiBib29sZWFuIH0gJiBNc2cpOiBPYnNlcnZhYmxlPFQ+O1xuICBnZXQ8VD4oXG4gICAgaWRPckNvbmZpZz86IGdldElEVHlwZTxTPiB8IEh0dHBDb25maWcsXG4gICAgY29uZmlnPzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbjsgdXBzZXJ0PzogYm9vbGVhbiB9ICYgTXNnXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBjb25zdCBpc1NpbmdsZSA9IGlzSUQoaWRPckNvbmZpZyk7XG4gICAgY29uc3QgX2NvbmZpZzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbjsgdXBzZXJ0PzogYm9vbGVhbiB9ICYgTXNnID0gKGlzU2luZ2xlID8gY29uZmlnIDogaWRPckNvbmZpZykgfHwge307XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuR0VUKTtcblxuICAgIGlmIChfY29uZmlnLnVybCkge1xuICAgICAgdXJsID0gX2NvbmZpZy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IGlzU2luZ2xlID8gYCR7dGhpcy5hcGl9LyR7aWRPckNvbmZpZ31gIDogdGhpcy5hcGk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgbWV0aG9kLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVudGl0eUlkOiBpc1NpbmdsZSA/IGlkT3JDb25maWcgOiBudWxsLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odXJsLCBfY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoX2NvbmZpZyksXG4gICAgICB0YXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXNTaW5nbGUpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydChpZE9yQ29uZmlnIGFzIGdldElEVHlwZTxTPiwgZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKF9jb25maWcuYXBwZW5kKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmFkZChkYXRhKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKF9jb25maWcudXBzZXJ0KSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydE1hbnkoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZGF0YSxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBfY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBfY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEFkZCBhIG5ldyBlbnRpdHkgLSBDcmVhdGVzIGEgUE9TVCByZXF1ZXN0XG4gICAqXG4gICAqIHNlcnZpY2UuYWRkKGVudGl0eSlcbiAgICogc2VydmljZS5hZGQoZW50aXR5LCBjb25maWcpXG4gICAqXG4gICAqL1xuICBhZGQ8VD4oZW50aXR5OiBnZXRFbnRpdHlUeXBlPFM+LCBjb25maWc/OiBIdHRwQ29uZmlnICYgUGljazxBZGRFbnRpdGllc09wdGlvbnMsICdwcmVwZW5kJz4gJiBNc2cpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBtZXRob2QgPSB0aGlzLmdldEh0dHBNZXRob2QoSHR0cE1ldGhvZC5QT1NUKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odGhpcy5yZXNvbHZlVXJsKGNvbmZpZyksIGVudGl0eSwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoY29uZmlnKSxcbiAgICAgIHRhcCgoZW50aXR5OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5hZGQoZW50aXR5LCBjb25maWcpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoU3VjY2Vzcyh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBheWxvYWQ6IGVudGl0eSxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBjb25maWcgJiYgY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBjb25maWcgJiYgY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFVwZGF0ZSBhbiBlbnRpdHkgLSBDcmVhdGVzIGEgUFVUL1BBVENIIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS51cGRhdGUoaWQsIGVudGl0eSlcbiAgICogc2VydmljZS51cGRhdGUoaWQsIGVudGl0eSwgY29uZmlnKVxuICAgKlxuICAgKi9cbiAgdXBkYXRlPFQ+KFxuICAgIGlkOiBnZXRJRFR5cGU8Uz4sXG4gICAgZW50aXR5OiBQYXJ0aWFsPGdldEVudGl0eVR5cGU8Uz4+LFxuICAgIGNvbmZpZz86IEh0dHBDb25maWcgJiB7IG1ldGhvZDogSHR0cE1ldGhvZC5QVVQgfCBIdHRwTWV0aG9kLlBBVENIIH0gJiBNc2dcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgbWV0aG9kID0gY29uZmlnICYmIGNvbmZpZy5tZXRob2QgPyBjb25maWcubWV0aG9kIDogdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuUFVUKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlbnRpdHlJZDogaWQsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpXSh0aGlzLnJlc29sdmVVcmwoY29uZmlnLCBpZCksIGVudGl0eSwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoY29uZmlnKSxcbiAgICAgIHRhcChlbnRpdHkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZShpZCwgZW50aXR5IGFzIGFueSk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZW50aXR5LFxuICAgICAgICAgIHN1Y2Nlc3NNc2c6IGNvbmZpZyAmJiBjb25maWcuc3VjY2Vzc01zZ1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmhhbmRsZUVycm9yKG1ldGhvZCwgZXJyb3IsIGNvbmZpZyAmJiBjb25maWcuZXJyb3JNc2cpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlbnRpdHlJZDogaWQsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIERlbGV0ZSBhbiBlbnRpdHkgLSBDcmVhdGVzIGEgREVMRVRFIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS5kZWxldGUoaWQpXG4gICAqIHNlcnZpY2UuZGVsZXRlKGlkLCBjb25maWcpXG4gICAqXG4gICAqL1xuICBkZWxldGU8VD4oaWQ6IGdldElEVHlwZTxTPiwgY29uZmlnPzogSHR0cENvbmZpZyAmIE1zZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMuZ2V0SHR0cE1ldGhvZChIdHRwTWV0aG9kLkRFTEVURSk7XG5cbiAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICBtZXRob2QsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZW50aXR5SWQ6IGlkLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odGhpcy5yZXNvbHZlVXJsKGNvbmZpZywgaWQpLCBjb25maWcpLnBpcGUoXG4gICAgICBtYXBSZXNwb25zZShjb25maWcpLFxuICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGlkKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3Moe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXlsb2FkOiByZXMsXG4gICAgICAgICAgc3VjY2Vzc01zZzogY29uZmlnICYmIGNvbmZpZy5zdWNjZXNzTXNnXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IobWV0aG9kLCBlcnJvciwgY29uZmlnICYmIGNvbmZpZy5lcnJvck1zZykpLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVudGl0eUlkOiBpZCxcbiAgICAgICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICBwcml2YXRlIGdldEh0dHBNZXRob2QodHlwZTogSHR0cE1ldGhvZCkge1xuICAgIHJldHVybiB0aGlzLm1lcmdlZENvbmZpZy5odHRwTWV0aG9kc1t0eXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcltrZXldIHx8IHRoaXMubWVyZ2VkQ29uZmlnW2tleV07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVVcmwoY29uZmlnOiBIdHRwQ29uZmlnLCBpZD86IGFueSkge1xuICAgIGNvbnN0IGN1c3RvbVVybCA9IChjb25maWcgfHwge30pLnVybDtcbiAgICBpZiAoaXNEZWZpbmVkKGlkKSkge1xuICAgICAgcmV0dXJuIGN1c3RvbVVybCB8fCBgJHt0aGlzLmFwaX0vJHtpZH1gO1xuICAgIH1cblxuICAgIHJldHVybiBjdXN0b21VcmwgfHwgdGhpcy5hcGk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKG1ldGhvZDogSHR0cE1ldGhvZCwgZXJyb3I6IGFueSwgZXJyb3JNc2c6IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2hFcnJvcih7XG4gICAgICBtZXRob2QsXG4gICAgICBlcnJvck1zZyxcbiAgICAgIHBheWxvYWQ6IGVycm9yXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cbn1cbiJdfQ==

@@ -69,3 +69,3 @@ /**

];
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = i0.defineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
return NgEntityServiceNotifier;

@@ -72,0 +72,0 @@ }());

@@ -56,3 +56,2 @@ var __read = (this && this.__read) || function (o, n) {

export function mergeDeep(target) {
var _a, _b;
var sources = [];

@@ -62,2 +61,3 @@ for (var _i = 1; _i < arguments.length; _i++) {

}
var _a, _b;
if (!sources.length)

@@ -100,2 +100,2 @@ return target;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LXNlcnZpY2UuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhLW5nLWVudGl0eS1zZXJ2aWNlLyIsInNvdXJjZXMiOlsibGliL25nLWVudGl0eS1zZXJ2aWNlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFM0MsaURBU0M7OztJQVJDLDhDQUFpQjs7SUFDakIsa0RBTUc7OztBQUdMLE1BQU0sS0FBTyx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsNkJBQTZCLENBQUM7O0FBRXRILE1BQU0sS0FBTyxhQUFhLEdBQWdDO0lBQ3hELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztRQUNuQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1FBQ3ZCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztRQUNuQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07S0FDMUI7Q0FDRjs7Ozs7O0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFNOztJQUFFLGlCQUFVO1NBQVYsVUFBVSxFQUFWLHFCQUFVLEVBQVYsSUFBVTtRQUFWLGdDQUFVOztJQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQzs7UUFDN0IsTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUU7SUFFOUIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLEtBQUssSUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztvQkFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBSSxHQUFDLEdBQUcsSUFBRyxFQUFFLE1BQUcsQ0FBQztnQkFDdkQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBSSxHQUFDLEdBQUcsSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQUcsQ0FBQzthQUMvQztTQUNGO0tBQ0Y7SUFFRCxPQUFPLFNBQVMseUJBQUMsTUFBTSxHQUFLLE9BQU8sR0FBRTtBQUN2QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFrQztJQUFsQyx1QkFBQSxFQUFBLFdBQWtDO0lBQ3RFOzs7O0lBQU8sVUFBUyxXQUFXO1FBQ3pCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUN6QztRQUVELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNuRDtJQUNILENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdFbnRpdHlTZXJ2aWNlUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kIH0gZnJvbSAnLi9uZy1lbnRpdHktc2VydmljZS1ub3RpZmllcic7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ0BkYXRvcmFtYS9ha2l0YSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdFbnRpdHlTZXJ2aWNlR2xvYmFsQ29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgaHR0cE1ldGhvZHM/OiBQYXJ0aWFsPHtcbiAgICBHRVQ6IEh0dHBNZXRob2Q7XG4gICAgUE9TVDogSHR0cE1ldGhvZDtcbiAgICBQQVRDSDogSHR0cE1ldGhvZDtcbiAgICBQVVQ6IEh0dHBNZXRob2Q7XG4gICAgREVMRVRFOiBIdHRwTWV0aG9kO1xuICB9Pjtcbn1cblxuZXhwb3J0IGNvbnN0IE5HX0VOVElUWV9TRVJWSUNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWc+KCdOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWcnKTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWc6IE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZyA9IHtcbiAgaHR0cE1ldGhvZHM6IHtcbiAgICBHRVQ6IEh0dHBNZXRob2QuR0VULFxuICAgIFBPU1Q6IEh0dHBNZXRob2QuUE9TVCxcbiAgICBQQVRDSDogSHR0cE1ldGhvZC5QQVRDSCxcbiAgICBQVVQ6IEh0dHBNZXRob2QuUFVULFxuICAgIERFTEVURTogSHR0cE1ldGhvZC5ERUxFVEVcbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQsIC4uLnNvdXJjZXMpIHtcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aCkgcmV0dXJuIHRhcmdldDtcbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xuXG4gIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCF0YXJnZXRba2V5XSkgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHt9IH0pO1xuICAgICAgICBtZXJnZURlZXAodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWVyZ2VEZWVwKHRhcmdldCwgLi4uc291cmNlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBOZ0VudGl0eVNlcnZpY2VDb25maWcoY29uZmlnOiBOZ0VudGl0eVNlcnZpY2VQYXJhbXMgPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24oY29uc3RydWN0b3IpIHtcbiAgICBpZiAoY29uZmlnLmJhc2VVcmwpIHtcbiAgICAgIGNvbnN0cnVjdG9yWydiYXNlVXJsJ10gPSBjb25maWcuYmFzZVVybDtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnJlc291cmNlTmFtZSkge1xuICAgICAgY29uc3RydWN0b3JbJ3Jlc291cmNlTmFtZSddID0gY29uZmlnLnJlc291cmNlTmFtZTtcbiAgICB9XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LXNlcnZpY2UuY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhLW5nLWVudGl0eS1zZXJ2aWNlLyIsInNvdXJjZXMiOlsibGliL25nLWVudGl0eS1zZXJ2aWNlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFM0MsaURBU0M7OztJQVJDLDhDQUFpQjs7SUFDakIsa0RBTUc7OztBQUdMLE1BQU0sS0FBTyx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsNkJBQTZCLENBQUM7O0FBRXRILE1BQU0sS0FBTyxhQUFhLEdBQWdDO0lBQ3hELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztRQUNuQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1FBQ3ZCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztRQUNuQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07S0FDMUI7Q0FDRjs7Ozs7O0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFNO0lBQUUsaUJBQVU7U0FBVixVQUFVLEVBQVYscUJBQVUsRUFBVixJQUFVO1FBQVYsZ0NBQVU7OztJQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQzs7UUFDN0IsTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUU7SUFFOUIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLEtBQUssSUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztvQkFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBSSxHQUFDLEdBQUcsSUFBRyxFQUFFLE1BQUcsQ0FBQztnQkFDdkQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBSSxHQUFDLEdBQUcsSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQUcsQ0FBQzthQUMvQztTQUNGO0tBQ0Y7SUFFRCxPQUFPLFNBQVMseUJBQUMsTUFBTSxHQUFLLE9BQU8sR0FBRTtBQUN2QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFrQztJQUFsQyx1QkFBQSxFQUFBLFdBQWtDO0lBQ3RFOzs7O0lBQU8sVUFBUyxXQUFXO1FBQ3pCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNsQixXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUN6QztRQUVELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNuRDtJQUNILENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdFbnRpdHlTZXJ2aWNlUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kIH0gZnJvbSAnLi9uZy1lbnRpdHktc2VydmljZS1ub3RpZmllcic7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ0BkYXRvcmFtYS9ha2l0YSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdFbnRpdHlTZXJ2aWNlR2xvYmFsQ29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgaHR0cE1ldGhvZHM/OiBQYXJ0aWFsPHtcbiAgICBHRVQ6IEh0dHBNZXRob2Q7XG4gICAgUE9TVDogSHR0cE1ldGhvZDtcbiAgICBQQVRDSDogSHR0cE1ldGhvZDtcbiAgICBQVVQ6IEh0dHBNZXRob2Q7XG4gICAgREVMRVRFOiBIdHRwTWV0aG9kO1xuICB9Pjtcbn1cblxuZXhwb3J0IGNvbnN0IE5HX0VOVElUWV9TRVJWSUNFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWc+KCdOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWcnKTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWc6IE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZyA9IHtcbiAgaHR0cE1ldGhvZHM6IHtcbiAgICBHRVQ6IEh0dHBNZXRob2QuR0VULFxuICAgIFBPU1Q6IEh0dHBNZXRob2QuUE9TVCxcbiAgICBQQVRDSDogSHR0cE1ldGhvZC5QQVRDSCxcbiAgICBQVVQ6IEh0dHBNZXRob2QuUFVULFxuICAgIERFTEVURTogSHR0cE1ldGhvZC5ERUxFVEVcbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQsIC4uLnNvdXJjZXMpIHtcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aCkgcmV0dXJuIHRhcmdldDtcbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xuXG4gIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCF0YXJnZXRba2V5XSkgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHt9IH0pO1xuICAgICAgICBtZXJnZURlZXAodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWVyZ2VEZWVwKHRhcmdldCwgLi4uc291cmNlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBOZ0VudGl0eVNlcnZpY2VDb25maWcoY29uZmlnOiBOZ0VudGl0eVNlcnZpY2VQYXJhbXMgPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24oY29uc3RydWN0b3IpIHtcbiAgICBpZiAoY29uZmlnLmJhc2VVcmwpIHtcbiAgICAgIGNvbnN0cnVjdG9yWydiYXNlVXJsJ10gPSBjb25maWcuYmFzZVVybDtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnJlc291cmNlTmFtZSkge1xuICAgICAgY29uc3RydWN0b3JbJ3Jlc291cmNlTmFtZSddID0gY29uZmlnLnJlc291cmNlTmFtZTtcbiAgICB9XG4gIH07XG59XG4iXX0=

@@ -123,3 +123,3 @@ /**

];
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = i0.defineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
return NgEntityServiceLoader;

@@ -126,0 +126,0 @@ }());

@@ -104,2 +104,11 @@ var __extends = (this && this.__extends) || (function () {

/**
* @return {?}
*/
NgEntityService.prototype.getConfig = /**
* @return {?}
*/
function () {
return this.mergedConfig;
};
/**
* @template T

@@ -504,2 +513,2 @@ * @param {?=} idOrConfig

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEtbmctZW50aXR5LXNlcnZpY2UvIiwic291cmNlcyI6WyJsaWIvbmctZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBRUwsYUFBYSxFQUtiLFNBQVMsRUFDVixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBdUIsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBQ1Qsd0JBQXdCLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUU5RCxNQUFNLEtBQU8sV0FBVzs7OztBQUFHLFVBQUMsTUFBa0I7SUFDNUMsT0FBQSxHQUFHOzs7O0lBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQWhFLENBQWdFLEVBQUM7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TUFBTSxRQUFBO1lBQ04sUUFBUSxVQUFBO1lBQ1IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBL1BELENBQWtFLGFBQWEsR0ErUDlFOzs7Ozs7O0lBOVBDLGtDQUFnQjs7SUFDaEIsaUNBQThCOzs7OztJQUU5QiwrQkFBeUI7Ozs7O0lBQ3pCLG1DQUEwQzs7Ozs7SUFDMUMsdUNBQXVEOzs7OztJQUN2RCx1Q0FBMEU7Ozs7O0lBRTFFLDBDQUF3RTs7Ozs7SUFDeEUsd0NBQXNFOzs7OztJQUUxRCxnQ0FBK0I7Ozs7O0lBQUUsaUNBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWRkRW50aXRpZXNPcHRpb25zLFxuICBFbnRpdHlTZXJ2aWNlLFxuICBFbnRpdHlTdGF0ZSxcbiAgRW50aXR5U3RvcmUsXG4gIGdldEVudGl0eVR5cGUsXG4gIGdldElEVHlwZSxcbiAgaXNEZWZpbmVkXG59IGZyb20gJ0BkYXRvcmFtYS9ha2l0YSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ29uZmlnLCBNc2csIE5nRW50aXR5U2VydmljZVBhcmFtcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRW50aXR5U2VydmljZUFjdGlvbiwgSHR0cE1ldGhvZCwgTmdFbnRpdHlTZXJ2aWNlTm90aWZpZXIgfSBmcm9tICcuL25nLWVudGl0eS1zZXJ2aWNlLW5vdGlmaWVyJztcbmltcG9ydCB7IE5nRW50aXR5U2VydmljZUxvYWRlciB9IGZyb20gJy4vbmctZW50aXR5LXNlcnZpY2UubG9hZGVyJztcbmltcG9ydCB7XG4gIGRlZmF1bHRDb25maWcsXG4gIG1lcmdlRGVlcCxcbiAgTkdfRU5USVRZX1NFUlZJQ0VfQ09ORklHLFxuICBOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWdcbn0gZnJvbSAnLi9uZy1lbnRpdHktc2VydmljZS5jb25maWcnO1xuaW1wb3J0IHsgaXNJRCB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBlcnJvckFjdGlvbiwgc3VjY2Vzc0FjdGlvbiB9IGZyb20gJy4vYWN0aW9uLWZhY3RvcnknO1xuXG5leHBvcnQgY29uc3QgbWFwUmVzcG9uc2UgPSAoY29uZmlnOiBIdHRwQ29uZmlnKSA9PlxuICBtYXAocmVzID0+ICgoY29uZmlnIHx8IHt9KS5tYXBSZXNwb25zZUZuID8gY29uZmlnLm1hcFJlc3BvbnNlRm4ocmVzKSA6IHJlcykpO1xuXG5leHBvcnQgY2xhc3MgTmdFbnRpdHlTZXJ2aWNlPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZSA9IGFueT4gZXh0ZW5kcyBFbnRpdHlTZXJ2aWNlPFM+IHtcbiAgYmFzZVVybDogc3RyaW5nO1xuICBsb2FkZXI6IE5nRW50aXR5U2VydmljZUxvYWRlcjtcblxuICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQ7XG4gIHByaXZhdGUgbm90aWZpZXI6IE5nRW50aXR5U2VydmljZU5vdGlmaWVyO1xuICBwcml2YXRlIGdsb2JhbENvbmZpZzogTmdFbnRpdHlTZXJ2aWNlR2xvYmFsQ29uZmlnID0ge307XG4gIHByaXZhdGUgbWVyZ2VkQ29uZmlnOiBOZ0VudGl0eVNlcnZpY2VQYXJhbXMgJiBOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWc7XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaFN1Y2Nlc3M6IChhY3Rpb246IFBhcnRpYWw8RW50aXR5U2VydmljZUFjdGlvbj4pID0+IHZvaWQ7XG4gIHByaXZhdGUgZGlzcGF0Y2hFcnJvcjogKGFjdGlvbjogUGFydGlhbDxFbnRpdHlTZXJ2aWNlQWN0aW9uPikgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RvcmU6IEVudGl0eVN0b3JlPFM+LCBwcml2YXRlIGNvbmZpZzogTmdFbnRpdHlTZXJ2aWNlUGFyYW1zID0ge30pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICB0aGlzLmxvYWRlciA9IGluamVjdChOZ0VudGl0eVNlcnZpY2VMb2FkZXIpO1xuICAgIHRoaXMubm90aWZpZXIgPSBpbmplY3QoTmdFbnRpdHlTZXJ2aWNlTm90aWZpZXIpO1xuICAgIHRoaXMuZ2xvYmFsQ29uZmlnID0gaW5qZWN0KE5HX0VOVElUWV9TRVJWSUNFX0NPTkZJRyk7XG5cbiAgICB0aGlzLm1lcmdlZENvbmZpZyA9IG1lcmdlRGVlcChkZWZhdWx0Q29uZmlnLCB0aGlzLmdsb2JhbENvbmZpZywgY29uZmlnKTtcblxuICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzID0gc3VjY2Vzc0FjdGlvbih0aGlzLnN0b3JlLnN0b3JlTmFtZSwgdGhpcy5ub3RpZmllcik7XG4gICAgdGhpcy5kaXNwYXRjaEVycm9yID0gZXJyb3JBY3Rpb24odGhpcy5zdG9yZS5zdG9yZU5hbWUsIHRoaXMubm90aWZpZXIpO1xuICB9XG5cbiAgZ2V0IGFwaSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYXNlVXJsIHx8IHRoaXMuZ2V0Q29uZmlnVmFsdWUoJ2Jhc2VVcmwnKX0vJHt0aGlzLnJlc291cmNlTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHJlc291cmNlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb25maWdWYWx1ZSgncmVzb3VyY2VOYW1lJykgfHwgdGhpcy5zdG9yZS5zdG9yZU5hbWU7XG4gIH1cblxuICBzZXRCYXNlVXJsKGFwaTogc3RyaW5nKSB7XG4gICAgdGhpcy5iYXNlVXJsID0gYXBpO1xuICB9XG5cbiAgZ2V0SHR0cCgpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEdldCBhbGwgb3Igb25lIGVudGl0eSAtIENyZWF0ZXMgYSBHRVQgcmVxdWVzdFxuICAgKlxuICAgKiBzZXJ2aWNlLmdldCgpLnN1YnNjcmliZSgpXG4gICAqIHNlcnZpY2UuZ2V0KHsgaGVhZGVycywgcGFyYW1zLCB1cmwgfSlcbiAgICpcbiAgICogc2VydmljZS5nZXQoaWQpXG4gICAqIHNlcnZpY2UuZ2V0KGlkLCB7IGhlYWRlcnMsIHBhcmFtcywgdXJsIH0pXG4gICAqXG4gICAqL1xuICBnZXQ8VD4oaWQ/OiBnZXRJRFR5cGU8Uz4sIGNvbmZpZz86IEh0dHBDb25maWcgJiB7IGFwcGVuZD86IGJvb2xlYW4gfSAmIE1zZyk6IE9ic2VydmFibGU8VD47XG4gIGdldDxUPihjb25maWc/OiBIdHRwQ29uZmlnICYgeyBhcHBlbmQ/OiBib29sZWFuIH0gJiBNc2cpOiBPYnNlcnZhYmxlPFQ+O1xuICBnZXQ8VD4oXG4gICAgaWRPckNvbmZpZz86IGdldElEVHlwZTxTPiB8IEh0dHBDb25maWcsXG4gICAgY29uZmlnPzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbjsgdXBzZXJ0PzogYm9vbGVhbiB9ICYgTXNnXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBjb25zdCBpc1NpbmdsZSA9IGlzSUQoaWRPckNvbmZpZyk7XG4gICAgY29uc3QgX2NvbmZpZzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbjsgdXBzZXJ0PzogYm9vbGVhbiB9ICYgTXNnID0gKGlzU2luZ2xlID8gY29uZmlnIDogaWRPckNvbmZpZykgfHwge307XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuR0VUKTtcblxuICAgIGlmIChfY29uZmlnLnVybCkge1xuICAgICAgdXJsID0gX2NvbmZpZy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IGlzU2luZ2xlID8gYCR7dGhpcy5hcGl9LyR7aWRPckNvbmZpZ31gIDogdGhpcy5hcGk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgbWV0aG9kLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVudGl0eUlkOiBpc1NpbmdsZSA/IGlkT3JDb25maWcgOiBudWxsLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odXJsLCBfY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoX2NvbmZpZyksXG4gICAgICB0YXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXNTaW5nbGUpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydChpZE9yQ29uZmlnIGFzIGdldElEVHlwZTxTPiwgZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKF9jb25maWcuYXBwZW5kKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmFkZChkYXRhKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKF9jb25maWcudXBzZXJ0KSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydE1hbnkoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZGF0YSxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBfY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBfY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEFkZCBhIG5ldyBlbnRpdHkgLSBDcmVhdGVzIGEgUE9TVCByZXF1ZXN0XG4gICAqXG4gICAqIHNlcnZpY2UuYWRkKGVudGl0eSlcbiAgICogc2VydmljZS5hZGQoZW50aXR5LCBjb25maWcpXG4gICAqXG4gICAqL1xuICBhZGQ8VD4oZW50aXR5OiBnZXRFbnRpdHlUeXBlPFM+LCBjb25maWc/OiBIdHRwQ29uZmlnICYgUGljazxBZGRFbnRpdGllc09wdGlvbnMsICdwcmVwZW5kJz4gJiBNc2cpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBtZXRob2QgPSB0aGlzLmdldEh0dHBNZXRob2QoSHR0cE1ldGhvZC5QT1NUKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odGhpcy5yZXNvbHZlVXJsKGNvbmZpZyksIGVudGl0eSwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoY29uZmlnKSxcbiAgICAgIHRhcCgoZW50aXR5OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5hZGQoZW50aXR5LCBjb25maWcpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoU3VjY2Vzcyh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBheWxvYWQ6IGVudGl0eSxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBjb25maWcgJiYgY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBjb25maWcgJiYgY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFVwZGF0ZSBhbiBlbnRpdHkgLSBDcmVhdGVzIGEgUFVUL1BBVENIIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS51cGRhdGUoaWQsIGVudGl0eSlcbiAgICogc2VydmljZS51cGRhdGUoaWQsIGVudGl0eSwgY29uZmlnKVxuICAgKlxuICAgKi9cbiAgdXBkYXRlPFQ+KFxuICAgIGlkOiBnZXRJRFR5cGU8Uz4sXG4gICAgZW50aXR5OiBQYXJ0aWFsPGdldEVudGl0eVR5cGU8Uz4+LFxuICAgIGNvbmZpZz86IEh0dHBDb25maWcgJiB7IG1ldGhvZDogSHR0cE1ldGhvZC5QVVQgfCBIdHRwTWV0aG9kLlBBVENIIH0gJiBNc2dcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgbWV0aG9kID0gY29uZmlnICYmIGNvbmZpZy5tZXRob2QgPyBjb25maWcubWV0aG9kIDogdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuUFVUKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlbnRpdHlJZDogaWQsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpXSh0aGlzLnJlc29sdmVVcmwoY29uZmlnLCBpZCksIGVudGl0eSwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoY29uZmlnKSxcbiAgICAgIHRhcChlbnRpdHkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZShpZCwgZW50aXR5IGFzIGFueSk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZW50aXR5LFxuICAgICAgICAgIHN1Y2Nlc3NNc2c6IGNvbmZpZyAmJiBjb25maWcuc3VjY2Vzc01zZ1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmhhbmRsZUVycm9yKG1ldGhvZCwgZXJyb3IsIGNvbmZpZyAmJiBjb25maWcuZXJyb3JNc2cpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlbnRpdHlJZDogaWQsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIERlbGV0ZSBhbiBlbnRpdHkgLSBDcmVhdGVzIGEgREVMRVRFIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS5kZWxldGUoaWQpXG4gICAqIHNlcnZpY2UuZGVsZXRlKGlkLCBjb25maWcpXG4gICAqXG4gICAqL1xuICBkZWxldGU8VD4oaWQ6IGdldElEVHlwZTxTPiwgY29uZmlnPzogSHR0cENvbmZpZyAmIE1zZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMuZ2V0SHR0cE1ldGhvZChIdHRwTWV0aG9kLkRFTEVURSk7XG5cbiAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICBtZXRob2QsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZW50aXR5SWQ6IGlkLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odGhpcy5yZXNvbHZlVXJsKGNvbmZpZywgaWQpLCBjb25maWcpLnBpcGUoXG4gICAgICBtYXBSZXNwb25zZShjb25maWcpLFxuICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGlkKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3Moe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXlsb2FkOiByZXMsXG4gICAgICAgICAgc3VjY2Vzc01zZzogY29uZmlnICYmIGNvbmZpZy5zdWNjZXNzTXNnXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IobWV0aG9kLCBlcnJvciwgY29uZmlnICYmIGNvbmZpZy5lcnJvck1zZykpLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVudGl0eUlkOiBpZCxcbiAgICAgICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICBwcml2YXRlIGdldEh0dHBNZXRob2QodHlwZTogSHR0cE1ldGhvZCkge1xuICAgIHJldHVybiB0aGlzLm1lcmdlZENvbmZpZy5odHRwTWV0aG9kc1t0eXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcltrZXldIHx8IHRoaXMubWVyZ2VkQ29uZmlnW2tleV07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVVcmwoY29uZmlnOiBIdHRwQ29uZmlnLCBpZD86IGFueSkge1xuICAgIGNvbnN0IGN1c3RvbVVybCA9IChjb25maWcgfHwge30pLnVybDtcbiAgICBpZiAoaXNEZWZpbmVkKGlkKSkge1xuICAgICAgcmV0dXJuIGN1c3RvbVVybCB8fCBgJHt0aGlzLmFwaX0vJHtpZH1gO1xuICAgIH1cblxuICAgIHJldHVybiBjdXN0b21VcmwgfHwgdGhpcy5hcGk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKG1ldGhvZDogSHR0cE1ldGhvZCwgZXJyb3I6IGFueSwgZXJyb3JNc2c6IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2hFcnJvcih7XG4gICAgICBtZXRob2QsXG4gICAgICBlcnJvck1zZyxcbiAgICAgIHBheWxvYWQ6IGVycm9yXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEtbmctZW50aXR5LXNlcnZpY2UvIiwic291cmNlcyI6WyJsaWIvbmctZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBRUwsYUFBYSxFQUtiLFNBQVMsRUFDVixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBdUIsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBQ1Qsd0JBQXdCLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUU5RCxNQUFNLEtBQU8sV0FBVzs7OztBQUFHLFVBQUMsTUFBa0I7SUFDNUMsT0FBQSxHQUFHOzs7O0lBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQWhFLENBQWdFLEVBQUM7QUFBNUUsQ0FBNEUsQ0FBQTs7OztBQUU5RTs7OztJQUFrRSxtQ0FBZ0I7SUFZaEYseUJBQXNCLEtBQXFCLEVBQVUsTUFBa0M7UUFBbEMsdUJBQUEsRUFBQSxXQUFrQztRQUF2RixZQUNFLGlCQUFPLFNBVVI7UUFYcUIsV0FBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxZQUFNLEdBQU4sTUFBTSxDQUE0QjtRQU4vRSxrQkFBWSxHQUFnQyxFQUFFLENBQUM7UUFRckQsS0FBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsS0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM1QyxLQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2hELEtBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFckQsS0FBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEUsS0FBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLEtBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7SUFDeEUsQ0FBQztJQUVELHNCQUFJLGdDQUFHOzs7O1FBQVA7WUFDRSxPQUFPLENBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxVQUFJLElBQUksQ0FBQyxZQUFjLENBQUM7UUFDbEYsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx5Q0FBWTs7OztRQUFoQjtZQUNFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNyRSxDQUFDOzs7T0FBQTs7Ozs7SUFFRCxvQ0FBVTs7OztJQUFWLFVBQVcsR0FBVztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDOzs7O0lBRUQsaUNBQU87OztJQUFQO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Ozs7SUFFRCxtQ0FBUzs7O0lBQVQ7UUFDRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzs7Ozs7OztJQWVELDZCQUFHOzs7Ozs7SUFBSCxVQUNFLFVBQXNDLEVBQ3RDLE1BQWtFO1FBRnBFLGlCQW9EQzs7WUFoREssR0FBVzs7WUFDVCxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7WUFDM0IsT0FBTyxHQUE4RCxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFOztZQUMzRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBRWpELElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNmLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ25CO2FBQU07WUFDTCxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBSSxJQUFJLENBQUMsR0FBRyxTQUFJLFVBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN6RDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ25CLE1BQU0sUUFBQTtZQUNOLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxtQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZELFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFDcEIsR0FBRzs7OztRQUFDLFVBQUMsSUFBUztZQUNaLElBQUksUUFBUSxFQUFFO2dCQUNaLEtBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFBLFVBQVUsRUFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ2xCLEtBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN0QjtxQkFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ3pCLEtBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM3QjtxQkFBTTtvQkFDTCxLQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtZQUVELEtBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLE1BQU0sUUFBQTtnQkFDTixPQUFPLEVBQUUsSUFBSTtnQkFDYixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7YUFDL0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLEVBQ0YsVUFBVTs7OztRQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBakQsQ0FBaUQsRUFBQyxFQUN0RSxRQUFROzs7UUFBQztZQUNQLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNuQixNQUFNLFFBQUE7Z0JBQ04sT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsU0FBUyxFQUFFLEtBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FDSCxFQUFpQixDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HOzs7Ozs7Ozs7Ozs7O0lBQ0gsNkJBQUc7Ozs7Ozs7Ozs7OztJQUFILFVBQU8sTUFBd0IsRUFBRSxNQUErRDtRQUFoRyxpQkEyQkM7O1lBMUJPLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFFbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDbkIsTUFBTSxRQUFBO1lBQ04sT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1NBQ2hDLENBQUMsQ0FBQztRQUNILE9BQU8sbUJBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ2xGLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFDbkIsR0FBRzs7OztRQUFDLFVBQUMsTUFBVztZQUNkLEtBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixLQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNuQixNQUFNLFFBQUE7Z0JBQ04sT0FBTyxFQUFFLE1BQU07Z0JBQ2YsVUFBVSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVTthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBMUQsQ0FBMEQsRUFBQyxFQUMvRSxRQUFROzs7UUFBQztZQUNQLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNuQixNQUFNLFFBQUE7Z0JBQ04sT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsU0FBUyxFQUFFLEtBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FDSCxFQUFpQixDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HOzs7Ozs7Ozs7Ozs7OztJQUNILGdDQUFNOzs7Ozs7Ozs7Ozs7O0lBQU4sVUFDRSxFQUFnQixFQUNoQixNQUFpQyxFQUNqQyxNQUF5RTtRQUgzRSxpQkFrQ0M7O1lBN0JPLE1BQU0sR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBRTNGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ25CLE1BQU0sUUFBQTtZQUNOLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1NBQ2hDLENBQUMsQ0FBQztRQUVILE9BQU8sbUJBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzVGLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFDbkIsR0FBRzs7OztRQUFDLFVBQUEsTUFBTTtZQUNSLEtBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDO1lBQ3JDLEtBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ25CLE1BQU0sUUFBQTtnQkFDTixPQUFPLEVBQUUsTUFBTTtnQkFDZixVQUFVLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVO2FBQ3hDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxFQUNGLFVBQVU7Ozs7UUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUExRCxDQUEwRCxFQUFDLEVBQy9FLFFBQVE7OztRQUFDO1lBQ1AsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ25CLE1BQU0sUUFBQTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsRUFBRTtnQkFDWixTQUFTLEVBQUUsS0FBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUNILEVBQWlCLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7Ozs7Ozs7Ozs7Ozs7SUFDSCxnQ0FBTTs7Ozs7Ozs7Ozs7O0lBQU4sVUFBVSxFQUFnQixFQUFFLE1BQXlCO1FBQXJELGlCQThCQzs7WUE3Qk8sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUVwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNuQixNQUFNLFFBQUE7WUFDTixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLG1CQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM5RSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQ25CLEdBQUc7Ozs7UUFBQyxVQUFBLEdBQUc7WUFDTCxLQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QixLQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNuQixNQUFNLFFBQUE7Z0JBQ04sT0FBTyxFQUFFLEdBQUc7Z0JBQ1osVUFBVSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVTthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBMUQsQ0FBMEQsRUFBQyxFQUMvRSxRQUFROzs7UUFBQztZQUNQLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNuQixNQUFNLFFBQUE7Z0JBQ04sT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLEtBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FDSCxFQUFpQixDQUFDO0lBQ3JCLENBQUM7Ozs7OztJQUVPLHVDQUFhOzs7OztJQUFyQixVQUFzQixJQUFnQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Ozs7OztJQUVPLHdDQUFjOzs7OztJQUF0QixVQUF1QixHQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Ozs7Ozs7SUFFTyxvQ0FBVTs7Ozs7O0lBQWxCLFVBQW1CLE1BQWtCLEVBQUUsRUFBUTs7WUFDdkMsU0FBUyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUc7UUFDcEMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDakIsT0FBTyxTQUFTLElBQU8sSUFBSSxDQUFDLEdBQUcsU0FBSSxFQUFJLENBQUM7U0FDekM7UUFFRCxPQUFPLFNBQVMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQy9CLENBQUM7Ozs7Ozs7O0lBRU8scUNBQVc7Ozs7Ozs7SUFBbkIsVUFBb0IsTUFBa0IsRUFBRSxLQUFVLEVBQUUsUUFBZ0I7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNLFFBQUE7WUFDTixRQUFRLFVBQUE7WUFDUixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQUVILE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFuUUQsQ0FBa0UsYUFBYSxHQW1ROUU7Ozs7Ozs7SUFsUUMsa0NBQWdCOztJQUNoQixpQ0FBOEI7Ozs7O0lBRTlCLCtCQUF5Qjs7Ozs7SUFDekIsbUNBQTBDOzs7OztJQUMxQyx1Q0FBdUQ7Ozs7O0lBQ3ZELHVDQUEwRTs7Ozs7SUFFMUUsMENBQXdFOzs7OztJQUN4RSx3Q0FBc0U7Ozs7O0lBRTFELGdDQUErQjs7Ozs7SUFBRSxpQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGRFbnRpdGllc09wdGlvbnMsXG4gIEVudGl0eVNlcnZpY2UsXG4gIEVudGl0eVN0YXRlLFxuICBFbnRpdHlTdG9yZSxcbiAgZ2V0RW50aXR5VHlwZSxcbiAgZ2V0SURUeXBlLFxuICBpc0RlZmluZWRcbn0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDb25maWcsIE1zZywgTmdFbnRpdHlTZXJ2aWNlUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlQWN0aW9uLCBIdHRwTWV0aG9kLCBOZ0VudGl0eVNlcnZpY2VOb3RpZmllciB9IGZyb20gJy4vbmctZW50aXR5LXNlcnZpY2Utbm90aWZpZXInO1xuaW1wb3J0IHsgTmdFbnRpdHlTZXJ2aWNlTG9hZGVyIH0gZnJvbSAnLi9uZy1lbnRpdHktc2VydmljZS5sb2FkZXInO1xuaW1wb3J0IHtcbiAgZGVmYXVsdENvbmZpZyxcbiAgbWVyZ2VEZWVwLFxuICBOR19FTlRJVFlfU0VSVklDRV9DT05GSUcsXG4gIE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZ1xufSBmcm9tICcuL25nLWVudGl0eS1zZXJ2aWNlLmNvbmZpZyc7XG5pbXBvcnQgeyBpc0lEIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGVycm9yQWN0aW9uLCBzdWNjZXNzQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24tZmFjdG9yeSc7XG5cbmV4cG9ydCBjb25zdCBtYXBSZXNwb25zZSA9IChjb25maWc6IEh0dHBDb25maWcpID0+XG4gIG1hcChyZXMgPT4gKChjb25maWcgfHwge30pLm1hcFJlc3BvbnNlRm4gPyBjb25maWcubWFwUmVzcG9uc2VGbihyZXMpIDogcmVzKSk7XG5cbmV4cG9ydCBjbGFzcyBOZ0VudGl0eVNlcnZpY2U8UyBleHRlbmRzIEVudGl0eVN0YXRlID0gYW55PiBleHRlbmRzIEVudGl0eVNlcnZpY2U8Uz4ge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGxvYWRlcjogTmdFbnRpdHlTZXJ2aWNlTG9hZGVyO1xuXG4gIHByaXZhdGUgaHR0cDogSHR0cENsaWVudDtcbiAgcHJpdmF0ZSBub3RpZmllcjogTmdFbnRpdHlTZXJ2aWNlTm90aWZpZXI7XG4gIHByaXZhdGUgZ2xvYmFsQ29uZmlnOiBOZ0VudGl0eVNlcnZpY2VHbG9iYWxDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBtZXJnZWRDb25maWc6IE5nRW50aXR5U2VydmljZVBhcmFtcyAmIE5nRW50aXR5U2VydmljZUdsb2JhbENvbmZpZztcblxuICBwcml2YXRlIGRpc3BhdGNoU3VjY2VzczogKGFjdGlvbjogUGFydGlhbDxFbnRpdHlTZXJ2aWNlQWN0aW9uPikgPT4gdm9pZDtcbiAgcHJpdmF0ZSBkaXNwYXRjaEVycm9yOiAoYWN0aW9uOiBQYXJ0aWFsPEVudGl0eVNlcnZpY2VBY3Rpb24+KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yZTogRW50aXR5U3RvcmU8Uz4sIHByaXZhdGUgY29uZmlnOiBOZ0VudGl0eVNlcnZpY2VQYXJhbXMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5odHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHRoaXMubG9hZGVyID0gaW5qZWN0KE5nRW50aXR5U2VydmljZUxvYWRlcik7XG4gICAgdGhpcy5ub3RpZmllciA9IGluamVjdChOZ0VudGl0eVNlcnZpY2VOb3RpZmllcik7XG4gICAgdGhpcy5nbG9iYWxDb25maWcgPSBpbmplY3QoTkdfRU5USVRZX1NFUlZJQ0VfQ09ORklHKTtcblxuICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gbWVyZ2VEZWVwKGRlZmF1bHRDb25maWcsIHRoaXMuZ2xvYmFsQ29uZmlnLCBjb25maWcpO1xuXG4gICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3MgPSBzdWNjZXNzQWN0aW9uKHRoaXMuc3RvcmUuc3RvcmVOYW1lLCB0aGlzLm5vdGlmaWVyKTtcbiAgICB0aGlzLmRpc3BhdGNoRXJyb3IgPSBlcnJvckFjdGlvbih0aGlzLnN0b3JlLnN0b3JlTmFtZSwgdGhpcy5ub3RpZmllcik7XG4gIH1cblxuICBnZXQgYXBpKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmwgfHwgdGhpcy5nZXRDb25maWdWYWx1ZSgnYmFzZVVybCcpfS8ke3RoaXMucmVzb3VyY2VOYW1lfWA7XG4gIH1cblxuICBnZXQgcmVzb3VyY2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldENvbmZpZ1ZhbHVlKCdyZXNvdXJjZU5hbWUnKSB8fCB0aGlzLnN0b3JlLnN0b3JlTmFtZTtcbiAgfVxuXG4gIHNldEJhc2VVcmwoYXBpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBhcGk7XG4gIH1cblxuICBnZXRIdHRwKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHA7XG4gIH1cblxuICBnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVyZ2VkQ29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEdldCBhbGwgb3Igb25lIGVudGl0eSAtIENyZWF0ZXMgYSBHRVQgcmVxdWVzdFxuICAgKlxuICAgKiBzZXJ2aWNlLmdldCgpLnN1YnNjcmliZSgpXG4gICAqIHNlcnZpY2UuZ2V0KHsgaGVhZGVycywgcGFyYW1zLCB1cmwgfSlcbiAgICpcbiAgICogc2VydmljZS5nZXQoaWQpXG4gICAqIHNlcnZpY2UuZ2V0KGlkLCB7IGhlYWRlcnMsIHBhcmFtcywgdXJsIH0pXG4gICAqXG4gICAqL1xuICBnZXQ8VD4oaWQ/OiBnZXRJRFR5cGU8Uz4sIGNvbmZpZz86IEh0dHBDb25maWcgJiB7IGFwcGVuZD86IGJvb2xlYW4gfSAmIE1zZyk6IE9ic2VydmFibGU8VD47XG4gIGdldDxUPihjb25maWc/OiBIdHRwQ29uZmlnICYgeyBhcHBlbmQ/OiBib29sZWFuIH0gJiBNc2cpOiBPYnNlcnZhYmxlPFQ+O1xuICBnZXQ8VD4oXG4gICAgaWRPckNvbmZpZz86IGdldElEVHlwZTxTPiB8IEh0dHBDb25maWcsXG4gICAgY29uZmlnPzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbjsgdXBzZXJ0PzogYm9vbGVhbiB9ICYgTXNnXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBjb25zdCBpc1NpbmdsZSA9IGlzSUQoaWRPckNvbmZpZyk7XG4gICAgY29uc3QgX2NvbmZpZzogSHR0cENvbmZpZyAmIHsgYXBwZW5kPzogYm9vbGVhbjsgdXBzZXJ0PzogYm9vbGVhbiB9ICYgTXNnID0gKGlzU2luZ2xlID8gY29uZmlnIDogaWRPckNvbmZpZykgfHwge307XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuR0VUKTtcblxuICAgIGlmIChfY29uZmlnLnVybCkge1xuICAgICAgdXJsID0gX2NvbmZpZy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IGlzU2luZ2xlID8gYCR7dGhpcy5hcGl9LyR7aWRPckNvbmZpZ31gIDogdGhpcy5hcGk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgbWV0aG9kLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVudGl0eUlkOiBpc1NpbmdsZSA/IGlkT3JDb25maWcgOiBudWxsLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odXJsLCBfY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoX2NvbmZpZyksXG4gICAgICB0YXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXNTaW5nbGUpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydChpZE9yQ29uZmlnIGFzIGdldElEVHlwZTxTPiwgZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKF9jb25maWcuYXBwZW5kKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmFkZChkYXRhKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKF9jb25maWcudXBzZXJ0KSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwc2VydE1hbnkoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZGF0YSxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBfY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBfY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEFkZCBhIG5ldyBlbnRpdHkgLSBDcmVhdGVzIGEgUE9TVCByZXF1ZXN0XG4gICAqXG4gICAqIHNlcnZpY2UuYWRkKGVudGl0eSlcbiAgICogc2VydmljZS5hZGQoZW50aXR5LCBjb25maWcpXG4gICAqXG4gICAqL1xuICBhZGQ8VD4oZW50aXR5OiBnZXRFbnRpdHlUeXBlPFM+LCBjb25maWc/OiBIdHRwQ29uZmlnICYgUGljazxBZGRFbnRpdGllc09wdGlvbnMsICdwcmVwZW5kJz4gJiBNc2cpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBtZXRob2QgPSB0aGlzLmdldEh0dHBNZXRob2QoSHR0cE1ldGhvZC5QT1NUKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odGhpcy5yZXNvbHZlVXJsKGNvbmZpZyksIGVudGl0eSwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoY29uZmlnKSxcbiAgICAgIHRhcCgoZW50aXR5OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5hZGQoZW50aXR5LCBjb25maWcpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoU3VjY2Vzcyh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBheWxvYWQ6IGVudGl0eSxcbiAgICAgICAgICBzdWNjZXNzTXNnOiBjb25maWcgJiYgY29uZmlnLnN1Y2Nlc3NNc2dcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihtZXRob2QsIGVycm9yLCBjb25maWcgJiYgY29uZmlnLmVycm9yTXNnKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFVwZGF0ZSBhbiBlbnRpdHkgLSBDcmVhdGVzIGEgUFVUL1BBVENIIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS51cGRhdGUoaWQsIGVudGl0eSlcbiAgICogc2VydmljZS51cGRhdGUoaWQsIGVudGl0eSwgY29uZmlnKVxuICAgKlxuICAgKi9cbiAgdXBkYXRlPFQ+KFxuICAgIGlkOiBnZXRJRFR5cGU8Uz4sXG4gICAgZW50aXR5OiBQYXJ0aWFsPGdldEVudGl0eVR5cGU8Uz4+LFxuICAgIGNvbmZpZz86IEh0dHBDb25maWcgJiB7IG1ldGhvZDogSHR0cE1ldGhvZC5QVVQgfCBIdHRwTWV0aG9kLlBBVENIIH0gJiBNc2dcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgbWV0aG9kID0gY29uZmlnICYmIGNvbmZpZy5tZXRob2QgPyBjb25maWcubWV0aG9kIDogdGhpcy5nZXRIdHRwTWV0aG9kKEh0dHBNZXRob2QuUFVUKTtcblxuICAgIHRoaXMubG9hZGVyLmRpc3BhdGNoKHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlbnRpdHlJZDogaWQsXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpXSh0aGlzLnJlc29sdmVVcmwoY29uZmlnLCBpZCksIGVudGl0eSwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwUmVzcG9uc2UoY29uZmlnKSxcbiAgICAgIHRhcChlbnRpdHkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZShpZCwgZW50aXR5IGFzIGFueSk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hTdWNjZXNzKHtcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcGF5bG9hZDogZW50aXR5LFxuICAgICAgICAgIHN1Y2Nlc3NNc2c6IGNvbmZpZyAmJiBjb25maWcuc3VjY2Vzc01zZ1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLmhhbmRsZUVycm9yKG1ldGhvZCwgZXJyb3IsIGNvbmZpZyAmJiBjb25maWcuZXJyb3JNc2cpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIuZGlzcGF0Y2goe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlbnRpdHlJZDogaWQsXG4gICAgICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIERlbGV0ZSBhbiBlbnRpdHkgLSBDcmVhdGVzIGEgREVMRVRFIHJlcXVlc3RcbiAgICpcbiAgICogc2VydmljZS5kZWxldGUoaWQpXG4gICAqIHNlcnZpY2UuZGVsZXRlKGlkLCBjb25maWcpXG4gICAqXG4gICAqL1xuICBkZWxldGU8VD4oaWQ6IGdldElEVHlwZTxTPiwgY29uZmlnPzogSHR0cENvbmZpZyAmIE1zZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMuZ2V0SHR0cE1ldGhvZChIdHRwTWV0aG9kLkRFTEVURSk7XG5cbiAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICBtZXRob2QsXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgZW50aXR5SWQ6IGlkLFxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlLnN0b3JlTmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0odGhpcy5yZXNvbHZlVXJsKGNvbmZpZywgaWQpLCBjb25maWcpLnBpcGUoXG4gICAgICBtYXBSZXNwb25zZShjb25maWcpLFxuICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKGlkKTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaFN1Y2Nlc3Moe1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXlsb2FkOiByZXMsXG4gICAgICAgICAgc3VjY2Vzc01zZzogY29uZmlnICYmIGNvbmZpZy5zdWNjZXNzTXNnXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IobWV0aG9kLCBlcnJvciwgY29uZmlnICYmIGNvbmZpZy5lcnJvck1zZykpLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRlci5kaXNwYXRjaCh7XG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVudGl0eUlkOiBpZCxcbiAgICAgICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmUuc3RvcmVOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICBwcml2YXRlIGdldEh0dHBNZXRob2QodHlwZTogSHR0cE1ldGhvZCkge1xuICAgIHJldHVybiB0aGlzLm1lcmdlZENvbmZpZy5odHRwTWV0aG9kc1t0eXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcltrZXldIHx8IHRoaXMubWVyZ2VkQ29uZmlnW2tleV07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVVcmwoY29uZmlnOiBIdHRwQ29uZmlnLCBpZD86IGFueSkge1xuICAgIGNvbnN0IGN1c3RvbVVybCA9IChjb25maWcgfHwge30pLnVybDtcbiAgICBpZiAoaXNEZWZpbmVkKGlkKSkge1xuICAgICAgcmV0dXJuIGN1c3RvbVVybCB8fCBgJHt0aGlzLmFwaX0vJHtpZH1gO1xuICAgIH1cblxuICAgIHJldHVybiBjdXN0b21VcmwgfHwgdGhpcy5hcGk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKG1ldGhvZDogSHR0cE1ldGhvZCwgZXJyb3I6IGFueSwgZXJyb3JNc2c6IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2hFcnJvcih7XG4gICAgICBtZXRob2QsXG4gICAgICBlcnJvck1zZyxcbiAgICAgIHBheWxvYWQ6IGVycm9yXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cbn1cbiJdfQ==
import { isFunction, isObject, isNumber, isString, EntityService, isDefined } from '@datorama/akita';
import { Subject, throwError } from 'rxjs';
import { Injectable, ɵɵdefineInjectable, InjectionToken, inject } from '@angular/core';
import { Injectable, defineInjectable, InjectionToken, inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@@ -65,3 +65,12 @@ import { filter, map, tap, catchError, finalize } from 'rxjs/operators';

];
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = ɵɵdefineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = defineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
NgEntityServiceNotifier.prototype.dispatcher;
/** @type {?} */
NgEntityServiceNotifier.prototype.action$;
}

@@ -166,3 +175,12 @@ /**

];
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = ɵɵdefineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = defineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
NgEntityServiceLoader.prototype.dispatcher;
/** @type {?} */
NgEntityServiceLoader.prototype.loading$;
}

@@ -173,2 +191,12 @@ /**

*/
/**
* @record
*/
function NgEntityServiceGlobalConfig() { }
if (false) {
/** @type {?|undefined} */
NgEntityServiceGlobalConfig.prototype.baseUrl;
/** @type {?|undefined} */
NgEntityServiceGlobalConfig.prototype.httpMethods;
}
/** @type {?} */

@@ -347,2 +375,8 @@ const NG_ENTITY_SERVICE_CONFIG = new InjectionToken('NgEntityServiceGlobalConfig');

/**
* @return {?}
*/
getConfig() {
return this.mergedConfig;
}
/**
* @template T

@@ -602,4 +636,75 @@ * @param {?=} idOrConfig

}
if (false) {
/** @type {?} */
NgEntityService.prototype.baseUrl;
/** @type {?} */
NgEntityService.prototype.loader;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.http;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.notifier;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.globalConfig;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.mergedConfig;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.dispatchSuccess;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.dispatchError;
/**
* @type {?}
* @protected
*/
NgEntityService.prototype.store;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.config;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function NgEntityServiceParams() { }
if (false) {
/** @type {?|undefined} */
NgEntityServiceParams.prototype.baseUrl;
/** @type {?|undefined} */
NgEntityServiceParams.prototype.resourceName;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { HttpMethod, NG_ENTITY_SERVICE_CONFIG, NgEntityService, NgEntityServiceConfig, NgEntityServiceLoader, NgEntityServiceNotifier, defaultConfig, errorAction, filterMethod, filterStore, isID, mapResponse, mergeDeep, ofType, successAction };
//# sourceMappingURL=datorama-akita-ng-entity-service.js.map
import { isFunction, isObject, isNumber, isString, isDefined, EntityService } from '@datorama/akita';
import { Subject, throwError } from 'rxjs';
import { Injectable, ɵɵdefineInjectable, InjectionToken, inject } from '@angular/core';
import { Injectable, defineInjectable, InjectionToken, inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@@ -70,5 +70,14 @@ import { filter, map, tap, catchError, finalize } from 'rxjs/operators';

];
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = ɵɵdefineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
/** @nocollapse */ NgEntityServiceNotifier.ngInjectableDef = defineInjectable({ factory: function NgEntityServiceNotifier_Factory() { return new NgEntityServiceNotifier(); }, token: NgEntityServiceNotifier, providedIn: "root" });
return NgEntityServiceNotifier;
}());
if (false) {
/**
* @type {?}
* @private
*/
NgEntityServiceNotifier.prototype.dispatcher;
/** @type {?} */
NgEntityServiceNotifier.prototype.action$;
}

@@ -191,5 +200,14 @@ /**

];
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = ɵɵdefineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
/** @nocollapse */ NgEntityServiceLoader.ngInjectableDef = defineInjectable({ factory: function NgEntityServiceLoader_Factory() { return new NgEntityServiceLoader(); }, token: NgEntityServiceLoader, providedIn: "root" });
return NgEntityServiceLoader;
}());
if (false) {
/**
* @type {?}
* @private
*/
NgEntityServiceLoader.prototype.dispatcher;
/** @type {?} */
NgEntityServiceLoader.prototype.loading$;
}

@@ -216,2 +234,12 @@ var __read = (this && this.__read) || function (o, n) {

};
/**
* @record
*/
function NgEntityServiceGlobalConfig() { }
if (false) {
/** @type {?|undefined} */
NgEntityServiceGlobalConfig.prototype.baseUrl;
/** @type {?|undefined} */
NgEntityServiceGlobalConfig.prototype.httpMethods;
}
/** @type {?} */

@@ -235,3 +263,2 @@ var NG_ENTITY_SERVICE_CONFIG = new InjectionToken('NgEntityServiceGlobalConfig');

function mergeDeep(target) {
var _a, _b;
var sources = [];

@@ -241,2 +268,3 @@ for (var _i = 1; _i < arguments.length; _i++) {

}
var _a, _b;
if (!sources.length)

@@ -428,2 +456,11 @@ return target;

/**
* @return {?}
*/
NgEntityService.prototype.getConfig = /**
* @return {?}
*/
function () {
return this.mergedConfig;
};
/**
* @template T

@@ -778,4 +815,75 @@ * @param {?=} idOrConfig

}(EntityService));
if (false) {
/** @type {?} */
NgEntityService.prototype.baseUrl;
/** @type {?} */
NgEntityService.prototype.loader;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.http;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.notifier;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.globalConfig;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.mergedConfig;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.dispatchSuccess;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.dispatchError;
/**
* @type {?}
* @protected
*/
NgEntityService.prototype.store;
/**
* @type {?}
* @private
*/
NgEntityService.prototype.config;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function NgEntityServiceParams() { }
if (false) {
/** @type {?|undefined} */
NgEntityServiceParams.prototype.baseUrl;
/** @type {?|undefined} */
NgEntityServiceParams.prototype.resourceName;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { HttpMethod, NG_ENTITY_SERVICE_CONFIG, NgEntityService, NgEntityServiceConfig, NgEntityServiceLoader, NgEntityServiceNotifier, defaultConfig, errorAction, filterMethod, filterStore, isID, mapResponse, mergeDeep, ofType, successAction };
//# sourceMappingURL=datorama-akita-ng-entity-service.js.map

@@ -7,2 +7,3 @@ import { AddEntitiesOptions, EntityService, EntityState, EntityStore, getEntityType, getIDType } from '@datorama/akita';

import { NgEntityServiceLoader } from './ng-entity-service.loader';
import { NgEntityServiceGlobalConfig } from './ng-entity-service.config';
export declare const mapResponse: (config: HttpConfig<any>) => import("rxjs").OperatorFunction<{}, any>;

@@ -25,2 +26,3 @@ export declare class NgEntityService<S extends EntityState = any> extends EntityService<S> {

getHttp(): HttpClient;
getConfig(): NgEntityServiceParams & NgEntityServiceGlobalConfig;
/**

@@ -27,0 +29,0 @@ *

{
"name": "@datorama/akita-ng-entity-service",
"description": "Akita entity service",
"version": "1.2.0",
"version": "1.3.0",
"license": "Apache License 2.0",

@@ -6,0 +6,0 @@ "author": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc