Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

hg-async-render

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hg-async-render - npm Package Compare versions

Comparing version
2.2.3
to
2.2.4
+24
-11
bundles/hg-async-render.umd.js

@@ -305,2 +305,15 @@ (function (global, factory) {

var _this = this;
if (value === true && !this._shouldSkip) {
if (!!this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
else if (!!this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = undefined;
}
this._resolveRequested = false;
this._state.errored = false;
this._state.loading = false;
}
/** @type {?} */

@@ -315,6 +328,6 @@ var shouldAutoResolveOnce = (this.config === ResolverConfig.AutoResolveOnce && this._autoResolveOnceCompleted === false);

}
if (value && this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = null;
}
// if (value && this._dependencySubscription) {
// this._dependencySubscription.unsubscribe();
// this._dependencySubscription = null;
// }
this._shouldSkip = value;

@@ -367,3 +380,2 @@ },

function () {
_this._resolveRequested = false;
/** @type {?} */

@@ -376,2 +388,3 @@ var deps = !_this.dependencies ? rxjs.of(undefined) : rxjs.combineLatest(_this.dependencies).pipe((isAutoResolveOnceConfig || isDefaultConfig) ? operators.first() : operators.takeUntil(_this._isAlive$));

function (data) {
_this._resolveRequested = false;
_this._state.errored = false;

@@ -401,7 +414,7 @@ _this._state.loading = true;

var targetFn = (/** @type {?} */ (_this.target));
if (_this._functionObserverSubscription) {
_this._functionObserverSubscription.unsubscribe();
_this._functionObserverSubscription = undefined;
if (_this._functionObservableSubscription) {
_this._functionObservableSubscription.unsubscribe();
_this._functionObservableSubscription = undefined;
}
_this._functionObserverSubscription = targetFn(data).pipe(operators.takeUntil(_this._isAlive$)).subscribe({
_this._functionObservableSubscription = targetFn(data).pipe(operators.takeUntil(_this._isAlive$)).subscribe({
next: (/**

@@ -433,3 +446,3 @@ * @param {?} res

_this._state.errored = false;
_this._functionObserverSubscription = undefined;
_this._functionObservableSubscription = undefined;
})

@@ -508,3 +521,3 @@ });

*/
AsyncRenderResolver.prototype._functionObserverSubscription;
AsyncRenderResolver.prototype._functionObservableSubscription;
/** @type {?} */

@@ -511,0 +524,0 @@ AsyncRenderResolver.prototype.error;

@@ -15,3 +15,3 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("hg-async-render",["exports","@angular/core","@angular/common","rxjs","rxjs/operators"],t):t((e=e||self)["hg-async-render"]={},e.ng.core,e.ng.common,e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,n,o){"use strict";

and limitations under the License.
***************************************************************************** */var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function s(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var a=new t.InjectionToken("HG_ASYNC_RENDER_RESOLVER"),c={Default:0,AutoResolveOnce:1,AutoResolve:2};c[c.Default]="Default",c[c.AutoResolveOnce]="AutoResolveOnce",c[c.AutoResolve]="AutoResolve";var u=function(){function e(e,t){void 0===t&&(t=null),this.target=e,this.dependencies=t,this.config=c.Default,this._isAlive$=new n.Subject,this._shouldSkip=null,this._autoResolveOnceCompleted=!1,this._resolveRequested=!1,this._state={loading:!1,errored:!1},this._data$=new n.ReplaySubject(1),this._dataObservable$=this._data$.asObservable()}return Object.defineProperty(e.prototype,"isLoading",{get:function(){return this._state.loading},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasErrored",{get:function(){return this._state.errored},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data$",{get:function(){if(this.isFunctionObservableTarget)return this._dataObservable$;console.warn("hg-async-render: Action based async render resolvers don't have data$ property! Data management should be controlled via action handlers!")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shouldSkip",{get:function(){return this._shouldSkip},set:function(e){var t=this,r=this.config===c.AutoResolveOnce&&!1===this._autoResolveOnceCompleted;(this.config===c.AutoResolve&&!0===this._shouldSkip||r&&this._shouldSkip)&&!1===e&&n.asapScheduler.schedule((function(){t.resolve(!0)})),e&&this._dependencySubscription&&(this._dependencySubscription.unsubscribe(),this._dependencySubscription=null),this._shouldSkip=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFunctionObservableTarget",{get:function(){return this.target instanceof Function},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){var t=this;if(void 0===e&&(e=!1),!(this._resolveRequested||e&&this._autoResolveOnceCompleted)){this._resolveRequested=!0,this._dependencySubscription&&this._dependencySubscription.unsubscribe();var r=this.config===c.AutoResolveOnce,i=this.config===c.Default;r&&(this._autoResolveOnceCompleted=!0),this._state.errored=!1,this._state.loading=!0,this.error=void 0,n.asapScheduler.schedule((function(){t._resolveRequested=!1;var e=t.dependencies?n.combineLatest(t.dependencies).pipe(r||i?o.first():o.takeUntil(t._isAlive$)):n.of(void 0);t._dependencySubscription=e.subscribe((function(e){if(t._state.errored=!1,t._state.loading=!0,t.isFunctionObservableTarget){var r=t.target;t._functionObserverSubscription&&(t._functionObserverSubscription.unsubscribe(),t._functionObserverSubscription=void 0),t._functionObserverSubscription=r(e).pipe(o.takeUntil(t._isAlive$)).subscribe({next:function(e){t._data$.next(e),t._state.loading=!1,t._state.errored=!1},error:function(e){t._data$.error(e),t.error=e,t._state.loading=!1,t._state.errored=!0},complete:function(){t._data$.complete(),t._state.loading=!1,t._state.errored=!1,t._functionObserverSubscription=void 0}})}else{var n=t.target;n.loadAction(e),n.success$.pipe(o.first(),o.takeUntil(t._isAlive$)).subscribe((function(){t._state.loading=!1,t._state.errored=!1})),n.failure$.pipe(o.first(),o.takeUntil(t._isAlive$)).subscribe((function(){t._state.loading=!1,t._state.errored=!0}))}}))}))}},e.prototype.destroy=function(){if(this._isAlive$.next(),this._isAlive$.complete(),this._state.loading){var e=this.target;e.cancelAction&&e.cancelAction()}},e}();var l=function(){function e(e){void 0===e&&(e=[]),this.resolvers=e,this.resolvers=[].concat(this.resolvers||[])}return Object.defineProperty(e.prototype,"isLoading",{get:function(){return this.resolvers.reduce((function(e,t){return e||t.isLoading}),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasError",{get:function(){return this.resolvers.reduce((function(e,t){return e||t.hasErrored}),!1)},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this.resolvers.forEach((function(e){return e.destroy()}))},e.prototype.resolve=function(){this.resolvers.forEach((function(e){e.shouldSkip||e.resolve()}))},e}();var p=function(e){function r(t){void 0===t&&(t=[]);var r=e.call(this,t)||this;return r.refresh$=new n.Subject,r.autoHideLoader=!1,r.autoShowError=!1,r.refresh$.subscribe((function(){r.resolve()})),r}return s(r,e),r.prototype.ngOnInit=function(){this.resolve()},r.prototype.ngOnDestroy=function(){this.refresh$.complete(),this.destroy()},r.decorators=[{type:t.Component,args:[{selector:"hg-async-render",template:'<ng-container *ngIf="loaderTemplateRef && (!autoHideLoader || isLoading)">\n <ng-container *ngTemplateOutlet="loaderTemplateRef; context: { $implicit: isLoading }"></ng-container>\n</ng-container>\n<ng-container *ngIf="errorTemplateRef && (!autoShowError || hasError)">\n <ng-container *ngTemplateOutlet="errorTemplateRef; context: { $implicit: hasError }"></ng-container>\n</ng-container>\n<ng-content></ng-content>',exportAs:"asyncRender",styles:[""]}]}],r.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[a]},{type:t.Optional}]}]},r.propDecorators={loaderTemplateRef:[{type:t.Input}],errorTemplateRef:[{type:t.Input}],autoHideLoader:[{type:t.Input}],autoShowError:[{type:t.Input}]},r}(l);var d=function(e){function r(t,r,o){void 0===t&&(t=[]);var i=e.call(this,t)||this;return i.refresh$=new n.Subject,i.refresh$.subscribe((function(){i.resolve()})),r.createEmbeddedView(o,{$implicit:i}),i}return s(r,e),r.prototype.ngOnInit=function(){this.resolve()},r.prototype.ngOnDestroy=function(){this.refresh$.complete(),this.destroy()},r.decorators=[{type:t.Directive,args:[{selector:"[hgAsyncRender]",exportAs:"asyncRender"}]}],r.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[a]},{type:t.Optional}]},{type:t.ViewContainerRef},{type:t.TemplateRef}]},r}(l);var f=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[p,d],imports:[r.CommonModule],exports:[p,d]}]}],e}();e.AsyncRenderComponent=p,e.AsyncRenderDirective=d,e.AsyncRenderModule=f,e.AsyncRenderResolver=u,e.HG_ASYNC_RENDER_RESOLVER=a,e.ResolverConfig=c,e.ɵa=l,Object.defineProperty(e,"__esModule",{value:!0})}));
***************************************************************************** */var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function s(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var a=new t.InjectionToken("HG_ASYNC_RENDER_RESOLVER"),c={Default:0,AutoResolveOnce:1,AutoResolve:2};c[c.Default]="Default",c[c.AutoResolveOnce]="AutoResolveOnce",c[c.AutoResolve]="AutoResolve";var u=function(){function e(e,t){void 0===t&&(t=null),this.target=e,this.dependencies=t,this.config=c.Default,this._isAlive$=new n.Subject,this._shouldSkip=null,this._autoResolveOnceCompleted=!1,this._resolveRequested=!1,this._state={loading:!1,errored:!1},this._data$=new n.ReplaySubject(1),this._dataObservable$=this._data$.asObservable()}return Object.defineProperty(e.prototype,"isLoading",{get:function(){return this._state.loading},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasErrored",{get:function(){return this._state.errored},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data$",{get:function(){if(this.isFunctionObservableTarget)return this._dataObservable$;console.warn("hg-async-render: Action based async render resolvers don't have data$ property! Data management should be controlled via action handlers!")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shouldSkip",{get:function(){return this._shouldSkip},set:function(e){var t=this;!0!==e||this._shouldSkip||(this._functionObservableSubscription?(this._functionObservableSubscription.unsubscribe(),this._functionObservableSubscription=void 0):this._dependencySubscription&&(this._dependencySubscription.unsubscribe(),this._dependencySubscription=void 0),this._resolveRequested=!1,this._state.errored=!1,this._state.loading=!1);var r=this.config===c.AutoResolveOnce&&!1===this._autoResolveOnceCompleted;(this.config===c.AutoResolve&&!0===this._shouldSkip||r&&this._shouldSkip)&&!1===e&&n.asapScheduler.schedule((function(){t.resolve(!0)})),this._shouldSkip=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isFunctionObservableTarget",{get:function(){return this.target instanceof Function},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){var t=this;if(void 0===e&&(e=!1),!(this._resolveRequested||e&&this._autoResolveOnceCompleted)){this._resolveRequested=!0,this._dependencySubscription&&this._dependencySubscription.unsubscribe();var r=this.config===c.AutoResolveOnce,i=this.config===c.Default;r&&(this._autoResolveOnceCompleted=!0),this._state.errored=!1,this._state.loading=!0,this.error=void 0,n.asapScheduler.schedule((function(){var e=t.dependencies?n.combineLatest(t.dependencies).pipe(r||i?o.first():o.takeUntil(t._isAlive$)):n.of(void 0);t._dependencySubscription=e.subscribe((function(e){if(t._resolveRequested=!1,t._state.errored=!1,t._state.loading=!0,t.isFunctionObservableTarget){var r=t.target;t._functionObservableSubscription&&(t._functionObservableSubscription.unsubscribe(),t._functionObservableSubscription=void 0),t._functionObservableSubscription=r(e).pipe(o.takeUntil(t._isAlive$)).subscribe({next:function(e){t._data$.next(e),t._state.loading=!1,t._state.errored=!1},error:function(e){t._data$.error(e),t.error=e,t._state.loading=!1,t._state.errored=!0},complete:function(){t._data$.complete(),t._state.loading=!1,t._state.errored=!1,t._functionObservableSubscription=void 0}})}else{var n=t.target;n.loadAction(e),n.success$.pipe(o.first(),o.takeUntil(t._isAlive$)).subscribe((function(){t._state.loading=!1,t._state.errored=!1})),n.failure$.pipe(o.first(),o.takeUntil(t._isAlive$)).subscribe((function(){t._state.loading=!1,t._state.errored=!0}))}}))}))}},e.prototype.destroy=function(){if(this._isAlive$.next(),this._isAlive$.complete(),this._state.loading){var e=this.target;e.cancelAction&&e.cancelAction()}},e}();var l=function(){function e(e){void 0===e&&(e=[]),this.resolvers=e,this.resolvers=[].concat(this.resolvers||[])}return Object.defineProperty(e.prototype,"isLoading",{get:function(){return this.resolvers.reduce((function(e,t){return e||t.isLoading}),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasError",{get:function(){return this.resolvers.reduce((function(e,t){return e||t.hasErrored}),!1)},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this.resolvers.forEach((function(e){return e.destroy()}))},e.prototype.resolve=function(){this.resolvers.forEach((function(e){e.shouldSkip||e.resolve()}))},e}();var p=function(e){function r(t){void 0===t&&(t=[]);var r=e.call(this,t)||this;return r.refresh$=new n.Subject,r.autoHideLoader=!1,r.autoShowError=!1,r.refresh$.subscribe((function(){r.resolve()})),r}return s(r,e),r.prototype.ngOnInit=function(){this.resolve()},r.prototype.ngOnDestroy=function(){this.refresh$.complete(),this.destroy()},r.decorators=[{type:t.Component,args:[{selector:"hg-async-render",template:'<ng-container *ngIf="loaderTemplateRef && (!autoHideLoader || isLoading)">\n <ng-container *ngTemplateOutlet="loaderTemplateRef; context: { $implicit: isLoading }"></ng-container>\n</ng-container>\n<ng-container *ngIf="errorTemplateRef && (!autoShowError || hasError)">\n <ng-container *ngTemplateOutlet="errorTemplateRef; context: { $implicit: hasError }"></ng-container>\n</ng-container>\n<ng-content></ng-content>',exportAs:"asyncRender",styles:[""]}]}],r.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[a]},{type:t.Optional}]}]},r.propDecorators={loaderTemplateRef:[{type:t.Input}],errorTemplateRef:[{type:t.Input}],autoHideLoader:[{type:t.Input}],autoShowError:[{type:t.Input}]},r}(l);var d=function(e){function r(t,r,o){void 0===t&&(t=[]);var i=e.call(this,t)||this;return i.refresh$=new n.Subject,i.refresh$.subscribe((function(){i.resolve()})),r.createEmbeddedView(o,{$implicit:i}),i}return s(r,e),r.prototype.ngOnInit=function(){this.resolve()},r.prototype.ngOnDestroy=function(){this.refresh$.complete(),this.destroy()},r.decorators=[{type:t.Directive,args:[{selector:"[hgAsyncRender]",exportAs:"asyncRender"}]}],r.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[a]},{type:t.Optional}]},{type:t.ViewContainerRef},{type:t.TemplateRef}]},r}(l);var f=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[p,d],imports:[r.CommonModule],exports:[p,d]}]}],e}();e.AsyncRenderComponent=p,e.AsyncRenderDirective=d,e.AsyncRenderModule=f,e.AsyncRenderResolver=u,e.HG_ASYNC_RENDER_RESOLVER=a,e.ResolverConfig=c,e.ɵa=l,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=hg-async-render.umd.min.js.map

@@ -86,2 +86,15 @@ /**

set shouldSkip(value) {
if (value === true && !this._shouldSkip) {
if (!!this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
else if (!!this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = undefined;
}
this._resolveRequested = false;
this._state.errored = false;
this._state.loading = false;
}
/** @type {?} */

@@ -96,6 +109,6 @@ const shouldAutoResolveOnce = (this.config === ResolverConfig.AutoResolveOnce && this._autoResolveOnceCompleted === false);

}
if (value && this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = null;
}
// if (value && this._dependencySubscription) {
// this._dependencySubscription.unsubscribe();
// this._dependencySubscription = null;
// }
this._shouldSkip = value;

@@ -141,3 +154,2 @@ }

() => {
this._resolveRequested = false;
/** @type {?} */

@@ -150,2 +162,3 @@ const deps = !this.dependencies ? of(undefined) : combineLatest(this.dependencies).pipe((isAutoResolveOnceConfig || isDefaultConfig) ? first() : takeUntil(this._isAlive$));

data => {
this._resolveRequested = false;
this._state.errored = false;

@@ -175,7 +188,7 @@ this._state.loading = true;

const targetFn = (/** @type {?} */ (this.target));
if (this._functionObserverSubscription) {
this._functionObserverSubscription.unsubscribe();
this._functionObserverSubscription = undefined;
if (this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
this._functionObserverSubscription = targetFn(data).pipe(takeUntil(this._isAlive$)).subscribe({
this._functionObservableSubscription = targetFn(data).pipe(takeUntil(this._isAlive$)).subscribe({
next: (/**

@@ -207,3 +220,3 @@ * @param {?} res

this._state.errored = false;
this._functionObserverSubscription = undefined;
this._functionObservableSubscription = undefined;
})

@@ -278,3 +291,3 @@ });

*/
AsyncRenderResolver.prototype._functionObserverSubscription;
AsyncRenderResolver.prototype._functionObservableSubscription;
/** @type {?} */

@@ -293,2 +306,2 @@ AsyncRenderResolver.prototype.error;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtcmVuZGVyLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaGctYXN5bmMtcmVuZGVyLyIsInNvdXJjZXMiOlsibGliL2FzeW5jLXJlbmRlci1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0MsTUFBTSxPQUFPLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDOzs7SUFHNUYsVUFBTztJQUNQLGtCQUFlO0lBQ2YsY0FBVzs7Ozs7Ozs7OztBQUdiLDZCQUtDOzs7SUFKQyxvQ0FBOEI7O0lBQzlCLHNDQUF5Qjs7SUFDekIsa0NBQTBCOztJQUMxQixrQ0FBMEI7Ozs7O0FBSzVCLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBcUU5QixZQUNVLE1BQTBELEVBQzFELGVBQW9ELElBQUk7UUFEeEQsV0FBTSxHQUFOLE1BQU0sQ0FBb0Q7UUFDMUQsaUJBQVksR0FBWixZQUFZLENBQTRDO1FBckVsRSxXQUFNLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQzs7UUFHeEIsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDOztRQUd6QyxnQkFBVyxHQUFHLElBQUksQ0FBQzs7UUFHbkIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDOztRQU1sQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7O1FBRzFCLFdBQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDOztRQUc1QyxXQUFNLEdBQUcsSUFBSSxhQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7O1FBR2pDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUE4Q2xELENBQUM7Ozs7SUF6Q0wsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Ozs7SUFFL0MsSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Ozs7SUFJaEQsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUFFO1FBQ3RFLDJDQUEyQztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLDRJQUE0SSxDQUFDLENBQUM7UUFDM0osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Ozs7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFjOztjQUNyQixxQkFBcUIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMseUJBQXlCLEtBQUssS0FBSyxDQUFDO1FBQzFILElBQ0UsQ0FDRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQztZQUN6RSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDNUMsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUNwQjtZQUNBLGFBQWEsQ0FBQyxRQUFROzs7WUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7U0FDdkQ7UUFDRCxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDekMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDOzs7O0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxJQUFJLDBCQUEwQjtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLFlBQVksUUFBUSxDQUFDO0lBQ3pDLENBQUM7Ozs7O0lBT0QsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLO1FBQ2xCLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ25GLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FBRTs7Y0FDM0UsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsZUFBZTs7Y0FDeEUsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLE9BQU87UUFFOUQsSUFBSSx1QkFBdUIsRUFBRTtZQUFFLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7U0FBRTtRQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXZCLGFBQWEsQ0FBQyxRQUFROzs7UUFBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQzs7a0JBRXpCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ3JGLENBQUMsdUJBQXVCLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUNuRjtZQUVELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsU0FBUzs7OztZQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTs7MEJBQzlCLE1BQU0sR0FBRyxtQkFBQSxJQUFJLENBQUMsTUFBTSxFQUFxQjtvQkFDL0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7OztvQkFBQyxHQUFHLEVBQUU7d0JBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUM5QixDQUFDLEVBQUMsQ0FBQztvQkFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUzs7O29CQUFDLEdBQUcsRUFBRTt3QkFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQzdCLENBQUMsRUFBQyxDQUFDO2lCQUNKO3FCQUFNOzswQkFDQyxRQUFRLEdBQUcsbUJBQUEsSUFBSSxDQUFDLE1BQU0sRUFBa0M7b0JBQzlELElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFO3dCQUN0QyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ2pELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxTQUFTLENBQUM7cUJBQ2hEO29CQUNELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQzVGLElBQUk7Ozs7d0JBQUUsR0FBRyxDQUFDLEVBQUU7NEJBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzs0QkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUM5QixDQUFDLENBQUE7d0JBQ0QsS0FBSzs7Ozt3QkFBRSxHQUFHLENBQUMsRUFBRTs0QkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7NEJBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzs0QkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO3dCQUM3QixDQUFDLENBQUE7d0JBQ0QsUUFBUTs7O3dCQUFFLEdBQUcsRUFBRTs0QkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDOzRCQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7NEJBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzs0QkFDNUIsSUFBSSxDQUFDLDZCQUE2QixHQUFHLFNBQVMsQ0FBQzt3QkFDakQsQ0FBQyxDQUFBO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPO1NBQUU7O2NBQy9CLE1BQU0sR0FBRyxtQkFBQSxJQUFJLENBQUMsTUFBTSxFQUFxQjtRQUMvQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDdkIsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztDQUNGOzs7SUFsSkMscUNBQWdDOzs7OztJQUdoQyx3Q0FBaUQ7Ozs7O0lBR2pELDBDQUEyQjs7Ozs7SUFHM0Isd0RBQTBDOzs7OztJQUcxQyxzREFBOEM7Ozs7O0lBRzlDLGdEQUFrQzs7Ozs7SUFHbEMscUNBQW9EOzs7OztJQUdwRCxxQ0FBeUM7Ozs7O0lBR3pDLCtDQUFzRDs7Ozs7SUFHdEQsNERBQW9EOztJQU1wRCxvQ0FBYTs7Ozs7SUFtQ1gscUNBQWtFOzs7OztJQUNsRSwyQ0FBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgYXNhcFNjaGVkdWxlciwgU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YsIFN1YnNjcmlwdGlvbiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEhHX0FTWU5DX1JFTkRFUl9SRVNPTFZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdIR19BU1lOQ19SRU5ERVJfUkVTT0xWRVInKTtcblxuZXhwb3J0IGVudW0gUmVzb2x2ZXJDb25maWcge1xuICBEZWZhdWx0LFxuICBBdXRvUmVzb2x2ZU9uY2UsXG4gIEF1dG9SZXNvbHZlXG59XG5cbmludGVyZmFjZSBJQWN0aW9uc1RhcmdldDxUPiB7XG4gIGxvYWRBY3Rpb246IChkYXRhOiBUKSA9PiB2b2lkO1xuICBjYW5jZWxBY3Rpb246ICgpID0+IHZvaWQ7XG4gIHN1Y2Nlc3MkOiBPYnNlcnZhYmxlPGFueT47XG4gIGZhaWx1cmUkOiBPYnNlcnZhYmxlPGFueT47XG59XG5cbnR5cGUgRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0PFQsIFI+ID0gKGRhdGE6IFQpID0+IE9ic2VydmFibGU8Uj47XG5cbmV4cG9ydCBjbGFzcyBBc3luY1JlbmRlclJlc29sdmVyPFQgPSBhbnksIFIgPSBhbnk+IHtcblxuICBjb25maWcgPSBSZXNvbHZlckNvbmZpZy5EZWZhdWx0O1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2lzQWxpdmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9zaG91bGRTa2lwID0gbnVsbDtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQgPSBmYWxzZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kZXBlbmRlbmN5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfcmVzb2x2ZVJlcXVlc3RlZCA9IGZhbHNlO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX3N0YXRlID0geyBsb2FkaW5nOiBmYWxzZSwgZXJyb3JlZDogZmFsc2UgfTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kYXRhJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFI+KDEpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2RhdGFPYnNlcnZhYmxlJCA9IHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2Z1bmN0aW9uT2JzZXJ2ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgaXNMb2FkaW5nKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUubG9hZGluZzsgfVxuXG4gIGdldCBoYXNFcnJvcmVkKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUuZXJyb3JlZDsgfVxuXG4gIGVycm9yOiBFcnJvcjtcblxuICBnZXQgZGF0YSQoKSB7XG4gICAgaWYgKHRoaXMuaXNGdW5jdGlvbk9ic2VydmFibGVUYXJnZXQpIHsgcmV0dXJuIHRoaXMuX2RhdGFPYnNlcnZhYmxlJDsgfVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICBjb25zb2xlLndhcm4oJ2hnLWFzeW5jLXJlbmRlcjogQWN0aW9uIGJhc2VkIGFzeW5jIHJlbmRlciByZXNvbHZlcnMgZG9uXFwndCBoYXZlIGRhdGEkIHByb3BlcnR5ISBEYXRhIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGNvbnRyb2xsZWQgdmlhIGFjdGlvbiBoYW5kbGVycyEnKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc2V0IHNob3VsZFNraXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzaG91bGRBdXRvUmVzb2x2ZU9uY2UgPSAodGhpcy5jb25maWcgPT09IFJlc29sdmVyQ29uZmlnLkF1dG9SZXNvbHZlT25jZSAmJiB0aGlzLl9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQgPT09IGZhbHNlKTtcbiAgICBpZiAoXG4gICAgICAoXG4gICAgICAgICh0aGlzLmNvbmZpZyA9PT0gUmVzb2x2ZXJDb25maWcuQXV0b1Jlc29sdmUgJiYgdGhpcy5fc2hvdWxkU2tpcCA9PT0gdHJ1ZSkgfHxcbiAgICAgICAgKHNob3VsZEF1dG9SZXNvbHZlT25jZSAmJiB0aGlzLl9zaG91bGRTa2lwKVxuICAgICAgKSAmJiB2YWx1ZSA9PT0gZmFsc2VcbiAgICApIHtcbiAgICAgIGFzYXBTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4geyB0aGlzLnJlc29sdmUodHJ1ZSk7IH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUgJiYgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuX3Nob3VsZFNraXAgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzaG91bGRTa2lwKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG91bGRTa2lwO1xuICB9XG5cbiAgZ2V0IGlzRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRhcmdldCBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0YXJnZXQ6IElBY3Rpb25zVGFyZ2V0PFQ+IHwgRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0PFQsIFI+LFxuICAgIHByaXZhdGUgZGVwZW5kZW5jaWVzOiBPYnNlcnZhYmxlPGFueT4gfCBPYnNlcnZhYmxlPGFueT5bXSA9IG51bGxcbiAgKSB7IH1cblxuICByZXNvbHZlKGF1dG8gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLl9yZXNvbHZlUmVxdWVzdGVkIHx8IChhdXRvICYmIHRoaXMuX2F1dG9SZXNvbHZlT25jZUNvbXBsZXRlZCkpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbikgeyB0aGlzLl9kZXBlbmRlbmN5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH1cbiAgICBjb25zdCBpc0F1dG9SZXNvbHZlT25jZUNvbmZpZyA9IHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5BdXRvUmVzb2x2ZU9uY2U7XG4gICAgY29uc3QgaXNEZWZhdWx0Q29uZmlnID0gdGhpcy5jb25maWcgPT09IFJlc29sdmVyQ29uZmlnLkRlZmF1bHQ7XG5cbiAgICBpZiAoaXNBdXRvUmVzb2x2ZU9uY2VDb25maWcpIHsgdGhpcy5fYXV0b1Jlc29sdmVPbmNlQ29tcGxldGVkID0gdHJ1ZTsgfVxuICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yID0gdW5kZWZpbmVkO1xuXG4gICAgYXNhcFNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yZXNvbHZlUmVxdWVzdGVkID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGRlcHMgPSAhdGhpcy5kZXBlbmRlbmNpZXMgPyBvZih1bmRlZmluZWQpIDogY29tYmluZUxhdGVzdCh0aGlzLmRlcGVuZGVuY2llcykucGlwZShcbiAgICAgICAgKGlzQXV0b1Jlc29sdmVPbmNlQ29uZmlnIHx8IGlzRGVmYXVsdENvbmZpZykgPyBmaXJzdCgpIDogdGFrZVVudGlsKHRoaXMuX2lzQWxpdmUkKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbiA9IGRlcHMuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuaXNGdW5jdGlvbk9ic2VydmFibGVUYXJnZXQpIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCBhcyBJQWN0aW9uc1RhcmdldDxUPjtcbiAgICAgICAgICB0YXJnZXQubG9hZEFjdGlvbihkYXRhKTtcbiAgICAgICAgICB0YXJnZXQuc3VjY2VzcyQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5faXNBbGl2ZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRhcmdldC5mYWlsdXJlJC5waXBlKGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRGbiA9IHRoaXMudGFyZ2V0IGFzIEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPjtcbiAgICAgICAgICBpZiAodGhpcy5fZnVuY3Rpb25PYnNlcnZlclN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZlclN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZlclN1YnNjcmlwdGlvbiA9IHRhcmdldEZuKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuX2lzQWxpdmUkKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2RhdGEkLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2RhdGEkLmVycm9yKGVycik7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnI7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZGF0YSQuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2ZXJTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9pc0FsaXZlJC5uZXh0KCk7XG4gICAgdGhpcy5faXNBbGl2ZSQuY29tcGxldGUoKTtcblxuICAgIGlmICghdGhpcy5fc3RhdGUubG9hZGluZykgeyByZXR1cm47IH1cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCBhcyBJQWN0aW9uc1RhcmdldDxUPjtcbiAgICBpZiAodGFyZ2V0LmNhbmNlbEFjdGlvbikge1xuICAgICAgdGFyZ2V0LmNhbmNlbEFjdGlvbigpO1xuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtcmVuZGVyLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaGctYXN5bmMtcmVuZGVyLyIsInNvdXJjZXMiOlsibGliL2FzeW5jLXJlbmRlci1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0MsTUFBTSxPQUFPLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDOzs7SUFHNUYsVUFBTztJQUNQLGtCQUFlO0lBQ2YsY0FBVzs7Ozs7Ozs7OztBQUdiLDZCQUtDOzs7SUFKQyxvQ0FBOEI7O0lBQzlCLHNDQUF5Qjs7SUFDekIsa0NBQTBCOztJQUMxQixrQ0FBMEI7Ozs7O0FBSzVCLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBa0Y5QixZQUNVLE1BQTBELEVBQzFELGVBQW9ELElBQUk7UUFEeEQsV0FBTSxHQUFOLE1BQU0sQ0FBb0Q7UUFDMUQsaUJBQVksR0FBWixZQUFZLENBQTRDO1FBbEZsRSxXQUFNLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQzs7UUFHeEIsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDOztRQUd6QyxnQkFBVyxHQUFHLElBQUksQ0FBQzs7UUFHbkIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDOztRQU1sQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7O1FBRzFCLFdBQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDOztRQUc1QyxXQUFNLEdBQUcsSUFBSSxhQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7O1FBR2pDLHFC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SUFHdEQsOERBQXNEOztJQU10RCxvQ0FBYTs7Ozs7SUFnRFgscUNBQWtFOzs7OztJQUNsRSwyQ0FBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgYXNhcFNjaGVkdWxlciwgU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YsIFN1YnNjcmlwdGlvbiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEhHX0FTWU5DX1JFTkRFUl9SRVNPTFZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdIR19BU1lOQ19SRU5ERVJfUkVTT0xWRVInKTtcblxuZXhwb3J0IGVudW0gUmVzb2x2ZXJDb25maWcge1xuICBEZWZhdWx0LFxuICBBdXRvUmVzb2x2ZU9uY2UsXG4gIEF1dG9SZXNvbHZlXG59XG5cbmludGVyZmFjZSBJQWN0aW9uc1RhcmdldDxUPiB7XG4gIGxvYWRBY3Rpb246IChkYXRhOiBUKSA9PiB2b2lkO1xuICBjYW5jZWxBY3Rpb246ICgpID0+IHZvaWQ7XG4gIHN1Y2Nlc3MkOiBPYnNlcnZhYmxlPGFueT47XG4gIGZhaWx1cmUkOiBPYnNlcnZhYmxlPGFueT47XG59XG5cbnR5cGUgRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0PFQsIFI+ID0gKGRhdGE6IFQpID0+IE9ic2VydmFibGU8Uj47XG5cbmV4cG9ydCBjbGFzcyBBc3luY1JlbmRlclJlc29sdmVyPFQgPSBhbnksIFIgPSBhbnk+IHtcblxuICBjb25maWcgPSBSZXNvbHZlckNvbmZpZy5EZWZhdWx0O1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2lzQWxpdmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9zaG91bGRTa2lwID0gbnVsbDtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQgPSBmYWxzZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kZXBlbmRlbmN5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfcmVzb2x2ZVJlcXVlc3RlZCA9IGZhbHNlO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX3N0YXRlID0geyBsb2FkaW5nOiBmYWxzZSwgZXJyb3JlZDogZmFsc2UgfTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kYXRhJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFI+KDEpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2RhdGFPYnNlcnZhYmxlJCA9IHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2Z1bmN0aW9uT2JzZXJ2YWJsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBpc0xvYWRpbmcoKSB7IHJldHVybiB0aGlzLl9zdGF0ZS5sb2FkaW5nOyB9XG5cbiAgZ2V0IGhhc0Vycm9yZWQoKSB7IHJldHVybiB0aGlzLl9zdGF0ZS5lcnJvcmVkOyB9XG5cbiAgZXJyb3I6IEVycm9yO1xuXG4gIGdldCBkYXRhJCgpIHtcbiAgICBpZiAodGhpcy5pc0Z1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldCkgeyByZXR1cm4gdGhpcy5fZGF0YU9ic2VydmFibGUkOyB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgIGNvbnNvbGUud2FybignaGctYXN5bmMtcmVuZGVyOiBBY3Rpb24gYmFzZWQgYXN5bmMgcmVuZGVyIHJlc29sdmVycyBkb25cXCd0IGhhdmUgZGF0YSQgcHJvcGVydHkhIERhdGEgbWFuYWdlbWVudCBzaG91bGQgYmUgY29udHJvbGxlZCB2aWEgYWN0aW9uIGhhbmRsZXJzIScpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzZXQgc2hvdWxkU2tpcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSAmJiAhdGhpcy5fc2hvdWxkU2tpcCkge1xuICAgICAgaWYgKCEhdGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2YWJsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9mdW5jdGlvbk9ic2VydmFibGVTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKCEhdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLl9kZXBlbmRlbmN5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aGlzLl9yZXNvbHZlUmVxdWVzdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvdWxkQXV0b1Jlc29sdmVPbmNlID0gKHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5BdXRvUmVzb2x2ZU9uY2UgJiYgdGhpcy5fYXV0b1Jlc29sdmVPbmNlQ29tcGxldGVkID09PSBmYWxzZSk7XG4gICAgaWYgKFxuICAgICAgKFxuICAgICAgICAodGhpcy5jb25maWcgPT09IFJlc29sdmVyQ29uZmlnLkF1dG9SZXNvbHZlICYmIHRoaXMuX3Nob3VsZFNraXAgPT09IHRydWUpIHx8XG4gICAgICAgIChzaG91bGRBdXRvUmVzb2x2ZU9uY2UgJiYgdGhpcy5fc2hvdWxkU2tpcClcbiAgICAgICkgJiYgdmFsdWUgPT09IGZhbHNlXG4gICAgKSB7XG4gICAgICBhc2FwU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHsgdGhpcy5yZXNvbHZlKHRydWUpOyB9KTtcbiAgICB9XG4gICAgLy8gaWYgKHZhbHVlICYmIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIC8vIH1cbiAgICB0aGlzLl9zaG91bGRTa2lwID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2hvdWxkU2tpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2tpcDtcbiAgfVxuXG4gIGdldCBpc0Z1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldCgpIHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXQgaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFyZ2V0OiBJQWN0aW9uc1RhcmdldDxUPiB8IEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPixcbiAgICBwcml2YXRlIGRlcGVuZGVuY2llczogT2JzZXJ2YWJsZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+W10gPSBudWxsXG4gICkgeyB9XG5cbiAgcmVzb2x2ZShhdXRvID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCB8fCAoYXV0byAmJiB0aGlzLl9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQpKSB7IHJldHVybjsgfVxuICAgIHRoaXMuX3Jlc29sdmVSZXF1ZXN0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24pIHsgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9XG4gICAgY29uc3QgaXNBdXRvUmVzb2x2ZU9uY2VDb25maWcgPSB0aGlzLmNvbmZpZyA9PT0gUmVzb2x2ZXJDb25maWcuQXV0b1Jlc29sdmVPbmNlO1xuICAgIGNvbnN0IGlzRGVmYXVsdENvbmZpZyA9IHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5EZWZhdWx0O1xuXG4gICAgaWYgKGlzQXV0b1Jlc29sdmVPbmNlQ29uZmlnKSB7IHRoaXMuX2F1dG9SZXNvbHZlT25jZUNvbXBsZXRlZCA9IHRydWU7IH1cbiAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvciA9IHVuZGVmaW5lZDtcblxuICAgIGFzYXBTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuXG4gICAgICBjb25zdCBkZXBzID0gIXRoaXMuZGVwZW5kZW5jaWVzID8gb2YodW5kZWZpbmVkKSA6IGNvbWJpbmVMYXRlc3QodGhpcy5kZXBlbmRlbmNpZXMpLnBpcGUoXG4gICAgICAgIChpc0F1dG9SZXNvbHZlT25jZUNvbmZpZyB8fCBpc0RlZmF1bHRDb25maWcpID8gZmlyc3QoKSA6IHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJClcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSBkZXBzLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuaXNGdW5jdGlvbk9ic2VydmFibGVUYXJnZXQpIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCBhcyBJQWN0aW9uc1RhcmdldDxUPjtcbiAgICAgICAgICB0YXJnZXQubG9hZEFjdGlvbihkYXRhKTtcbiAgICAgICAgICB0YXJnZXQuc3VjY2VzcyQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5faXNBbGl2ZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRhcmdldC5mYWlsdXJlJC5waXBlKGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRGbiA9IHRoaXMudGFyZ2V0IGFzIEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPjtcbiAgICAgICAgICBpZiAodGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9mdW5jdGlvbk9ic2VydmFibGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2YWJsZVN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uID0gdGFyZ2V0Rm4oZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5faXNBbGl2ZSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZGF0YSQubmV4dChyZXMpO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZGF0YSQuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycjtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9kYXRhJC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5faXNBbGl2ZSQubmV4dCgpO1xuICAgIHRoaXMuX2lzQWxpdmUkLmNvbXBsZXRlKCk7XG5cbiAgICBpZiAoIXRoaXMuX3N0YXRlLmxvYWRpbmcpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQgYXMgSUFjdGlvbnNUYXJnZXQ8VD47XG4gICAgaWYgKHRhcmdldC5jYW5jZWxBY3Rpb24pIHtcbiAgICAgIHRhcmdldC5jYW5jZWxBY3Rpb24oKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -106,2 +106,15 @@ /**

var _this = this;
if (value === true && !this._shouldSkip) {
if (!!this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
else if (!!this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = undefined;
}
this._resolveRequested = false;
this._state.errored = false;
this._state.loading = false;
}
/** @type {?} */

@@ -116,6 +129,6 @@ var shouldAutoResolveOnce = (this.config === ResolverConfig.AutoResolveOnce && this._autoResolveOnceCompleted === false);

}
if (value && this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = null;
}
// if (value && this._dependencySubscription) {
// this._dependencySubscription.unsubscribe();
// this._dependencySubscription = null;
// }
this._shouldSkip = value;

@@ -168,3 +181,2 @@ },

function () {
_this._resolveRequested = false;
/** @type {?} */

@@ -177,2 +189,3 @@ var deps = !_this.dependencies ? of(undefined) : combineLatest(_this.dependencies).pipe((isAutoResolveOnceConfig || isDefaultConfig) ? first() : takeUntil(_this._isAlive$));

function (data) {
_this._resolveRequested = false;
_this._state.errored = false;

@@ -202,7 +215,7 @@ _this._state.loading = true;

var targetFn = (/** @type {?} */ (_this.target));
if (_this._functionObserverSubscription) {
_this._functionObserverSubscription.unsubscribe();
_this._functionObserverSubscription = undefined;
if (_this._functionObservableSubscription) {
_this._functionObservableSubscription.unsubscribe();
_this._functionObservableSubscription = undefined;
}
_this._functionObserverSubscription = targetFn(data).pipe(takeUntil(_this._isAlive$)).subscribe({
_this._functionObservableSubscription = targetFn(data).pipe(takeUntil(_this._isAlive$)).subscribe({
next: (/**

@@ -234,3 +247,3 @@ * @param {?} res

_this._state.errored = false;
_this._functionObserverSubscription = undefined;
_this._functionObservableSubscription = undefined;
})

@@ -313,3 +326,3 @@ });

*/
AsyncRenderResolver.prototype._functionObserverSubscription;
AsyncRenderResolver.prototype._functionObservableSubscription;
/** @type {?} */

@@ -328,2 +341,2 @@ AsyncRenderResolver.prototype.error;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtcmVuZGVyLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaGctYXN5bmMtcmVuZGVyLyIsInNvdXJjZXMiOlsibGliL2FzeW5jLXJlbmRlci1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0MsTUFBTSxLQUFPLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDOzs7SUFHNUYsVUFBTztJQUNQLGtCQUFlO0lBQ2YsY0FBVzs7Ozs7Ozs7OztBQUdiLDZCQUtDOzs7SUFKQyxvQ0FBOEI7O0lBQzlCLHNDQUF5Qjs7SUFDekIsa0NBQTBCOztJQUMxQixrQ0FBMEI7Ozs7O0FBSzVCOzs7O0lBcUVFLDZCQUNVLE1BQTBELEVBQzFELFlBQXdEO1FBQXhELDZCQUFBLEVBQUEsbUJBQXdEO1FBRHhELFdBQU0sR0FBTixNQUFNLENBQW9EO1FBQzFELGlCQUFZLEdBQVosWUFBWSxDQUE0QztRQXJFbEUsV0FBTSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7O1FBR3hCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQzs7UUFHekMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7O1FBR25CLDhCQUF5QixHQUFHLEtBQUssQ0FBQzs7UUFNbEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDOztRQUcxQixXQUFNLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzs7UUFHNUMsV0FBTSxHQUFHLElBQUksYUFBYSxDQUFJLENBQUMsQ0FBQyxDQUFDOztRQUdqQyxx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LEtBQUssQ0FBQzs0QkFDNUIsS0FBSSxDQUFDLDZCQUE2QixHQUFHLFNBQVMsQ0FBQzt3QkFDakQsQ0FBQyxDQUFBO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQscUNBQU87OztJQUFQO1FBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU87U0FBRTs7WUFDL0IsTUFBTSxHQUFHLG1CQUFBLElBQUksQ0FBQyxNQUFNLEVBQXFCO1FBQy9DLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBcEpELElBb0pDOzs7Ozs7O0lBbEpDLHFDQUFnQzs7Ozs7SUFHaEMsd0NBQWlEOzs7OztJQUdqRCwwQ0FBMkI7Ozs7O0lBRzNCLHdEQUEwQzs7Ozs7SUFHMUMsc0RBQThDOzs7OztJQUc5QyxnREFBa0M7Ozs7O0lBR2xDLHFDQUFvRDs7Ozs7SUFHcEQscUNBQXlDOzs7OztJQUd6QywrQ0FBc0Q7Ozs7O0lBR3RELDREQUFvRDs7SUFNcEQsb0NBQWE7Ozs7O0lBbUNYLHFDQUFrRTs7Ozs7SUFDbEUsMkNBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGFzYXBTY2hlZHVsZXIsIFN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mLCBTdWJzY3JpcHRpb24sIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBIR19BU1lOQ19SRU5ERVJfUkVTT0xWRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignSEdfQVNZTkNfUkVOREVSX1JFU09MVkVSJyk7XG5cbmV4cG9ydCBlbnVtIFJlc29sdmVyQ29uZmlnIHtcbiAgRGVmYXVsdCxcbiAgQXV0b1Jlc29sdmVPbmNlLFxuICBBdXRvUmVzb2x2ZVxufVxuXG5pbnRlcmZhY2UgSUFjdGlvbnNUYXJnZXQ8VD4ge1xuICBsb2FkQWN0aW9uOiAoZGF0YTogVCkgPT4gdm9pZDtcbiAgY2FuY2VsQWN0aW9uOiAoKSA9PiB2b2lkO1xuICBzdWNjZXNzJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBmYWlsdXJlJDogT2JzZXJ2YWJsZTxhbnk+O1xufVxuXG50eXBlIEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPiA9IChkYXRhOiBUKSA9PiBPYnNlcnZhYmxlPFI+O1xuXG5leHBvcnQgY2xhc3MgQXN5bmNSZW5kZXJSZXNvbHZlcjxUID0gYW55LCBSID0gYW55PiB7XG5cbiAgY29uZmlnID0gUmVzb2x2ZXJDb25maWcuRGVmYXVsdDtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9pc0FsaXZlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfc2hvdWxkU2tpcCA9IG51bGw7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfYXV0b1Jlc29sdmVPbmNlQ29tcGxldGVkID0gZmFsc2U7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfZGVwZW5kZW5jeVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX3Jlc29sdmVSZXF1ZXN0ZWQgPSBmYWxzZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9zdGF0ZSA9IHsgbG9hZGluZzogZmFsc2UsIGVycm9yZWQ6IGZhbHNlIH07XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfZGF0YSQgPSBuZXcgUmVwbGF5U3ViamVjdDxSPigxKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kYXRhT2JzZXJ2YWJsZSQgPSB0aGlzLl9kYXRhJC5hc09ic2VydmFibGUoKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9mdW5jdGlvbk9ic2VydmVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGlzTG9hZGluZygpIHsgcmV0dXJuIHRoaXMuX3N0YXRlLmxvYWRpbmc7IH1cblxuICBnZXQgaGFzRXJyb3JlZCgpIHsgcmV0dXJuIHRoaXMuX3N0YXRlLmVycm9yZWQ7IH1cblxuICBlcnJvcjogRXJyb3I7XG5cbiAgZ2V0IGRhdGEkKCkge1xuICAgIGlmICh0aGlzLmlzRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0KSB7IHJldHVybiB0aGlzLl9kYXRhT2JzZXJ2YWJsZSQ7IH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgY29uc29sZS53YXJuKCdoZy1hc3luYy1yZW5kZXI6IEFjdGlvbiBiYXNlZCBhc3luYyByZW5kZXIgcmVzb2x2ZXJzIGRvblxcJ3QgaGF2ZSBkYXRhJCBwcm9wZXJ0eSEgRGF0YSBtYW5hZ2VtZW50IHNob3VsZCBiZSBjb250cm9sbGVkIHZpYSBhY3Rpb24gaGFuZGxlcnMhJyk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldCBzaG91bGRTa2lwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3Qgc2hvdWxkQXV0b1Jlc29sdmVPbmNlID0gKHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5BdXRvUmVzb2x2ZU9uY2UgJiYgdGhpcy5fYXV0b1Jlc29sdmVPbmNlQ29tcGxldGVkID09PSBmYWxzZSk7XG4gICAgaWYgKFxuICAgICAgKFxuICAgICAgICAodGhpcy5jb25maWcgPT09IFJlc29sdmVyQ29uZmlnLkF1dG9SZXNvbHZlICYmIHRoaXMuX3Nob3VsZFNraXAgPT09IHRydWUpIHx8XG4gICAgICAgIChzaG91bGRBdXRvUmVzb2x2ZU9uY2UgJiYgdGhpcy5fc2hvdWxkU2tpcClcbiAgICAgICkgJiYgdmFsdWUgPT09IGZhbHNlXG4gICAgKSB7XG4gICAgICBhc2FwU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHsgdGhpcy5yZXNvbHZlKHRydWUpOyB9KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLl9zaG91bGRTa2lwID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2hvdWxkU2tpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2tpcDtcbiAgfVxuXG4gIGdldCBpc0Z1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldCgpIHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXQgaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFyZ2V0OiBJQWN0aW9uc1RhcmdldDxUPiB8IEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPixcbiAgICBwcml2YXRlIGRlcGVuZGVuY2llczogT2JzZXJ2YWJsZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+W10gPSBudWxsXG4gICkgeyB9XG5cbiAgcmVzb2x2ZShhdXRvID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCB8fCAoYXV0byAmJiB0aGlzLl9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQpKSB7IHJldHVybjsgfVxuICAgIHRoaXMuX3Jlc29sdmVSZXF1ZXN0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24pIHsgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9XG4gICAgY29uc3QgaXNBdXRvUmVzb2x2ZU9uY2VDb25maWcgPSB0aGlzLmNvbmZpZyA9PT0gUmVzb2x2ZXJDb25maWcuQXV0b1Jlc29sdmVPbmNlO1xuICAgIGNvbnN0IGlzRGVmYXVsdENvbmZpZyA9IHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5EZWZhdWx0O1xuXG4gICAgaWYgKGlzQXV0b1Jlc29sdmVPbmNlQ29uZmlnKSB7IHRoaXMuX2F1dG9SZXNvbHZlT25jZUNvbXBsZXRlZCA9IHRydWU7IH1cbiAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvciA9IHVuZGVmaW5lZDtcblxuICAgIGFzYXBTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgdGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCA9IGZhbHNlO1xuXG4gICAgICBjb25zdCBkZXBzID0gIXRoaXMuZGVwZW5kZW5jaWVzID8gb2YodW5kZWZpbmVkKSA6IGNvbWJpbmVMYXRlc3QodGhpcy5kZXBlbmRlbmNpZXMpLnBpcGUoXG4gICAgICAgIChpc0F1dG9SZXNvbHZlT25jZUNvbmZpZyB8fCBpc0RlZmF1bHRDb25maWcpID8gZmlyc3QoKSA6IHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJClcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSBkZXBzLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmlzRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0KSB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQgYXMgSUFjdGlvbnNUYXJnZXQ8VD47XG4gICAgICAgICAgdGFyZ2V0LmxvYWRBY3Rpb24oZGF0YSk7XG4gICAgICAgICAgdGFyZ2V0LnN1Y2Nlc3MkLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuX2lzQWxpdmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0YXJnZXQuZmFpbHVyZSQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5faXNBbGl2ZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0Rm4gPSB0aGlzLnRhcmdldCBhcyBGdW5jdGlvbk9ic2VydmFibGVUYXJnZXQ8VCwgUj47XG4gICAgICAgICAgaWYgKHRoaXMuX2Z1bmN0aW9uT2JzZXJ2ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2ZXJTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2ZXJTdWJzY3JpcHRpb24gPSB0YXJnZXRGbihkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9kYXRhJC5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2RhdGEkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbk9ic2VydmVyU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5faXNBbGl2ZSQubmV4dCgpO1xuICAgIHRoaXMuX2lzQWxpdmUkLmNvbXBsZXRlKCk7XG5cbiAgICBpZiAoIXRoaXMuX3N0YXRlLmxvYWRpbmcpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQgYXMgSUFjdGlvbnNUYXJnZXQ8VD47XG4gICAgaWYgKHRhcmdldC5jYW5jZWxBY3Rpb24pIHtcbiAgICAgIHRhcmdldC5jYW5jZWxBY3Rpb24oKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtcmVuZGVyLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaGctYXN5bmMtcmVuZGVyLyIsInNvdXJjZXMiOlsibGliL2FzeW5jLXJlbmRlci1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFL0MsTUFBTSxLQUFPLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDOzs7SUFHNUYsVUFBTztJQUNQLGtCQUFlO0lBQ2YsY0FBVzs7Ozs7Ozs7OztBQUdiLDZCQUtDOzs7SUFKQyxvQ0FBOEI7O0lBQzlCLHNDQUF5Qjs7SUFDekIsa0NBQTBCOztJQUMxQixrQ0FBMEI7Ozs7O0FBSzVCOzs7O0lBa0ZFLDZCQUNVLE1BQTBELEVBQzFELFlBQXdEO1FBQXhELDZCQUFBLEVBQUEsbUJBQXdEO1FBRHhELFdBQU0sR0FBTixNQUFNLENBQW9EO1FBQzFELGlCQUFZLEdBQVosWUFBWSxDQUE0QztRQWxGbEUsV0FBTSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7O1FBR3hCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQzs7UUFHekMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7O1FBR25CLDhCQUF5QixHQUFHLEtBQUssQ0FBQzs7UUFNbEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDOztRQUcxQixXQUFNLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzs7UUFHNUMsV0FBTSxHQUFHLElBQUksYUFBYSxDQUFJLENBQUMsQ0FBQyxDQUFDOztRQUdqQyxx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d0RBQTBDOzs7OztJQUcxQyxzREFBOEM7Ozs7O0lBRzlDLGdEQUFrQzs7Ozs7SUFHbEMscUNBQW9EOzs7OztJQUdwRCxxQ0FBeUM7Ozs7O0lBR3pDLCtDQUFzRDs7Ozs7SUFHdEQsOERBQXNEOztJQU10RCxvQ0FBYTs7Ozs7SUFnRFgscUNBQWtFOzs7OztJQUNsRSwyQ0FBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgYXNhcFNjaGVkdWxlciwgU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YsIFN1YnNjcmlwdGlvbiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEhHX0FTWU5DX1JFTkRFUl9SRVNPTFZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdIR19BU1lOQ19SRU5ERVJfUkVTT0xWRVInKTtcblxuZXhwb3J0IGVudW0gUmVzb2x2ZXJDb25maWcge1xuICBEZWZhdWx0LFxuICBBdXRvUmVzb2x2ZU9uY2UsXG4gIEF1dG9SZXNvbHZlXG59XG5cbmludGVyZmFjZSBJQWN0aW9uc1RhcmdldDxUPiB7XG4gIGxvYWRBY3Rpb246IChkYXRhOiBUKSA9PiB2b2lkO1xuICBjYW5jZWxBY3Rpb246ICgpID0+IHZvaWQ7XG4gIHN1Y2Nlc3MkOiBPYnNlcnZhYmxlPGFueT47XG4gIGZhaWx1cmUkOiBPYnNlcnZhYmxlPGFueT47XG59XG5cbnR5cGUgRnVuY3Rpb25PYnNlcnZhYmxlVGFyZ2V0PFQsIFI+ID0gKGRhdGE6IFQpID0+IE9ic2VydmFibGU8Uj47XG5cbmV4cG9ydCBjbGFzcyBBc3luY1JlbmRlclJlc29sdmVyPFQgPSBhbnksIFIgPSBhbnk+IHtcblxuICBjb25maWcgPSBSZXNvbHZlckNvbmZpZy5EZWZhdWx0O1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2lzQWxpdmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9zaG91bGRTa2lwID0gbnVsbDtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQgPSBmYWxzZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kZXBlbmRlbmN5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfcmVzb2x2ZVJlcXVlc3RlZCA9IGZhbHNlO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX3N0YXRlID0geyBsb2FkaW5nOiBmYWxzZSwgZXJyb3JlZDogZmFsc2UgfTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9kYXRhJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFI+KDEpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2RhdGFPYnNlcnZhYmxlJCA9IHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX2Z1bmN0aW9uT2JzZXJ2YWJsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBpc0xvYWRpbmcoKSB7IHJldHVybiB0aGlzLl9zdGF0ZS5sb2FkaW5nOyB9XG5cbiAgZ2V0IGhhc0Vycm9yZWQoKSB7IHJldHVybiB0aGlzLl9zdGF0ZS5lcnJvcmVkOyB9XG5cbiAgZXJyb3I6IEVycm9yO1xuXG4gIGdldCBkYXRhJCgpIHtcbiAgICBpZiAodGhpcy5pc0Z1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldCkgeyByZXR1cm4gdGhpcy5fZGF0YU9ic2VydmFibGUkOyB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgIGNvbnNvbGUud2FybignaGctYXN5bmMtcmVuZGVyOiBBY3Rpb24gYmFzZWQgYXN5bmMgcmVuZGVyIHJlc29sdmVycyBkb25cXCd0IGhhdmUgZGF0YSQgcHJvcGVydHkhIERhdGEgbWFuYWdlbWVudCBzaG91bGQgYmUgY29udHJvbGxlZCB2aWEgYWN0aW9uIGhhbmRsZXJzIScpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzZXQgc2hvdWxkU2tpcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSAmJiAhdGhpcy5fc2hvdWxkU2tpcCkge1xuICAgICAgaWYgKCEhdGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2YWJsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9mdW5jdGlvbk9ic2VydmFibGVTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKCEhdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLl9kZXBlbmRlbmN5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aGlzLl9yZXNvbHZlUmVxdWVzdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvdWxkQXV0b1Jlc29sdmVPbmNlID0gKHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5BdXRvUmVzb2x2ZU9uY2UgJiYgdGhpcy5fYXV0b1Jlc29sdmVPbmNlQ29tcGxldGVkID09PSBmYWxzZSk7XG4gICAgaWYgKFxuICAgICAgKFxuICAgICAgICAodGhpcy5jb25maWcgPT09IFJlc29sdmVyQ29uZmlnLkF1dG9SZXNvbHZlICYmIHRoaXMuX3Nob3VsZFNraXAgPT09IHRydWUpIHx8XG4gICAgICAgIChzaG91bGRBdXRvUmVzb2x2ZU9uY2UgJiYgdGhpcy5fc2hvdWxkU2tpcClcbiAgICAgICkgJiYgdmFsdWUgPT09IGZhbHNlXG4gICAgKSB7XG4gICAgICBhc2FwU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHsgdGhpcy5yZXNvbHZlKHRydWUpOyB9KTtcbiAgICB9XG4gICAgLy8gaWYgKHZhbHVlICYmIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIC8vIH1cbiAgICB0aGlzLl9zaG91bGRTa2lwID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2hvdWxkU2tpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2tpcDtcbiAgfVxuXG4gIGdldCBpc0Z1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldCgpIHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXQgaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFyZ2V0OiBJQWN0aW9uc1RhcmdldDxUPiB8IEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPixcbiAgICBwcml2YXRlIGRlcGVuZGVuY2llczogT2JzZXJ2YWJsZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+W10gPSBudWxsXG4gICkgeyB9XG5cbiAgcmVzb2x2ZShhdXRvID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCB8fCAoYXV0byAmJiB0aGlzLl9hdXRvUmVzb2x2ZU9uY2VDb21wbGV0ZWQpKSB7IHJldHVybjsgfVxuICAgIHRoaXMuX3Jlc29sdmVSZXF1ZXN0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24pIHsgdGhpcy5fZGVwZW5kZW5jeVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9XG4gICAgY29uc3QgaXNBdXRvUmVzb2x2ZU9uY2VDb25maWcgPSB0aGlzLmNvbmZpZyA9PT0gUmVzb2x2ZXJDb25maWcuQXV0b1Jlc29sdmVPbmNlO1xuICAgIGNvbnN0IGlzRGVmYXVsdENvbmZpZyA9IHRoaXMuY29uZmlnID09PSBSZXNvbHZlckNvbmZpZy5EZWZhdWx0O1xuXG4gICAgaWYgKGlzQXV0b1Jlc29sdmVPbmNlQ29uZmlnKSB7IHRoaXMuX2F1dG9SZXNvbHZlT25jZUNvbXBsZXRlZCA9IHRydWU7IH1cbiAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvciA9IHVuZGVmaW5lZDtcblxuICAgIGFzYXBTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuXG4gICAgICBjb25zdCBkZXBzID0gIXRoaXMuZGVwZW5kZW5jaWVzID8gb2YodW5kZWZpbmVkKSA6IGNvbWJpbmVMYXRlc3QodGhpcy5kZXBlbmRlbmNpZXMpLnBpcGUoXG4gICAgICAgIChpc0F1dG9SZXNvbHZlT25jZUNvbmZpZyB8fCBpc0RlZmF1bHRDb25maWcpID8gZmlyc3QoKSA6IHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJClcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2RlcGVuZGVuY3lTdWJzY3JpcHRpb24gPSBkZXBzLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fcmVzb2x2ZVJlcXVlc3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3N0YXRlLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuaXNGdW5jdGlvbk9ic2VydmFibGVUYXJnZXQpIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCBhcyBJQWN0aW9uc1RhcmdldDxUPjtcbiAgICAgICAgICB0YXJnZXQubG9hZEFjdGlvbihkYXRhKTtcbiAgICAgICAgICB0YXJnZXQuc3VjY2VzcyQucGlwZShmaXJzdCgpLCB0YWtlVW50aWwodGhpcy5faXNBbGl2ZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUuZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRhcmdldC5mYWlsdXJlJC5waXBlKGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9pc0FsaXZlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRGbiA9IHRoaXMudGFyZ2V0IGFzIEZ1bmN0aW9uT2JzZXJ2YWJsZVRhcmdldDxULCBSPjtcbiAgICAgICAgICBpZiAodGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9mdW5jdGlvbk9ic2VydmFibGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9uT2JzZXJ2YWJsZVN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uID0gdGFyZ2V0Rm4oZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5faXNBbGl2ZSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZGF0YSQubmV4dChyZXMpO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZGF0YSQuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycjtcbiAgICAgICAgICAgICAgdGhpcy5fc3RhdGUubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5lcnJvcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9kYXRhJC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX3N0YXRlLmVycm9yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25PYnNlcnZhYmxlU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5faXNBbGl2ZSQubmV4dCgpO1xuICAgIHRoaXMuX2lzQWxpdmUkLmNvbXBsZXRlKCk7XG5cbiAgICBpZiAoIXRoaXMuX3N0YXRlLmxvYWRpbmcpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQgYXMgSUFjdGlvbnNUYXJnZXQ8VD47XG4gICAgaWYgKHRhcmdldC5jYW5jZWxBY3Rpb24pIHtcbiAgICAgIHRhcmdldC5jYW5jZWxBY3Rpb24oKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -87,2 +87,15 @@ import { InjectionToken, Component, Inject, Optional, Input, Directive, ViewContainerRef, TemplateRef, NgModule } from '@angular/core';

set shouldSkip(value) {
if (value === true && !this._shouldSkip) {
if (!!this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
else if (!!this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = undefined;
}
this._resolveRequested = false;
this._state.errored = false;
this._state.loading = false;
}
/** @type {?} */

@@ -97,6 +110,6 @@ const shouldAutoResolveOnce = (this.config === ResolverConfig.AutoResolveOnce && this._autoResolveOnceCompleted === false);

}
if (value && this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = null;
}
// if (value && this._dependencySubscription) {
// this._dependencySubscription.unsubscribe();
// this._dependencySubscription = null;
// }
this._shouldSkip = value;

@@ -142,3 +155,2 @@ }

() => {
this._resolveRequested = false;
/** @type {?} */

@@ -151,2 +163,3 @@ const deps = !this.dependencies ? of(undefined) : combineLatest(this.dependencies).pipe((isAutoResolveOnceConfig || isDefaultConfig) ? first() : takeUntil(this._isAlive$));

data => {
this._resolveRequested = false;
this._state.errored = false;

@@ -176,7 +189,7 @@ this._state.loading = true;

const targetFn = (/** @type {?} */ (this.target));
if (this._functionObserverSubscription) {
this._functionObserverSubscription.unsubscribe();
this._functionObserverSubscription = undefined;
if (this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
this._functionObserverSubscription = targetFn(data).pipe(takeUntil(this._isAlive$)).subscribe({
this._functionObservableSubscription = targetFn(data).pipe(takeUntil(this._isAlive$)).subscribe({
next: (/**

@@ -208,3 +221,3 @@ * @param {?} res

this._state.errored = false;
this._functionObserverSubscription = undefined;
this._functionObservableSubscription = undefined;
})

@@ -279,3 +292,3 @@ });

*/
AsyncRenderResolver.prototype._functionObserverSubscription;
AsyncRenderResolver.prototype._functionObservableSubscription;
/** @type {?} */

@@ -282,0 +295,0 @@ AsyncRenderResolver.prototype.error;

@@ -108,2 +108,15 @@ import { InjectionToken, Component, Inject, Optional, Input, Directive, ViewContainerRef, TemplateRef, NgModule } from '@angular/core';

var _this = this;
if (value === true && !this._shouldSkip) {
if (!!this._functionObservableSubscription) {
this._functionObservableSubscription.unsubscribe();
this._functionObservableSubscription = undefined;
}
else if (!!this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = undefined;
}
this._resolveRequested = false;
this._state.errored = false;
this._state.loading = false;
}
/** @type {?} */

@@ -118,6 +131,6 @@ var shouldAutoResolveOnce = (this.config === ResolverConfig.AutoResolveOnce && this._autoResolveOnceCompleted === false);

}
if (value && this._dependencySubscription) {
this._dependencySubscription.unsubscribe();
this._dependencySubscription = null;
}
// if (value && this._dependencySubscription) {
// this._dependencySubscription.unsubscribe();
// this._dependencySubscription = null;
// }
this._shouldSkip = value;

@@ -170,3 +183,2 @@ },

function () {
_this._resolveRequested = false;
/** @type {?} */

@@ -179,2 +191,3 @@ var deps = !_this.dependencies ? of(undefined) : combineLatest(_this.dependencies).pipe((isAutoResolveOnceConfig || isDefaultConfig) ? first() : takeUntil(_this._isAlive$));

function (data) {
_this._resolveRequested = false;
_this._state.errored = false;

@@ -204,7 +217,7 @@ _this._state.loading = true;

var targetFn = (/** @type {?} */ (_this.target));
if (_this._functionObserverSubscription) {
_this._functionObserverSubscription.unsubscribe();
_this._functionObserverSubscription = undefined;
if (_this._functionObservableSubscription) {
_this._functionObservableSubscription.unsubscribe();
_this._functionObservableSubscription = undefined;
}
_this._functionObserverSubscription = targetFn(data).pipe(takeUntil(_this._isAlive$)).subscribe({
_this._functionObservableSubscription = targetFn(data).pipe(takeUntil(_this._isAlive$)).subscribe({
next: (/**

@@ -236,3 +249,3 @@ * @param {?} res

_this._state.errored = false;
_this._functionObserverSubscription = undefined;
_this._functionObservableSubscription = undefined;
})

@@ -311,3 +324,3 @@ });

*/
AsyncRenderResolver.prototype._functionObserverSubscription;
AsyncRenderResolver.prototype._functionObservableSubscription;
/** @type {?} */

@@ -314,0 +327,0 @@ AsyncRenderResolver.prototype.error;

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

{"__symbolic":"module","version":4,"metadata":{"AsyncRenderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"AsyncRenderComponent"},{"__symbolic":"reference","name":"AsyncRenderDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4}],"exports":[{"__symbolic":"reference","name":"AsyncRenderComponent"},{"__symbolic":"reference","name":"AsyncRenderDirective"}]}]}],"members":{}},"HG_ASYNC_RENDER_RESOLVER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":44},"arguments":["HG_ASYNC_RENDER_RESOLVER"]},"AsyncRenderResolver":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":91,"character":40,"context":{"typeName":"FunctionObservableTarget"},"module":"./lib/async-render-resolver"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"resolve":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"ResolverConfig":{"Default":0,"AutoResolveOnce":1,"AutoResolve":2},"AsyncRenderComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"hg-async-render","exportAs":"asyncRender","template":"<ng-container *ngIf=\"loaderTemplateRef && (!autoHideLoader || isLoading)\">\n <ng-container *ngTemplateOutlet=\"loaderTemplateRef; context: { $implicit: isLoading }\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"errorTemplateRef && (!autoShowError || hasError)\">\n <ng-container *ngTemplateOutlet=\"errorTemplateRef; context: { $implicit: hasError }\"></ng-container>\n</ng-container>\n<ng-content></ng-content>","styles":[""]}]}],"members":{"loaderTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"errorTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"autoHideLoader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"autoShowError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":15},"arguments":[{"__symbolic":"reference","name":"HG_ASYNC_RENDER_RESOLVER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":19,"character":49}}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AsyncRenderResolver"}]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"AsyncRenderDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[hgAsyncRender]","exportAs":"asyncRender"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":5},"arguments":[{"__symbolic":"reference","name":"HG_ASYNC_RENDER_RESOLVER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":14,"character":39}}],null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AsyncRenderResolver"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":15,"character":22},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AsyncRenderResolver"}]}]}],"destroy":[{"__symbolic":"method"}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"AsyncRenderModule":"./lib/async-render.module","HG_ASYNC_RENDER_RESOLVER":"./lib/async-render-resolver","AsyncRenderResolver":"./lib/async-render-resolver","ResolverConfig":"./lib/async-render-resolver","AsyncRenderComponent":"./lib/async-render/async-render.component","AsyncRenderDirective":"./lib/async-render.directive","ɵa":"./lib/async-render-base"},"importAs":"hg-async-render"}
{"__symbolic":"module","version":4,"metadata":{"AsyncRenderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"AsyncRenderComponent"},{"__symbolic":"reference","name":"AsyncRenderDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4}],"exports":[{"__symbolic":"reference","name":"AsyncRenderComponent"},{"__symbolic":"reference","name":"AsyncRenderDirective"}]}]}],"members":{}},"HG_ASYNC_RENDER_RESOLVER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":44},"arguments":["HG_ASYNC_RENDER_RESOLVER"]},"AsyncRenderResolver":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":104,"character":40,"context":{"typeName":"FunctionObservableTarget"},"module":"./lib/async-render-resolver"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"resolve":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"ResolverConfig":{"Default":0,"AutoResolveOnce":1,"AutoResolve":2},"AsyncRenderComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"hg-async-render","exportAs":"asyncRender","template":"<ng-container *ngIf=\"loaderTemplateRef && (!autoHideLoader || isLoading)\">\n <ng-container *ngTemplateOutlet=\"loaderTemplateRef; context: { $implicit: isLoading }\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"errorTemplateRef && (!autoShowError || hasError)\">\n <ng-container *ngTemplateOutlet=\"errorTemplateRef; context: { $implicit: hasError }\"></ng-container>\n</ng-container>\n<ng-content></ng-content>","styles":[""]}]}],"members":{"loaderTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"errorTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"autoHideLoader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"autoShowError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":15},"arguments":[{"__symbolic":"reference","name":"HG_ASYNC_RENDER_RESOLVER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":19,"character":49}}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AsyncRenderResolver"}]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"AsyncRenderDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[hgAsyncRender]","exportAs":"asyncRender"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":5},"arguments":[{"__symbolic":"reference","name":"HG_ASYNC_RENDER_RESOLVER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":14,"character":39}}],null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AsyncRenderResolver"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":15,"character":22},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AsyncRenderResolver"}]}]}],"destroy":[{"__symbolic":"method"}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"AsyncRenderModule":"./lib/async-render.module","HG_ASYNC_RENDER_RESOLVER":"./lib/async-render-resolver","AsyncRenderResolver":"./lib/async-render-resolver","ResolverConfig":"./lib/async-render-resolver","AsyncRenderComponent":"./lib/async-render/async-render.component","AsyncRenderDirective":"./lib/async-render.directive","ɵa":"./lib/async-render-base"},"importAs":"hg-async-render"}

@@ -28,3 +28,3 @@ import { Observable } from 'rxjs';

private _dataObservable$;
private _functionObserverSubscription;
private _functionObservableSubscription;
readonly isLoading: boolean;

@@ -31,0 +31,0 @@ readonly hasErrored: boolean;

{
"name": "hg-async-render",
"version": "2.2.3",
"version": "2.2.4",
"repository": {

@@ -5,0 +5,0 @@ "type": "git",

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