Socket
Socket
Sign inDemoInstall

ngx-captcha

Package Overview
Dependencies
5
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 5.0.0 to 5.0.1

2

bundles/ngx-captcha.umd.min.js

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-captcha",["exports","@angular/core","@angular/forms","@angular/common"],e):e(t["ngx-captcha"]={},t.ng.core,t.ng.forms,t.ng.common)}(this,function(t,i,e,n){"use strict";var r=function(){function t(t,e,n,r){this.renderer=t,this.zone=e,this.injector=n,this.scriptService=r,this.captchaElemPrefix="ngx_captcha_id_",this.type="image",this.tabIndex=0,this.success=new i.EventEmitter,this.load=new i.EventEmitter,this.ready=new i.EventEmitter,this.setupAfterLoad=!1,this.resetCaptchaAfterSuccess=!1,this.isLoaded=!1}return t.prototype.ngAfterViewInit=function(){this.control=this.injector.get(e.NgControl).control},t.prototype.ngOnChanges=function(t){t&&t.hl&&(t.hl.firstChange||t.hl.currentValue===t.hl.previousValue||this.scriptService.cleanup()),this.setupComponent()},t.prototype.getResponse=function(){return this.reCaptchaApi.getResponse(this.captchaId)},t.prototype.getCaptchaId=function(){return this.captchaId},t.prototype.resetCaptcha=function(){var t=this;this.zone.run(function(){t.onChange(null),t.onTouched(null)})},t.prototype.getCurrentResponse=function(){return this.currentResponse},t.prototype.reloadCaptcha=function(){this.setupComponent()},t.prototype.ensureCaptchaElem=function(t){var e=document.getElementById(t);if(!e)throw Error("Captcha element with id '"+t+"' was not found");this.captchaElem=e},t.prototype.renderReCaptcha=function(){this.captchaId=this.reCaptchaApi.render(this.captchaElemId,this.getCaptchaProperties()),this.ready.next()},t.prototype.handleCallback=function(t){var e=this;this.currentResponse=t,this.success.next(t),this.zone.run(function(){e.onChange(t),e.onTouched(t)}),this.resetCaptchaAfterSuccess&&this.resetCaptcha()},t.prototype.getPseudoUniqueNumber=function(){return(new Date).getUTCMilliseconds()+Math.floor(9999*Math.random())},t.prototype.setupComponent=function(){var e=this;this.captchaSpecificSetup(),this.createAndSetCaptchaElem(),this.scriptService.registerCaptchaScript("explicit",function(t){e.onloadCallback(t)},this.hl)},t.prototype.onloadCallback=function(t){if(this.reCaptchaApi=t,!this.reCaptchaApi)throw Error("ReCaptcha Api was not initialized correctly");this.isLoaded=!0,this.load.next(),this.renderReCaptcha(),this.setupAfterLoad&&(this.setupAfterLoad=!1,this.setupComponent())},t.prototype.generateNewElemId=function(){return this.captchaElemPrefix+this.getPseudoUniqueNumber()},t.prototype.createAndSetCaptchaElem=function(){if(this.captchaElemId=this.generateNewElemId(),!this.captchaElemId)throw Error("Captcha elem Id is not set");this.captchaWrapperElem.nativeElement.innerHTML="";var t=this.renderer.createElement("div");t.id=this.captchaElemId,this.renderer.appendChild(this.captchaWrapperElem.nativeElement,t),this.ensureCaptchaElem(this.captchaElemId)},t.prototype.writeValue=function(t){},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.propDecorators={siteKey:[{type:i.Input}],type:[{type:i.Input}],hl:[{type:i.Input}],tabIndex:[{type:i.Input}],success:[{type:i.Output}],load:[{type:i.Output}],ready:[{type:i.Output}],captchaWrapperElem:[{type:i.ViewChild,args:["captchaWrapperElem"]}],captchaScriptElem:[{type:i.ViewChild,args:["captchaScriptElem"]}]},t}(),o=function(t,e){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function c(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var p={InvisibleReCaptcha:0,ReCaptcha2:1};p[p.InvisibleReCaptcha]="InvisibleReCaptcha",p[p.ReCaptcha2]="ReCaptcha2";var s=function(){function t(t){this.zone=t,this.windowGrecaptcha="grecaptcha",this.windowOnLoadCallbackProperty="ngx_captcha_onload_callback"}return t.prototype.registerCaptchaScript=function(t,e,n){var r=this;if(this.grecaptchaScriptLoaded())this.zone.run(function(){e(window[r.windowGrecaptcha])});else{window[this.windowOnLoadCallbackProperty]=function(){return r.zone.run(e.bind(r,window[r.windowGrecaptcha]))};var o=document.createElement("script");o.innerHTML="",o.src=this.getCaptchaScriptUrl(n,t),o.async=!0,o.defer=!0,document.getElementsByTagName("head")[0].appendChild(o)}},t.prototype.cleanup=function(){window[this.windowOnLoadCallbackProperty]=undefined,window[this.windowGrecaptcha]=undefined},t.prototype.grecaptchaScriptLoaded=function(){return!(!window[this.windowOnLoadCallbackProperty]||!window[this.windowGrecaptcha])},t.prototype.getLanguageParam=function(t){return t?"&hl="+t:""},t.prototype.getCaptchaScriptUrl=function(t,e){return"https://www.google.com/recaptcha/api.js?onload="+this.windowOnLoadCallbackProperty+"&render="+e+this.getLanguageParam(t)},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:i.NgZone}]},t}(),a=function(a){function t(t,e,n,r){var o=a.call(this,t,e,n,r)||this;return o.renderer=t,o.zone=e,o.injector=n,o.scriptService=r,o.size="invisible",o.badge="bottomright",o.recaptchaType=p.InvisibleReCaptcha,o}return c(t,a),t.prototype.ngOnChanges=function(t){a.prototype.ngOnChanges.call(this,t)},t.prototype.execute=function(){this.reCaptchaApi.execute(this.captchaId)},t.prototype.captchaSpecificSetup=function(){},t.prototype.getCaptchaProperties=function(){var e=this;return{sitekey:this.siteKey,callback:function(t){return e.zone.run(function(){return e.handleCallback(t)})},badge:this.badge,type:this.type,tabindex:this.tabIndex,size:this.size}},t.decorators=[{type:i.Component,args:[{selector:"ngx-invisible-recaptcha",template:"\n <div #captchaWrapperElem></div>",providers:[{provide:e.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return t}),multi:!0}]}]}],t.ctorParameters=function(){return[{type:i.Renderer2},{type:i.NgZone},{type:i.Injector},{type:s}]},t.propDecorators={badge:[{type:i.Input}],hl:[{type:i.Input}]},t}(r),h=function(a){function t(t,e,n,r){var o=a.call(this,t,e,n,r)||this;return o.renderer=t,o.zone=e,o.injector=n,o.scriptService=r,o.windowOnErrorCallbackProperty="ngx_captcha_error_callback",o.windowOnExpireCallbackProperty="ngx_captcha_expire_callback",o.theme="light",o.size="normal",o.expire=new i.EventEmitter,o.error=new i.EventEmitter,o.recaptchaType=p.ReCaptcha2,o}return c(t,a),t.prototype.ngOnChanges=function(t){a.prototype.ngOnChanges.call(this,t)},t.prototype.ngOnDestroy=function(){window[this.windowOnErrorCallbackProperty]={},window[this.windowOnExpireCallbackProperty]={}},t.prototype.captchaSpecificSetup=function(){this.registerCallbacks()},t.prototype.getCaptchaProperties=function(){var e=this;return{sitekey:this.siteKey,callback:function(t){return e.zone.run(function(){return e.handleCallback(t)})},"expired-callback":function(){return e.zone.run(function(){return e.handleExpireCallback()})},"error-callback":function(){return e.zone.run(function(){return e.handleErrorCallback()})},theme:this.theme,type:this.type,size:this.size,tabindex:this.tabIndex}},t.prototype.registerCallbacks=function(){window[this.windowOnErrorCallbackProperty]=this.handleErrorCallback.bind(this),window[this.windowOnExpireCallbackProperty]=this.handleExpireCallback.bind(this)},t.prototype.handleErrorCallback=function(){var t=this;this.zone.run(function(){t.onChange(null),t.onTouched(null)}),this.error.next()},t.prototype.handleExpireCallback=function(){this.expire.next(),this.resetCaptcha()},t.decorators=[{type:i.Component,args:[{selector:"ngx-recaptcha2",template:"\n <div #captchaWrapperElem></div>",providers:[{provide:e.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return t}),multi:!0}]}]}],t.ctorParameters=function(){return[{type:i.Renderer2},{type:i.NgZone},{type:i.Injector},{type:s}]},t.propDecorators={theme:[{type:i.Input}],size:[{type:i.Input}],hl:[{type:i.Input}],expire:[{type:i.Output}],error:[{type:i.Output}]},t}(r),u=function(){function t(t){this.scriptService=t}return t.prototype.execute=function(e,n,r){this.scriptService.registerCaptchaScript(e,function(t){t.execute(e,{action:n}).then(function(t){r(t)})})},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:s}]},t}(),l=function(){function t(){}return t.decorators=[{type:i.NgModule,args:[{imports:[n.CommonModule],declarations:[h,a],providers:[s,u],exports:[h,a]}]}],t}();t.BaseReCaptchaComponent=r,t.InvisibleReCaptchaComponent=a,t.ReCaptcha2Component=h,t.ReCaptchaType=p,t.ReCaptchaV3Service=u,t.ScriptService=s,t.NgxCaptchaModule=l,t.ɵb=a,t.ɵa=h,t.ɵd=u,t.ɵc=s,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-captcha",["exports","@angular/core","@angular/forms","@angular/common"],e):e(t["ngx-captcha"]={},t.ng.core,t.ng.forms,t.ng.common)}(this,function(t,a,e,n){"use strict";var r=function(){function t(t,e,n,r){this.renderer=t,this.zone=e,this.injector=n,this.scriptService=r,this.captchaElemPrefix="ngx_captcha_id_",this.type="image",this.tabIndex=0,this.success=new a.EventEmitter,this.load=new a.EventEmitter,this.ready=new a.EventEmitter,this.setupAfterLoad=!1,this.resetCaptchaAfterSuccess=!1,this.isLoaded=!1}return t.prototype.ngAfterViewInit=function(){this.control=this.injector.get(e.NgControl).control},t.prototype.ngOnChanges=function(t){t&&t.hl&&(t.hl.firstChange||t.hl.currentValue===t.hl.previousValue||this.scriptService.cleanup()),this.setupComponent()},t.prototype.getResponse=function(){return this.reCaptchaApi.getResponse(this.captchaId)},t.prototype.getCaptchaId=function(){return this.captchaId},t.prototype.resetCaptcha=function(){var t=this;this.zone.run(function(){t.onChange(undefined),t.onTouched(undefined)})},t.prototype.getCurrentResponse=function(){return this.currentResponse},t.prototype.reloadCaptcha=function(){this.setupComponent()},t.prototype.ensureCaptchaElem=function(t){var e=document.getElementById(t);if(!e)throw Error("Captcha element with id '"+t+"' was not found");this.captchaElem=e},t.prototype.renderReCaptcha=function(){this.captchaId=this.reCaptchaApi.render(this.captchaElemId,this.getCaptchaProperties()),this.ready.next()},t.prototype.handleCallback=function(t){var e=this;this.currentResponse=t,this.success.next(t),this.zone.run(function(){e.onChange(t),e.onTouched(t)}),this.resetCaptchaAfterSuccess&&this.resetCaptcha()},t.prototype.getPseudoUniqueNumber=function(){return(new Date).getUTCMilliseconds()+Math.floor(9999*Math.random())},t.prototype.setupComponent=function(){var e=this;this.captchaSpecificSetup(),this.createAndSetCaptchaElem(),this.scriptService.registerCaptchaScript("explicit",function(t){e.onloadCallback(t)},this.hl)},t.prototype.onloadCallback=function(t){if(this.reCaptchaApi=t,!this.reCaptchaApi)throw Error("ReCaptcha Api was not initialized correctly");this.isLoaded=!0,this.load.next(),this.renderReCaptcha(),this.setupAfterLoad&&(this.setupAfterLoad=!1,this.setupComponent())},t.prototype.generateNewElemId=function(){return this.captchaElemPrefix+this.getPseudoUniqueNumber()},t.prototype.createAndSetCaptchaElem=function(){if(this.captchaElemId=this.generateNewElemId(),!this.captchaElemId)throw Error("Captcha elem Id is not set");this.captchaWrapperElem.nativeElement.innerHTML="";var t=this.renderer.createElement("div");t.id=this.captchaElemId,this.renderer.appendChild(this.captchaWrapperElem.nativeElement,t),this.ensureCaptchaElem(this.captchaElemId)},t.prototype.writeValue=function(t){},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.propDecorators={siteKey:[{type:a.Input}],type:[{type:a.Input}],hl:[{type:a.Input}],tabIndex:[{type:a.Input}],success:[{type:a.Output}],load:[{type:a.Output}],ready:[{type:a.Output}],captchaWrapperElem:[{type:a.ViewChild,args:["captchaWrapperElem"]}],captchaScriptElem:[{type:a.ViewChild,args:["captchaScriptElem"]}]},t}(),i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function c(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var p={InvisibleReCaptcha:0,ReCaptcha2:1};p[p.InvisibleReCaptcha]="InvisibleReCaptcha",p[p.ReCaptcha2]="ReCaptcha2";var s=function(){function t(t){this.zone=t,this.windowGrecaptcha="grecaptcha",this.windowOnLoadCallbackProperty="ngx_captcha_onload_callback"}return t.prototype.registerCaptchaScript=function(t,e,n){var r=this;if(this.grecaptchaScriptLoaded())this.zone.run(function(){e(window[r.windowGrecaptcha])});else{window[this.windowOnLoadCallbackProperty]=function(){return r.zone.run(e.bind(r,window[r.windowGrecaptcha]))};var i=document.createElement("script");i.innerHTML="",i.src=this.getCaptchaScriptUrl(t,n),i.async=!0,i.defer=!0,document.getElementsByTagName("head")[0].appendChild(i)}},t.prototype.cleanup=function(){window[this.windowOnLoadCallbackProperty]=undefined,window[this.windowGrecaptcha]=undefined},t.prototype.grecaptchaScriptLoaded=function(){return!(!window[this.windowOnLoadCallbackProperty]||!window[this.windowGrecaptcha])},t.prototype.getLanguageParam=function(t){return t?"&hl="+t:""},t.prototype.getCaptchaScriptUrl=function(t,e){return"https://www.google.com/recaptcha/api.js?onload="+this.windowOnLoadCallbackProperty+"&render="+t+this.getLanguageParam(e)},t.decorators=[{type:a.Injectable}],t.ctorParameters=function(){return[{type:a.NgZone}]},t}(),o=function(o){function t(t,e,n,r){var i=o.call(this,t,e,n,r)||this;return i.renderer=t,i.zone=e,i.injector=n,i.scriptService=r,i.size="invisible",i.badge="bottomright",i.recaptchaType=p.InvisibleReCaptcha,i}return c(t,o),t.prototype.ngOnChanges=function(t){o.prototype.ngOnChanges.call(this,t)},t.prototype.execute=function(){this.reCaptchaApi.execute(this.captchaId)},t.prototype.captchaSpecificSetup=function(){},t.prototype.getCaptchaProperties=function(){var e=this;return{sitekey:this.siteKey,callback:function(t){return e.zone.run(function(){return e.handleCallback(t)})},badge:this.badge,type:this.type,tabindex:this.tabIndex,size:this.size}},t.decorators=[{type:a.Component,args:[{selector:"ngx-invisible-recaptcha",template:"\n <div #captchaWrapperElem></div>",providers:[{provide:e.NG_VALUE_ACCESSOR,useExisting:a.forwardRef(function(){return t}),multi:!0}]}]}],t.ctorParameters=function(){return[{type:a.Renderer2},{type:a.NgZone},{type:a.Injector},{type:s}]},t.propDecorators={badge:[{type:a.Input}],hl:[{type:a.Input}]},t}(r),h=function(o){function t(t,e,n,r){var i=o.call(this,t,e,n,r)||this;return i.renderer=t,i.zone=e,i.injector=n,i.scriptService=r,i.windowOnErrorCallbackProperty="ngx_captcha_error_callback",i.windowOnExpireCallbackProperty="ngx_captcha_expire_callback",i.theme="light",i.size="normal",i.expire=new a.EventEmitter,i.error=new a.EventEmitter,i.recaptchaType=p.ReCaptcha2,i}return c(t,o),t.prototype.ngOnChanges=function(t){o.prototype.ngOnChanges.call(this,t)},t.prototype.ngOnDestroy=function(){window[this.windowOnErrorCallbackProperty]={},window[this.windowOnExpireCallbackProperty]={}},t.prototype.captchaSpecificSetup=function(){this.registerCallbacks()},t.prototype.getCaptchaProperties=function(){var e=this;return{sitekey:this.siteKey,callback:function(t){return e.zone.run(function(){return e.handleCallback(t)})},"expired-callback":function(){return e.zone.run(function(){return e.handleExpireCallback()})},"error-callback":function(){return e.zone.run(function(){return e.handleErrorCallback()})},theme:this.theme,type:this.type,size:this.size,tabindex:this.tabIndex}},t.prototype.registerCallbacks=function(){window[this.windowOnErrorCallbackProperty]=this.handleErrorCallback.bind(this),window[this.windowOnExpireCallbackProperty]=this.handleExpireCallback.bind(this)},t.prototype.handleErrorCallback=function(){var t=this;this.zone.run(function(){t.onChange(undefined),t.onTouched(undefined)}),this.error.next()},t.prototype.handleExpireCallback=function(){this.expire.next(),this.resetCaptcha()},t.decorators=[{type:a.Component,args:[{selector:"ngx-recaptcha2",template:"\n <div #captchaWrapperElem></div>",providers:[{provide:e.NG_VALUE_ACCESSOR,useExisting:a.forwardRef(function(){return t}),multi:!0}]}]}],t.ctorParameters=function(){return[{type:a.Renderer2},{type:a.NgZone},{type:a.Injector},{type:s}]},t.propDecorators={theme:[{type:a.Input}],size:[{type:a.Input}],hl:[{type:a.Input}],expire:[{type:a.Output}],error:[{type:a.Output}]},t}(r),u=function(){function t(t){this.scriptService=t}return t.prototype.execute=function(e,n,r){this.scriptService.registerCaptchaScript(e,function(t){t.execute(e,{action:n}).then(function(t){r(t)})})},t.decorators=[{type:a.Injectable}],t.ctorParameters=function(){return[{type:s}]},t}(),l=function(){function t(){}return t.decorators=[{type:a.NgModule,args:[{imports:[n.CommonModule],declarations:[h,o],providers:[s,u],exports:[h,o]}]}],t}();t.BaseReCaptchaComponent=r,t.InvisibleReCaptchaComponent=o,t.ReCaptcha2Component=h,t.ReCaptchaType=p,t.ReCaptchaV3Service=u,t.ScriptService=s,t.NgxCaptchaModule=l,t.ɵb=o,t.ɵa=h,t.ɵd=u,t.ɵc=s,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-captcha.umd.min.js.map

@@ -100,4 +100,4 @@ /**

this.zone.run(() => {
this.onChange(null);
this.onTouched(null);
this.onChange(undefined);
this.onTouched(undefined);
});

@@ -383,2 +383,2 @@ }

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZWNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFSCxVQUFVLEVBQ1YsWUFBWSxFQUVaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLOUUsTUFBTTs7Ozs7OztJQXdHRixZQUNjLFFBQW1CLEVBQ25CLElBQVksRUFDWixRQUFrQixFQUNsQixhQUE0QjtRQUg1QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlOzs7O2lDQXZHSCxpQkFBaUI7Ozs7b0JBV3JCLE9BQU87Ozs7d0JBVXRCLENBQUM7Ozs7O3VCQU1ELElBQUksWUFBWSxFQUFVOzs7O29CQUs3QixJQUFJLFlBQVksRUFBVTs7OztxQkFLekIsSUFBSSxZQUFZLEVBQVE7Ozs7OEJBUWpCLEtBQUs7Ozs7O3dDQXFCTyxLQUFLOzs7O3dCQWdCeEIsS0FBSztLQXNCbEI7Ozs7SUFFTCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDdkQ7Ozs7O0lBWUQsV0FBVyxDQUFDLE9BQXNCOztRQUU5QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxNQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFJLFdBQVcsSUFBSSxDQUFDLE9BQU8sT0FBSSxZQUFZLEtBQUssT0FBTyxP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LENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzs7OztzQkE5UnZCLEtBQUs7bUJBS0wsS0FBSztpQkFLTCxLQUFLO3VCQUtMLEtBQUs7c0JBTUwsTUFBTTttQkFLTixNQUFNO29CQUtOLE1BQU07aUNBRU4sU0FBUyxTQUFDLG9CQUFvQjtnQ0FDOUIsU0FBUyxTQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJlQ2FwdGNoYVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcmVjYXB0Y2hhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBQcmVmaXggb2YgdGhlIGNhcHRjaGEgZWxlbWVudFxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYXB0Y2hhRWxlbVByZWZpeCA9ICduZ3hfY2FwdGNoYV9pZF8nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBHb29nbGUncyBzaXRlIGtleS5cclxuICAgICogWW91IGNhbiBmaW5kIHRoaXMgdW5kZXIgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGFcclxuICAgICovXHJcbiAgICBASW5wdXQoKSBzaXRlS2V5OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFR5cGVcclxuICAgICovXHJcbiAgICBASW5wdXQoKSB0eXBlOiAnYXVkaW8nIHwgJ2ltYWdlJyA9ICdpbWFnZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIExhbmd1YWdlIGNvZGUuIEF1dG8tZGV0ZWN0cyB0aGUgdXNlcidzIGxhbmd1YWdlIGlmIHVuc3BlY2lmaWVkLlxyXG4gICAgKi9cclxuICAgIEBJbnB1dCgpIGhsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFRhYiBpbmRleFxyXG4gICAgKi9cclxuICAgIEBJbnB1dCgpIHRhYkluZGV4ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSByZWNlaXZlcyBzdWNjZXNzZnVsIHJlc3BvbnNlLlxyXG4gICAgKiBDYXB0Y2hhIHJlc3BvbnNlIHRva2VuIGlzIHBhc3NlZCB0byBldmVudC5cclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBjYXB0Y2hhIGlzIGxvYWRlZC4gRXZlbnQgcmVjZWl2ZXMgaWQgb2YgdGhlIGNhcHRjaGFcclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBjYXB0Y2hhIGlzIGxvYWRlZCAmIHJlYWR5LiBJLmUuIHdoZW4geW91IG5lZWQgdG8gZXhlY3V0ZSBjYXB0Y2hhIG9uIGNvbXBvbmVudCBsb2FkLlxyXG4gICAgKi9cclxuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdjYXB0Y2hhV3JhcHBlckVsZW0nKSBjYXB0Y2hhV3JhcHBlckVsZW06IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdjYXB0Y2hhU2NyaXB0RWxlbScpIGNhcHRjaGFTY3JpcHRFbGVtOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJbmRpY2F0ZXMgaWYgY2FwdGNoYSBzaG91bGQgYmUgc2V0IG9uIGxvYWRcclxuICAgICovXHJcbiAgICBwcml2YXRlIHNldHVwQWZ0ZXJMb2FkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhcHRjaGEgZWxlbWVudFxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjYXB0Y2hhRWxlbT86IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJZCBvZiB0aGUgY2FwdGNoYSBlbGVtXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNhcHRjaGFJZD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICogSG9sZHMgbGFzdCByZXNwb25zZSB2YWx1ZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjdXJyZW50UmVzcG9uc2U/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIElmIGVuYWJsZWQsIGNhcHRjaGEgd2lsbCByZXNldCBhZnRlciByZWNlaXZpbmcgc3VjY2VzcyByZXNwb25zZS4gVGhpcyBpcyB1c2VmdWxcclxuICAgICogd2hlbiBpbnZpc2libGUgY2FwdGNoYSBuZWVkIHRvIGJlIHJlc29sdmVkIG11bHRpcGxlIHRpbWVzIG9uIHNhbWUgcGFnZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZXNldENhcHRjaGFBZnRlclN1Y2Nlc3MgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FwdGNoYSB0eXBlXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcclxuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJbmRpY2F0ZXMgaWYgY2FwdGNoYSBpcyBsb2FkZWRcclxuICAgICovXHJcbiAgICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICogUmVmZXJlbmNlIHRvIGdsb2JhbCByZUNhcHRjaGEgQVBJXHJcbiAgICAqL1xyXG4gICAgcHVibGljIHJlQ2FwdGNoYUFwaT86IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICogSWQgb2YgdGhlIERPTSBlbGVtZW50IHdyYXBwaW5nIGNhcHRjaGFcclxuICAgICovXHJcbiAgICBwdWJsaWMgY2FwdGNoYUVsZW1JZD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICogRm9ybSBDb250cm9sIHRvIGJlIGVuYWJsZSB1c2FnZSBpbiByZWFjdGl2ZSBmb3Jtc1xyXG4gICAgKi9cclxuICAgIHB1YmxpYyBjb250cm9sPzogRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCkuY29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyByZUNhcHRjaGEgcHJvcGVydGllc1xyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFVzZWQgZm9yIGNhcHRjaGEgc3BlY2lmaWMgc2V0dXBcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FwdGNoYVNwZWNpZmljU2V0dXAoKTogdm9pZDtcclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgLy8gY2xlYW51cCBzY3JpcHRzIGlmIGxhbmd1YWdlIGNoYW5nZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgcmVsb2FkZWRcclxuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLmhsKSB7XHJcbiAgICAgICAgICAgIGlmICghY2hhbmdlcy5obC5maXJzdENoYW5nZSAmJiAoY2hhbmdlcy5obC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuaGwucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0U2VydmljZS5jbGVhbnVwKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBjYXB0Y2hhIHJlc3BvbnNlIGFzIHBlciByZUNhcHRjaGEgZG9jc1xyXG4gICAgKi9cclxuICAgIGdldFJlc3BvbnNlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVDYXB0Y2hhQXBpLmdldFJlc3BvbnNlKHRoaXMuY2FwdGNoYUlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBJZCBvZiBjYXB0Y2hhIHdpZGdldFxyXG4gICAgKi9cclxuICAgIGdldENhcHRjaGFJZCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhcHRjaGFJZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVzZXRzIGNhcHRjaGFcclxuICAgICovXHJcbiAgICByZXNldENhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKG51bGwpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBHZXRzIGxhc3Qgc3VibWl0dGVkIGNhcHRjaGEgcmVzcG9uc2VcclxuICAgICovXHJcbiAgICBnZXRDdXJyZW50UmVzcG9uc2UoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50UmVzcG9uc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlbG9hZCBjYXB0Y2hhLiBVc2VmdWwgd2hlbiBwcm9wZXJ0aWVzIChpLmUuIHRoZW1lKSBjaGFuZ2VkIGFuZCBjYXB0Y2hhIG5lZWQgdG8gcmVmbGVjdCB0aGVtXHJcbiAgICAqL1xyXG4gICAgcmVsb2FkQ2FwdGNoYSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGVuc3VyZUNhcHRjaGFFbGVtKGNhcHRjaGFFbGVtSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNhcHRjaGFFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FwdGNoYUVsZW1JZCk7XHJcblxyXG4gICAgICAgIGlmICghY2FwdGNoYUVsZW0pIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYENhcHRjaGEgZWxlbWVudCB3aXRoIGlkICcke2NhcHRjaGFFbGVtSWR9JyB3YXMgbm90IGZvdW5kYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhc3NpZ24gY2FwdGNoYSBhbGVtXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhRWxlbSA9IGNhcHRjaGFFbGVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZXNwb25zaWJsZSBmb3IgaW5zdGFudGlhdGluZyBjYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVuZGVyUmVDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FwdGNoYUlkID0gdGhpcy5yZUNhcHRjaGFBcGkucmVuZGVyKHRoaXMuY2FwdGNoYUVsZW1JZCwgdGhpcy5nZXRDYXB0Y2hhUHJvcGVydGllcygpKTtcclxuICAgICAgICB0aGlzLnJlYWR5Lm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSByZWNlaXZlcyByZXNwb25zZVxyXG4gICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2tcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgaGFuZGxlQ2FsbGJhY2soY2FsbGJhY2s6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJlc3BvbnNlID0gY2FsbGJhY2s7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzLm5leHQoY2FsbGJhY2spO1xyXG5cclxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShjYWxsYmFjayk7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKGNhbGxiYWNrKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVzZXRDYXB0Y2hhQWZ0ZXJTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRDYXB0Y2hhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGdldFBzZXVkb1VuaXF1ZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldFVUQ01pbGxpc2Vjb25kcygpICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTk5OSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXR1cENvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBjYXB0Y2hhIHNwZWNpZmljIHNldHVwXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhU3BlY2lmaWNTZXR1cCgpO1xyXG5cclxuICAgICAgICAvLyBjcmVhdGUgY2FwdGNoYSB3cmFwcGVyXHJcbiAgICAgICAgdGhpcy5jcmVhdGVBbmRTZXRDYXB0Y2hhRWxlbSgpO1xyXG5cclxuICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UucmVnaXN0ZXJDYXB0Y2hhU2NyaXB0KCdleHBsaWNpdCcsIChncmVjYXB0Y2hhKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25sb2FkQ2FsbGJhY2soZ3JlY2FwdGNoYSk7XHJcbiAgICAgICAgfSwgdGhpcy5obCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGdvb2dsZSdzIHJlY2FwdGNoYSBzY3JpcHQgaXMgcmVhZHlcclxuICAgICovXHJcbiAgICBwcml2YXRlIG9ubG9hZENhbGxiYWNrKGdyZWNhcGNoYTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLy8gYXNzaWduIHJlZmVyZW5jZSB0byByZUNhcHRjaGEgQXBpIG9uY2UgaXRzIGxvYWRlZFxyXG4gICAgICAgIHRoaXMucmVDYXB0Y2hhQXBpID0gZ3JlY2FwY2hhO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMucmVDYXB0Y2hhQXBpKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBSZUNhcHRjaGEgQXBpIHdhcyBub3QgaW5pdGlhbGl6ZWQgY29ycmVjdGx5YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBsb2FkZWQgZmxhZ1xyXG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBmaXJlIGxvYWQgZXZlbnRcclxuICAgICAgICB0aGlzLmxvYWQubmV4dCgpO1xyXG5cclxuICAgICAgICAvLyByZW5kZXIgY2FwdGNoYVxyXG4gICAgICAgIHRoaXMucmVuZGVyUmVDYXB0Y2hhKCk7XHJcblxyXG4gICAgICAgIC8vIHNldHVwIGNvbXBvbmVudCBpZiBpdCB3YXMgZmxhZ2dlZCBhcyBzdWNoXHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dXBBZnRlckxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cEFmdGVyTG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVOZXdFbGVtSWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhRWxlbVByZWZpeCArIHRoaXMuZ2V0UHNldWRvVW5pcXVlTnVtYmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVBbmRTZXRDYXB0Y2hhRWxlbSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBnZW5lcmF0ZSBuZXcgY2FwdGNoYSBpZFxyXG4gICAgICAgIHRoaXMuY2FwdGNoYUVsZW1JZCA9IHRoaXMuZ2VuZXJhdGVOZXdFbGVtSWQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNhcHRjaGFFbGVtSWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYENhcHRjaGEgZWxlbSBJZCBpcyBub3Qgc2V0YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyByZW1vdmUgb2xkIGh0bWxcclxuICAgICAgICB0aGlzLmNhcHRjaGFXcmFwcGVyRWxlbS5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xyXG5cclxuICAgICAgICAvLyBjcmVhdGUgbmV3IHdyYXBwZXIgZm9yIGNhcHRjaGFcclxuICAgICAgICBjb25zdCBuZXdFbGVtID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBuZXdFbGVtLmlkID0gdGhpcy5jYXB0Y2hhRWxlbUlkO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY2FwdGNoYVdyYXBwZXJFbGVtLm5hdGl2ZUVsZW1lbnQsIG5ld0VsZW0pO1xyXG5cclxuICAgICAgICAvLyB1cGRhdGUgY2FwdGNoYSBlbGVtXHJcbiAgICAgICAgdGhpcy5lbnN1cmVDYXB0Y2hhRWxlbSh0aGlzLmNhcHRjaGFFbGVtSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG8gYmUgYWxpZ25lZCB3aXRoIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2Ugd2UgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyBtZXRob2RcclxuICAgICAqIEhvd2V2ZXIgYXMgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgdGhlIHJlY2FwdGNoYSwgdGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUgaW1wbGVtZW50ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgaGVscHMgdXMgdGllIHRvZ2V0aGVyIHJlY2FwdGNoYSBhbmQgb3VyIGZvcm1Db250cm9sIHZhbHVlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBBdCBzb21lIHBvaW50IHdlIG1pZ2h0IGJlIGludGVyZXN0ZWQgd2hldGhlciB0aGUgdXNlciBoYXMgdG91Y2hlZCBvdXIgY29tcG9uZW50XHJcbiAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZWNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFSCxVQUFVLEVBQ1YsWUFBWSxFQUVaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLOUUsTUFBTTs7Ozs7OztJQXdHRixZQUNjLFFBQW1CLEVBQ25CLElBQVksRUFDWixRQUFrQixFQUNsQixhQUE0QjtRQUg1QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlOzs7O2lDQXZHSCxpQkFBaUI7Ozs7b0JBV3JCLE9BQU87Ozs7d0JBVXRCLENBQUM7Ozs7O3VCQU1ELElBQUksWUFBWSxFQUFVOzs7O29CQUs3QixJQUFJLFlBQVksRUFBVTs7OztxQkFLekIsSUFBSSxZQUFZLEVBQVE7Ozs7OEJBUWpCLEtBQUs7Ozs7O3dDQXFCTyxLQUFLOzs7O3dCQWdCeEIsS0FBSztLQXNCbEI7Ozs7SUFFTCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDdkQ7Ozs7O0lBWUQsV0FBVyxDQUFDLE9BQXNCOztRQUU5QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxNQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFJLFdBQVcsSUFBSSxDQUFDLE9BQU8sT0FBSSxZQUFZLEtBQUssT0FBTyxP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LENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzs7OztzQkE3UnZCLEtBQUs7bUJBS0wsS0FBSztpQkFLTCxLQUFLO3VCQUtMLEtBQUs7c0JBTUwsTUFBTTttQkFLTixNQUFNO29CQUtOLE1BQU07aUNBRU4sU0FBUyxTQUFDLG9CQUFvQjtnQ0FDOUIsU0FBUyxTQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJlQ2FwdGNoYVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcmVjYXB0Y2hhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBQcmVmaXggb2YgdGhlIGNhcHRjaGEgZWxlbWVudFxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYXB0Y2hhRWxlbVByZWZpeCA9ICduZ3hfY2FwdGNoYV9pZF8nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBHb29nbGUncyBzaXRlIGtleS5cclxuICAgICogWW91IGNhbiBmaW5kIHRoaXMgdW5kZXIgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGFcclxuICAgICovXHJcbiAgICBASW5wdXQoKSBzaXRlS2V5OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFR5cGVcclxuICAgICovXHJcbiAgICBASW5wdXQoKSB0eXBlOiAnYXVkaW8nIHwgJ2ltYWdlJyA9ICdpbWFnZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIExhbmd1YWdlIGNvZGUuIEF1dG8tZGV0ZWN0cyB0aGUgdXNlcidzIGxhbmd1YWdlIGlmIHVuc3BlY2lmaWVkLlxyXG4gICAgKi9cclxuICAgIEBJbnB1dCgpIGhsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFRhYiBpbmRleFxyXG4gICAgKi9cclxuICAgIEBJbnB1dCgpIHRhYkluZGV4ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSByZWNlaXZlcyBzdWNjZXNzZnVsIHJlc3BvbnNlLlxyXG4gICAgKiBDYXB0Y2hhIHJlc3BvbnNlIHRva2VuIGlzIHBhc3NlZCB0byBldmVudC5cclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBjYXB0Y2hhIGlzIGxvYWRlZC4gRXZlbnQgcmVjZWl2ZXMgaWQgb2YgdGhlIGNhcHRjaGFcclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBjYXB0Y2hhIGlzIGxvYWRlZCAmIHJlYWR5LiBJLmUuIHdoZW4geW91IG5lZWQgdG8gZXhlY3V0ZSBjYXB0Y2hhIG9uIGNvbXBvbmVudCBsb2FkLlxyXG4gICAgKi9cclxuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdjYXB0Y2hhV3JhcHBlckVsZW0nKSBjYXB0Y2hhV3JhcHBlckVsZW06IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdjYXB0Y2hhU2NyaXB0RWxlbScpIGNhcHRjaGFTY3JpcHRFbGVtOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJbmRpY2F0ZXMgaWYgY2FwdGNoYSBzaG91bGQgYmUgc2V0IG9uIGxvYWRcclxuICAgICovXHJcbiAgICBwcml2YXRlIHNldHVwQWZ0ZXJMb2FkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhcHRjaGEgZWxlbWVudFxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjYXB0Y2hhRWxlbT86IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJZCBvZiB0aGUgY2FwdGNoYSBlbGVtXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNhcHRjaGFJZD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICogSG9sZHMgbGFzdCByZXNwb25zZSB2YWx1ZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjdXJyZW50UmVzcG9uc2U/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIElmIGVuYWJsZWQsIGNhcHRjaGEgd2lsbCByZXNldCBhZnRlciByZWNlaXZpbmcgc3VjY2VzcyByZXNwb25zZS4gVGhpcyBpcyB1c2VmdWxcclxuICAgICogd2hlbiBpbnZpc2libGUgY2FwdGNoYSBuZWVkIHRvIGJlIHJlc29sdmVkIG11bHRpcGxlIHRpbWVzIG9uIHNhbWUgcGFnZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZXNldENhcHRjaGFBZnRlclN1Y2Nlc3MgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FwdGNoYSB0eXBlXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlcXVpcmVkIGJ5IENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcclxuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ6ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJbmRpY2F0ZXMgaWYgY2FwdGNoYSBpcyBsb2FkZWRcclxuICAgICovXHJcbiAgICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICogUmVmZXJlbmNlIHRvIGdsb2JhbCByZUNhcHRjaGEgQVBJXHJcbiAgICAqL1xyXG4gICAgcHVibGljIHJlQ2FwdGNoYUFwaT86IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICogSWQgb2YgdGhlIERPTSBlbGVtZW50IHdyYXBwaW5nIGNhcHRjaGFcclxuICAgICovXHJcbiAgICBwdWJsaWMgY2FwdGNoYUVsZW1JZD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICogRm9ybSBDb250cm9sIHRvIGJlIGVuYWJsZSB1c2FnZSBpbiByZWFjdGl2ZSBmb3Jtc1xyXG4gICAgKi9cclxuICAgIHB1YmxpYyBjb250cm9sPzogRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCkuY29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyByZUNhcHRjaGEgcHJvcGVydGllc1xyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFVzZWQgZm9yIGNhcHRjaGEgc3BlY2lmaWMgc2V0dXBcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FwdGNoYVNwZWNpZmljU2V0dXAoKTogdm9pZDtcclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgLy8gY2xlYW51cCBzY3JpcHRzIGlmIGxhbmd1YWdlIGNoYW5nZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgcmVsb2FkZWRcclxuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLmhsKSB7XHJcbiAgICAgICAgICAgIGlmICghY2hhbmdlcy5obC5maXJzdENoYW5nZSAmJiAoY2hhbmdlcy5obC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuaGwucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0U2VydmljZS5jbGVhbnVwKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBjYXB0Y2hhIHJlc3BvbnNlIGFzIHBlciByZUNhcHRjaGEgZG9jc1xyXG4gICAgKi9cclxuICAgIGdldFJlc3BvbnNlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVDYXB0Y2hhQXBpLmdldFJlc3BvbnNlKHRoaXMuY2FwdGNoYUlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBJZCBvZiBjYXB0Y2hhIHdpZGdldFxyXG4gICAgKi9cclxuICAgIGdldENhcHRjaGFJZCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhcHRjaGFJZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVzZXRzIGNhcHRjaGFcclxuICAgICovXHJcbiAgICByZXNldENhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQodW5kZWZpbmVkKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBsYXN0IHN1Ym1pdHRlZCBjYXB0Y2hhIHJlc3BvbnNlXHJcbiAgICAqL1xyXG4gICAgZ2V0Q3VycmVudFJlc3BvbnNlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFJlc3BvbnNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZWxvYWQgY2FwdGNoYS4gVXNlZnVsIHdoZW4gcHJvcGVydGllcyAoaS5lLiB0aGVtZSkgY2hhbmdlZCBhbmQgY2FwdGNoYSBuZWVkIHRvIHJlZmxlY3QgdGhlbVxyXG4gICAgKi9cclxuICAgIHJlbG9hZENhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBlbnN1cmVDYXB0Y2hhRWxlbShjYXB0Y2hhRWxlbUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjYXB0Y2hhRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhcHRjaGFFbGVtSWQpO1xyXG5cclxuICAgICAgICBpZiAoIWNhcHRjaGFFbGVtKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW1lbnQgd2l0aCBpZCAnJHtjYXB0Y2hhRWxlbUlkfScgd2FzIG5vdCBmb3VuZGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gYXNzaWduIGNhcHRjaGEgYWxlbVxyXG4gICAgICAgIHRoaXMuY2FwdGNoYUVsZW0gPSBjYXB0Y2hhRWxlbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVzcG9uc2libGUgZm9yIGluc3RhbnRpYXRpbmcgY2FwdGNoYSBlbGVtZW50XHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlbmRlclJlQ2FwdGNoYSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNhcHRjaGFJZCA9IHRoaXMucmVDYXB0Y2hhQXBpLnJlbmRlcih0aGlzLmNhcHRjaGFFbGVtSWQsIHRoaXMuZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKSk7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgcmVzcG9uc2VcclxuICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNhbGxiYWNrKGNhbGxiYWNrOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNwb25zZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc3VjY2Vzcy5uZXh0KGNhbGxiYWNrKTtcclxuXHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoY2FsbGJhY2spO1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZChjYWxsYmFjayk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnJlc2V0Q2FwdGNoYUFmdGVyU3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBzZXVkb1VuaXF1ZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldFVUQ01pbGxpc2Vjb25kcygpICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTk5OSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXR1cENvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBjYXB0Y2hhIHNwZWNpZmljIHNldHVwXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhU3BlY2lmaWNTZXR1cCgpO1xyXG5cclxuICAgICAgICAvLyBjcmVhdGUgY2FwdGNoYSB3cmFwcGVyXHJcbiAgICAgICAgdGhpcy5jcmVhdGVBbmRTZXRDYXB0Y2hhRWxlbSgpO1xyXG5cclxuICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UucmVnaXN0ZXJDYXB0Y2hhU2NyaXB0KCdleHBsaWNpdCcsIChncmVjYXB0Y2hhKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25sb2FkQ2FsbGJhY2soZ3JlY2FwdGNoYSk7XHJcbiAgICAgICAgfSwgdGhpcy5obCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGdvb2dsZSdzIHJlY2FwdGNoYSBzY3JpcHQgaXMgcmVhZHlcclxuICAgICovXHJcbiAgICBwcml2YXRlIG9ubG9hZENhbGxiYWNrKGdyZWNhcGNoYTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLy8gYXNzaWduIHJlZmVyZW5jZSB0byByZUNhcHRjaGEgQXBpIG9uY2UgaXRzIGxvYWRlZFxyXG4gICAgICAgIHRoaXMucmVDYXB0Y2hhQXBpID0gZ3JlY2FwY2hhO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMucmVDYXB0Y2hhQXBpKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBSZUNhcHRjaGEgQXBpIHdhcyBub3QgaW5pdGlhbGl6ZWQgY29ycmVjdGx5YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBsb2FkZWQgZmxhZ1xyXG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBmaXJlIGxvYWQgZXZlbnRcclxuICAgICAgICB0aGlzLmxvYWQubmV4dCgpO1xyXG5cclxuICAgICAgICAvLyByZW5kZXIgY2FwdGNoYVxyXG4gICAgICAgIHRoaXMucmVuZGVyUmVDYXB0Y2hhKCk7XHJcblxyXG4gICAgICAgIC8vIHNldHVwIGNvbXBvbmVudCBpZiBpdCB3YXMgZmxhZ2dlZCBhcyBzdWNoXHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dXBBZnRlckxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cEFmdGVyTG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVOZXdFbGVtSWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhRWxlbVByZWZpeCArIHRoaXMuZ2V0UHNldWRvVW5pcXVlTnVtYmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVBbmRTZXRDYXB0Y2hhRWxlbSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBnZW5lcmF0ZSBuZXcgY2FwdGNoYSBpZFxyXG4gICAgICAgIHRoaXMuY2FwdGNoYUVsZW1JZCA9IHRoaXMuZ2VuZXJhdGVOZXdFbGVtSWQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNhcHRjaGFFbGVtSWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYENhcHRjaGEgZWxlbSBJZCBpcyBub3Qgc2V0YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyByZW1vdmUgb2xkIGh0bWxcclxuICAgICAgICB0aGlzLmNhcHRjaGFXcmFwcGVyRWxlbS5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xyXG5cclxuICAgICAgICAvLyBjcmVhdGUgbmV3IHdyYXBwZXIgZm9yIGNhcHRjaGFcclxuICAgICAgICBjb25zdCBuZXdFbGVtID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBuZXdFbGVtLmlkID0gdGhpcy5jYXB0Y2hhRWxlbUlkO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY2FwdGNoYVdyYXBwZXJFbGVtLm5hdGl2ZUVsZW1lbnQsIG5ld0VsZW0pO1xyXG5cclxuICAgICAgICAvLyB1cGRhdGUgY2FwdGNoYSBlbGVtXHJcbiAgICAgICAgdGhpcy5lbnN1cmVDYXB0Y2hhRWxlbSh0aGlzLmNhcHRjaGFFbGVtSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG8gYmUgYWxpZ25lZCB3aXRoIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2Ugd2UgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyBtZXRob2RcclxuICAgICAqIEhvd2V2ZXIgYXMgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgdGhlIHJlY2FwdGNoYSwgdGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUgaW1wbGVtZW50ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgaGVscHMgdXMgdGllIHRvZ2V0aGVyIHJlY2FwdGNoYSBhbmQgb3VyIGZvcm1Db250cm9sIHZhbHVlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBBdCBzb21lIHBvaW50IHdlIG1pZ2h0IGJlIGludGVyZXN0ZWQgd2hldGhlciB0aGUgdXNlciBoYXMgdG91Y2hlZCBvdXIgY29tcG9uZW50XHJcbiAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=

@@ -99,4 +99,4 @@ /**

this.zone.run(() => {
this.onChange(null);
this.onTouched(null);
this.onChange(undefined);
this.onTouched(undefined);
});

@@ -191,2 +191,2 @@ this.error.next();

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9yZWNhcHRjaGEtMi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFjcEUsTUFBTSwwQkFBMkIsU0FBUSxzQkFBc0I7Ozs7Ozs7SUF1QzdELFlBQ1ksUUFBbUIsRUFDbkIsSUFBWSxFQUNaLFFBQWtCLEVBQ2xCLGFBQTRCO1FBRXRDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUxyQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlOzs7OzZDQXRDVyw0QkFBNEI7Ozs7OENBSzNCLDZCQUE2Qjs7OztxQkFLOUMsT0FBTzs7OztvQkFLSixRQUFROzs7O3NCQVUzQixJQUFJLFlBQVksRUFBUTs7OztxQkFLekIsSUFBSSxZQUFZLEVBQVE7NkJBRUQsYUFBYSxDQUFDLFVBQVU7S0FTaEU7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7Ozs7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ2xEOzs7O0lBRVMsb0JBQW9CO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0tBQzFCOzs7OztJQUtTLG9CQUFvQjtRQUM1QixNQUFNLENBQUM7WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDdkIsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSztZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDO0tBQ0g7Ozs7O0lBS08saUJBQWlCO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzs7Ozs7SUFNN0UsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7O0lBTVosb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7O1FBR25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7OztZQXBIdkIsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRTtrQ0FDc0I7Z0JBQ2hDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjthQUNGOzs7O1lBcEJDLFNBQVM7WUFMVCxNQUFNO1lBRk4sUUFBUTtZQWFELGFBQWE7OztvQkE4Qm5CLEtBQUs7bUJBS0wsS0FBSztpQkFLTCxLQUFLO3FCQUtMLE1BQU07b0JBS04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUmVDYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtcmVjYXB0Y2hhMicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8ZGl2ICNjYXB0Y2hhV3JhcHBlckVsZW0+PC9kaXY+YCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlQ2FwdGNoYTJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGEyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZXhwaXJlIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25FcnJvckNhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfZXJyb3JfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBlcnJvciBjYWxsYmFja1xyXG4gICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9leHBpcmVfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAgKiBUaGVtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgKiBTaXplXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAqIEV4cGlyZWQgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBleHBpcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogRXJyb3IgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGUgPSBSZUNhcHRjaGFUeXBlLlJlQ2FwdGNoYTI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjYXB0Y2hhU3BlY2lmaWNTZXR1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFja3MoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrKCkpLFxyXG4gICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuaGFuZGxlRXJyb3JDYWxsYmFjaygpKSxcclxuICAgICAgJ3RoZW1lJzogdGhpcy50aGVtZSxcclxuICAgICAgJ3R5cGUnOiB0aGlzLnR5cGUsXHJcbiAgICAgICdzaXplJzogdGhpcy5zaXplLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBjYWxsYmFja3NcclxuICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsYmFja3MoKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGVycm9yIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcml2YXRlIGhhbmRsZUVycm9yQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICAgICAgdGhpcy5vblRvdWNoZWQobnVsbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmVycm9yLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZXhwaXJlZCBjYWxsYmFja1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlRXhwaXJlQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGlyZS5uZXh0KCk7XHJcblxyXG4gICAgLy8gcmVzZXQgY2FwdGNoYSBvbiBleHBpcmUgY2FsbGJhY2tcclxuICAgIHRoaXMucmVzZXRDYXB0Y2hhKCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9yZWNhcHRjaGEtMi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFjcEUsTUFBTSwwQkFBMkIsU0FBUSxzQkFBc0I7Ozs7Ozs7SUF1QzdELFlBQ1ksUUFBbUIsRUFDbkIsSUFBWSxFQUNaLFFBQWtCLEVBQ2xCLGFBQTRCO1FBRXRDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUxyQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlOzs7OzZDQXRDVyw0QkFBNEI7Ozs7OENBSzNCLDZCQUE2Qjs7OztxQkFLOUMsT0FBTzs7OztvQkFLSixRQUFROzs7O3NCQVUzQixJQUFJLFlBQVksRUFBUTs7OztxQkFLekIsSUFBSSxZQUFZLEVBQVE7NkJBRUQsYUFBYSxDQUFDLFVBQVU7S0FTaEU7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7Ozs7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ2xEOzs7O0lBRVMsb0JBQW9CO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0tBQzFCOzs7OztJQUtTLG9CQUFvQjtRQUM1QixNQUFNLENBQUM7WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDdkIsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzFFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSztZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDO0tBQ0g7Ozs7O0lBS08saUJBQWlCO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzs7Ozs7SUFNN0UsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7O0lBTVosb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7O1FBR25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7OztZQXBIdkIsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRTtrQ0FDc0I7Z0JBQ2hDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjthQUNGOzs7O1lBcEJDLFNBQVM7WUFMVCxNQUFNO1lBRk4sUUFBUTtZQWFELGFBQWE7OztvQkE4Qm5CLEtBQUs7bUJBS0wsS0FBSztpQkFLTCxLQUFLO3FCQUtMLE1BQU07b0JBS04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUmVDYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtcmVjYXB0Y2hhMicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8ZGl2ICNjYXB0Y2hhV3JhcHBlckVsZW0+PC9kaXY+YCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlQ2FwdGNoYTJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGEyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZXhwaXJlIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25FcnJvckNhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfZXJyb3JfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBlcnJvciBjYWxsYmFja1xyXG4gICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9leHBpcmVfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAgKiBUaGVtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgKiBTaXplXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAqIEV4cGlyZWQgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBleHBpcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogRXJyb3IgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGUgPSBSZUNhcHRjaGFUeXBlLlJlQ2FwdGNoYTI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjYXB0Y2hhU3BlY2lmaWNTZXR1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFja3MoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrKCkpLFxyXG4gICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuaGFuZGxlRXJyb3JDYWxsYmFjaygpKSxcclxuICAgICAgJ3RoZW1lJzogdGhpcy50aGVtZSxcclxuICAgICAgJ3R5cGUnOiB0aGlzLnR5cGUsXHJcbiAgICAgICdzaXplJzogdGhpcy5zaXplLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBjYWxsYmFja3NcclxuICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsYmFja3MoKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGVycm9yIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcml2YXRlIGhhbmRsZUVycm9yQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh1bmRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCh1bmRlZmluZWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5lcnJvci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGV4cGlyZWQgY2FsbGJhY2tcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUV4cGlyZUNhbGxiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBpcmUubmV4dCgpO1xyXG5cclxuICAgIC8vIHJlc2V0IGNhcHRjaGEgb24gZXhwaXJlIGNhbGxiYWNrXHJcbiAgICB0aGlzLnJlc2V0Q2FwdGNoYSgpO1xyXG4gIH1cclxufVxyXG5cclxuIl19

@@ -42,3 +42,3 @@ /**

scriptElem.innerHTML = '';
scriptElem.src = this.getCaptchaScriptUrl(language, render);
scriptElem.src = this.getCaptchaScriptUrl(render, language);
scriptElem.async = true;

@@ -79,7 +79,7 @@ scriptElem.defer = true;

* Url to google api script
* @param {?} language
* @param {?} render
* @param {?=} language
* @return {?}
*/
getCaptchaScriptUrl(language, render) {
getCaptchaScriptUrl(render, language) {
// tslint:disable-next-line:max-line-length

@@ -111,2 +111,2 @@ return `https://www.google.com/recaptcha/api.js?onload=${this.windowOnLoadCallbackProperty}&render=${render}${this.getLanguageParam(language)}`;

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2FwdGNoYS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsTUFBTTs7OztJQVlGLFlBQ2MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7Ozs7Z0NBUlksWUFBWTs7Ozs0Q0FLQSw2QkFBNkI7S0FLOUU7Ozs7Ozs7SUFFRCxxQkFBcUIsQ0FBQyxNQUEyQixFQUFFLE1BQWlDLEVBQUUsUUFBaUI7UUFDbkcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDOzs7WUFHaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzthQUN6QyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUM7U0FDVjs7O1FBSUQsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxxQkFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FDbkQsQ0FBQyxDQUFBLENBQUM7O1FBR0gsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUMxQixVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7O1FBR3hCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDcEU7Ozs7SUFFRCxPQUFPO1FBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsU0FBUyxDQUFDO0tBQzdDOzs7OztJQUtPLHNCQUFzQjtRQUMxQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDOzs7Ozs7O0lBTVQsZ0JBQWdCLENBQUMsRUFBVztRQUNoQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ2I7UUFFRCxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQzs7Ozs7Ozs7SUFNZixtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLE1BQWM7O1FBRXhELE1BQU0sQ0FBQyxrREFBa0QsSUFBSSxDQUFDLDRCQUE0QixXQUFXLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzs7OztZQTVFdkosVUFBVTs7OztZQUpVLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmRlY2xhcmUgdmFyIGRvY3VtZW50OiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTY3JpcHRTZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBnb29nbGUgcmVjYXB0Y2hhIHNjcmlwdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93R3JlY2FwdGNoYSA9ICdncmVjYXB0Y2hhJztcclxuXHJcbiAgICAvKipcclxuICAgICogTmFtZSBvZiB0aGUgZ2xvYmFsIGNhbGxiYWNrXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfb25sb2FkX2NhbGxiYWNrJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJDYXB0Y2hhU2NyaXB0KHJlbmRlcjogc3RyaW5nIHwgJ2V4cGxpY2l0Jywgb25Mb2FkOiAoZ3JlY2FwdGNoYTogYW55KSA9PiB2b2lkLCBsYW5ndWFnZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmdyZWNhcHRjaGFTY3JpcHRMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAvLyByZWNhcHRjaGEgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgICAgICAgIC8vIGp1c3QgY2FsbCB0aGUgY2FsbGJhY2tcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkxvYWQod2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gd2UgbmVlZCB0byBwYXRjaCB0aGUgY2FsbGJhY2sgdGhyb3VnaCBnbG9iYWwgdmFyaWFibGUsIG90aGVyd2lzZSBjYWxsYmFjayBpcyBub3QgYWNjZXNzaWJsZVxyXG4gICAgICAgIC8vIG5vdGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9Fbm5nYWdlL25neC1jYXB0Y2hhL2lzc3Vlcy8yXHJcbiAgICAgICAgd2luZG93W3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eV0gPSA8YW55PigoKSA9PiB0aGlzLnpvbmUucnVuKFxyXG4gICAgICAgICAgICBvbkxvYWQuYmluZCh0aGlzLCB3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSlcclxuICAgICAgICApKTtcclxuXHJcbiAgICAgICAgLy8gcHJlcGFyZSBzY3JpcHQgZWxlbVxyXG4gICAgICAgIGNvbnN0IHNjcmlwdEVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgICBzY3JpcHRFbGVtLmlubmVySFRNTCA9ICcnO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uc3JjID0gdGhpcy5nZXRDYXB0Y2hhU2NyaXB0VXJsKGxhbmd1YWdlLCByZW5kZXIpO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uYXN5bmMgPSB0cnVlO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uZGVmZXIgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBhZGQgc2NyaXB0IHRvIGhlYWRlclxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYW51cCgpOiB2b2lkIHtcclxuICAgICAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5XSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyBpZiBnb29nbGUgcmVjYXB0Y2hhIHNjcmlwdCBpcyBhdmFpbGFibGUgYW5kIHJlYWR5IHRvIGJlIHVzZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBncmVjYXB0Y2hhU2NyaXB0TG9hZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh3aW5kb3dbdGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5XSAmJiB3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBsYW5ndWFnZSBwYXJhbSB1c2VkIGluIHNjcmlwdCB1cmxcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRMYW5ndWFnZVBhcmFtKGhsPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWhsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgJmhsPSR7aGx9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogVXJsIHRvIGdvb2dsZSBhcGkgc2NyaXB0XHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRDYXB0Y2hhU2NyaXB0VXJsKGxhbmd1YWdlOiBzdHJpbmcsIHJlbmRlcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/b25sb2FkPSR7dGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5fSZyZW5kZXI9JHtyZW5kZXJ9JHt0aGlzLmdldExhbmd1YWdlUGFyYW0obGFuZ3VhZ2UpfWA7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2FwdGNoYS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsTUFBTTs7OztJQVlGLFlBQ2MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7Ozs7Z0NBUlksWUFBWTs7Ozs0Q0FLQSw2QkFBNkI7S0FLOUU7Ozs7Ozs7SUFFRCxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsTUFBaUMsRUFBRSxRQUFpQjtRQUN0RixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUM7OztZQUdoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2FBQ3pDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQztTQUNWOzs7UUFJRCxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2pFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUNuRCxDQUFDLENBQUEsQ0FBQzs7UUFHSCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN4QixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7UUFHeEIsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNwRTs7OztJQUVELE9BQU87UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxTQUFTLENBQUM7S0FDN0M7Ozs7O0lBS08sc0JBQXNCO1FBQzFCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDZjtRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7SUFNVCxnQkFBZ0IsQ0FBQyxFQUFXO1FBQ2hDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxFQUFFLENBQUM7U0FDYjtRQUVELE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDOzs7Ozs7OztJQU1mLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxRQUFpQjs7UUFFekQsTUFBTSxDQUFDLGtEQUFrRCxJQUFJLENBQUMsNEJBQTRCLFdBQVcsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDOzs7O1lBNUV2SixVQUFVOzs7O1lBSlUsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZGVjbGFyZSB2YXIgZG9jdW1lbnQ6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNjcmlwdFNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZ2xvYmFsIGdvb2dsZSByZWNhcHRjaGEgc2NyaXB0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB3aW5kb3dHcmVjYXB0Y2hhID0gJ2dyZWNhcHRjaGEnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgY2FsbGJhY2tcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9vbmxvYWRfY2FsbGJhY2snO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlckNhcHRjaGFTY3JpcHQocmVuZGVyOiBzdHJpbmcsIG9uTG9hZDogKGdyZWNhcHRjaGE6IGFueSkgPT4gdm9pZCwgbGFuZ3VhZ2U/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5ncmVjYXB0Y2hhU2NyaXB0TG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgLy8gcmVjYXB0Y2hhIHNjcmlwdCBpcyBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICAgICAgICAvLyBqdXN0IGNhbGwgdGhlIGNhbGxiYWNrXHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25Mb2FkKHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gcGF0Y2ggdGhlIGNhbGxiYWNrIHRocm91Z2ggZ2xvYmFsIHZhcmlhYmxlLCBvdGhlcndpc2UgY2FsbGJhY2sgaXMgbm90IGFjY2Vzc2libGVcclxuICAgICAgICAvLyBub3RlOiBodHRwczovL2dpdGh1Yi5jb20vRW5uZ2FnZS9uZ3gtY2FwdGNoYS9pc3N1ZXMvMlxyXG4gICAgICAgIHdpbmRvd1t0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHldID0gPGFueT4oKCkgPT4gdGhpcy56b25lLnJ1bihcclxuICAgICAgICAgICAgb25Mb2FkLmJpbmQodGhpcywgd2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0pXHJcbiAgICAgICAgKSk7XHJcblxyXG4gICAgICAgIC8vIHByZXBhcmUgc2NyaXB0IGVsZW1cclxuICAgICAgICBjb25zdCBzY3JpcHRFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICBzY3JpcHRFbGVtLnNyYyA9IHRoaXMuZ2V0Q2FwdGNoYVNjcmlwdFVybChyZW5kZXIsIGxhbmd1YWdlKTtcclxuICAgICAgICBzY3JpcHRFbGVtLmFzeW5jID0gdHJ1ZTtcclxuICAgICAgICBzY3JpcHRFbGVtLmRlZmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gYWRkIHNjcmlwdCB0byBoZWFkZXJcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdEVsZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFudXAoKTogdm9pZCB7XHJcbiAgICAgICAgd2luZG93W3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eV0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgd2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgaWYgZ29vZ2xlIHJlY2FwdGNoYSBzY3JpcHQgaXMgYXZhaWxhYmxlIGFuZCByZWFkeSB0byBiZSB1c2VkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ3JlY2FwdGNoYVNjcmlwdExvYWRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAod2luZG93W3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eV0gJiYgd2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgbGFuZ3VhZ2UgcGFyYW0gdXNlZCBpbiBzY3JpcHQgdXJsXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0TGFuZ3VhZ2VQYXJhbShobD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFobCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYCZobD0ke2hsfWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFVybCB0byBnb29nbGUgYXBpIHNjcmlwdFxyXG4gICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q2FwdGNoYVNjcmlwdFVybChyZW5kZXI6IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9vbmxvYWQ9JHt0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHl9JnJlbmRlcj0ke3JlbmRlcn0ke3RoaXMuZ2V0TGFuZ3VhZ2VQYXJhbShsYW5ndWFnZSl9YDtcclxuICAgIH1cclxuXHJcbn1cclxuIl19

@@ -123,4 +123,4 @@ /**

this.zone.run(function () {
_this.onChange(null);
_this.onTouched(null);
_this.onChange(undefined);
_this.onTouched(undefined);
});

@@ -477,2 +477,2 @@ };

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZWNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFSCxVQUFVLEVBQ1YsWUFBWSxFQUVaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0lBNkcxRSxnQ0FDYyxRQUFtQixFQUNuQixJQUFZLEVBQ1osUUFBa0IsRUFDbEIsYUFBNEI7UUFINUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTs7OztpQ0F2R0gsaUJBQWlCOzs7O29CQVdyQixPQUFPOzs7O3dCQVV0QixDQUFDOzs7Ozt1QkFNRCxJQUFJLFlBQVksRUFBVTs7OztvQkFLN0IsSUFBSSxZQUFZLEVBQVU7Ozs7cUJBS3pCLElBQUksWUFBWSxFQUFROzs7OzhCQVFqQixLQUFLOzs7Ozt3Q0FxQk8sS0FBSzs7Ozt3QkFnQnhCLEtBQUs7S0FzQmxCOzs7O0lBRUwsZ0RBQWU7OztJQUFmO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDdkQ7Ozs7O0lBWUQsNENBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCOztRQUU5QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxNQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFJLFdBQVcsSUFBSSxDQUFDLE9BQU8sT0FBSSxZQUFZLEtBQUssT0FB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QUFDOztRQUcxRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7OztJQU94QywyQ0FBVTs7Ozs7O2NBQUMsR0FBUTs7Ozs7O0lBS25CLGlEQUFnQjs7Ozs7Y0FBQyxFQUFPO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDOzs7Ozs7O0lBTWhCLGtEQUFpQjs7Ozs7Y0FBQyxFQUFPO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDOzs7MEJBOVJ2QixLQUFLO3VCQUtMLEtBQUs7cUJBS0wsS0FBSzsyQkFLTCxLQUFLOzBCQU1MLE1BQU07dUJBS04sTUFBTTt3QkFLTixNQUFNO3FDQUVOLFNBQVMsU0FBQyxvQkFBb0I7b0NBQzlCLFNBQVMsU0FBQyxtQkFBbUI7O2lDQS9EbEM7O1NBa0JzQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZUNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICogUHJlZml4IG9mIHRoZSBjYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FwdGNoYUVsZW1QcmVmaXggPSAnbmd4X2NhcHRjaGFfaWRfJztcclxuXHJcbiAgICAvKipcclxuICAgICogR29vZ2xlJ3Mgc2l0ZSBrZXkuXHJcbiAgICAqIFlvdSBjYW4gZmluZCB0aGlzIHVuZGVyIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgc2l0ZUtleTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUeXBlXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgdHlwZTogJ2F1ZGlvJyB8ICdpbWFnZScgPSAnaW1hZ2UnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgICovXHJcbiAgICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUYWIgaW5kZXhcclxuICAgICovXHJcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgc3VjY2Vzc2Z1bCByZXNwb25zZS5cclxuICAgICogQ2FwdGNoYSByZXNwb25zZSB0b2tlbiBpcyBwYXNzZWQgdG8gZXZlbnQuXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQuIEV2ZW50IHJlY2VpdmVzIGlkIG9mIHRoZSBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQgJiByZWFkeS4gSS5lLiB3aGVuIHlvdSBuZWVkIHRvIGV4ZWN1dGUgY2FwdGNoYSBvbiBjb21wb25lbnQgbG9hZC5cclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVdyYXBwZXJFbGVtJykgY2FwdGNoYVdyYXBwZXJFbGVtOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVNjcmlwdEVsZW0nKSBjYXB0Y2hhU2NyaXB0RWxlbTogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgc2hvdWxkIGJlIHNldCBvbiBsb2FkXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXR1cEFmdGVyTG9hZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY2FwdGNoYUVsZW0/OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICogSWQgb2YgdGhlIGNhcHRjaGEgZWxlbVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjYXB0Y2hhSWQ/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEhvbGRzIGxhc3QgcmVzcG9uc2UgdmFsdWVcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3VycmVudFJlc3BvbnNlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJZiBlbmFibGVkLCBjYXB0Y2hhIHdpbGwgcmVzZXQgYWZ0ZXIgcmVjZWl2aW5nIHN1Y2Nlc3MgcmVzcG9uc2UuIFRoaXMgaXMgdXNlZnVsXHJcbiAgICAqIHdoZW4gaW52aXNpYmxlIGNhcHRjaGEgbmVlZCB0byBiZSByZXNvbHZlZCBtdWx0aXBsZSB0aW1lcyBvbiBzYW1lIHBhZ2VcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVzZXRDYXB0Y2hhQWZ0ZXJTdWNjZXNzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhcHRjaGEgdHlwZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWNhcHRjaGFUeXBlOiBSZUNhcHRjaGFUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgaXMgbG9hZGVkXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGlzTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlZmVyZW5jZSB0byBnbG9iYWwgcmVDYXB0Y2hhIEFQSVxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZUNhcHRjaGFBcGk/OiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIElkIG9mIHRoZSBET00gZWxlbWVudCB3cmFwcGluZyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGNhcHRjaGFFbGVtSWQ/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEZvcm0gQ29udHJvbCB0byBiZSBlbmFibGUgdXNhZ2UgaW4gcmVhY3RpdmUgZm9ybXNcclxuICAgICovXHJcbiAgICBwdWJsaWMgY29udHJvbD86IEZvcm1Db250cm9sO1xyXG5cclxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIHNjcmlwdFNlcnZpY2U6IFNjcmlwdFNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpLmNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBVc2VkIGZvciBjYXB0Y2hhIHNwZWNpZmljIHNldHVwXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNhcHRjaGFTcGVjaWZpY1NldHVwKCk6IHZvaWQ7XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIGNsZWFudXAgc2NyaXB0cyBpZiBsYW5ndWFnZSBjaGFuZ2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHJlbG9hZGVkXHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5obCkge1xyXG4gICAgICAgICAgICBpZiAoIWNoYW5nZXMuaGwuZmlyc3RDaGFuZ2UgJiYgKGNoYW5nZXMuaGwuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmhsLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UuY2xlYW51cCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgY2FwdGNoYSByZXNwb25zZSBhcyBwZXIgcmVDYXB0Y2hhIGRvY3NcclxuICAgICovXHJcbiAgICBnZXRSZXNwb25zZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlQ2FwdGNoYUFwaS5nZXRSZXNwb25zZSh0aGlzLmNhcHRjaGFJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgSWQgb2YgY2FwdGNoYSB3aWRnZXRcclxuICAgICovXHJcbiAgICBnZXRDYXB0Y2hhSWQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlc2V0cyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcmVzZXRDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZChudWxsKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBsYXN0IHN1Ym1pdHRlZCBjYXB0Y2hhIHJlc3BvbnNlXHJcbiAgICAqL1xyXG4gICAgZ2V0Q3VycmVudFJlc3BvbnNlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFJlc3BvbnNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZWxvYWQgY2FwdGNoYS4gVXNlZnVsIHdoZW4gcHJvcGVydGllcyAoaS5lLiB0aGVtZSkgY2hhbmdlZCBhbmQgY2FwdGNoYSBuZWVkIHRvIHJlZmxlY3QgdGhlbVxyXG4gICAgKi9cclxuICAgIHJlbG9hZENhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBlbnN1cmVDYXB0Y2hhRWxlbShjYXB0Y2hhRWxlbUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjYXB0Y2hhRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhcHRjaGFFbGVtSWQpO1xyXG5cclxuICAgICAgICBpZiAoIWNhcHRjaGFFbGVtKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW1lbnQgd2l0aCBpZCAnJHtjYXB0Y2hhRWxlbUlkfScgd2FzIG5vdCBmb3VuZGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gYXNzaWduIGNhcHRjaGEgYWxlbVxyXG4gICAgICAgIHRoaXMuY2FwdGNoYUVsZW0gPSBjYXB0Y2hhRWxlbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVzcG9uc2libGUgZm9yIGluc3RhbnRpYXRpbmcgY2FwdGNoYSBlbGVtZW50XHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlbmRlclJlQ2FwdGNoYSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNhcHRjaGFJZCA9IHRoaXMucmVDYXB0Y2hhQXBpLnJlbmRlcih0aGlzLmNhcHRjaGFFbGVtSWQsIHRoaXMuZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKSk7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgcmVzcG9uc2VcclxuICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNhbGxiYWNrKGNhbGxiYWNrOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNwb25zZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc3VjY2Vzcy5uZXh0KGNhbGxiYWNrKTtcclxuXHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoY2FsbGJhY2spO1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZChjYWxsYmFjayk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnJlc2V0Q2FwdGNoYUFmdGVyU3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQc2V1ZG9VbmlxdWVOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gY2FwdGNoYSBzcGVjaWZpYyBzZXR1cFxyXG4gICAgICAgIHRoaXMuY2FwdGNoYVNwZWNpZmljU2V0dXAoKTtcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIGNhcHRjaGEgd3JhcHBlclxyXG4gICAgICAgIHRoaXMuY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnJlZ2lzdGVyQ2FwdGNoYVNjcmlwdCgnZXhwbGljaXQnLCAoZ3JlY2FwdGNoYSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9ubG9hZENhbGxiYWNrKGdyZWNhcHRjaGEpO1xyXG4gICAgICAgIH0sIHRoaXMuaGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBnb29nbGUncyByZWNhcHRjaGEgc2NyaXB0IGlzIHJlYWR5XHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbmxvYWRDYWxsYmFjayhncmVjYXBjaGE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIGFzc2lnbiByZWZlcmVuY2UgdG8gcmVDYXB0Y2hhIEFwaSBvbmNlIGl0cyBsb2FkZWRcclxuICAgICAgICB0aGlzLnJlQ2FwdGNoYUFwaSA9IGdyZWNhcGNoYTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnJlQ2FwdGNoYUFwaSkge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgUmVDYXB0Y2hhIEFwaSB3YXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbG9hZGVkIGZsYWdcclxuICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gZmlyZSBsb2FkIGV2ZW50XHJcbiAgICAgICAgdGhpcy5sb2FkLm5leHQoKTtcclxuXHJcbiAgICAgICAgLy8gcmVuZGVyIGNhcHRjaGFcclxuICAgICAgICB0aGlzLnJlbmRlclJlQ2FwdGNoYSgpO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBjb21wb25lbnQgaWYgaXQgd2FzIGZsYWdnZWQgYXMgc3VjaFxyXG4gICAgICAgIGlmICh0aGlzLnNldHVwQWZ0ZXJMb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBBZnRlckxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlTmV3RWxlbUlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwdGNoYUVsZW1QcmVmaXggKyB0aGlzLmdldFBzZXVkb1VuaXF1ZU51bWJlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZ2VuZXJhdGUgbmV3IGNhcHRjaGEgaWRcclxuICAgICAgICB0aGlzLmNhcHRjaGFFbGVtSWQgPSB0aGlzLmdlbmVyYXRlTmV3RWxlbUlkKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jYXB0Y2hhRWxlbUlkKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW0gSWQgaXMgbm90IHNldGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gcmVtb3ZlIG9sZCBodG1sXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhV3JhcHBlckVsZW0ubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIG5ldyB3cmFwcGVyIGZvciBjYXB0Y2hhXHJcbiAgICAgICAgY29uc3QgbmV3RWxlbSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgbmV3RWxlbS5pZCA9IHRoaXMuY2FwdGNoYUVsZW1JZDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNhcHRjaGFXcmFwcGVyRWxlbS5uYXRpdmVFbGVtZW50LCBuZXdFbGVtKTtcclxuXHJcbiAgICAgICAgLy8gdXBkYXRlIGNhcHRjaGEgZWxlbVxyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwdGNoYUVsZW0odGhpcy5jYXB0Y2hhRWxlbUlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvIGJlIGFsaWduZWQgd2l0aCB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHdlIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgbWV0aG9kXHJcbiAgICAgKiBIb3dldmVyIGFzIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIHRoZSByZWNhcHRjaGEsIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGltcGxlbWVudGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGhlbHBzIHVzIHRpZSB0b2dldGhlciByZWNhcHRjaGEgYW5kIG91ciBmb3JtQ29udHJvbCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogQXQgc29tZSBwb2ludCB3ZSBtaWdodCBiZSBpbnRlcmVzdGVkIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRvdWNoZWQgb3VyIGNvbXBvbmVudFxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxufVxyXG5cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZWNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFSCxVQUFVLEVBQ1YsWUFBWSxFQUVaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0lBNkcxRSxnQ0FDYyxRQUFtQixFQUNuQixJQUFZLEVBQ1osUUFBa0IsRUFDbEIsYUFBNEI7UUFINUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTs7OztpQ0F2R0gsaUJBQWlCOzs7O29CQVdyQixPQUFPOzs7O3dCQVV0QixDQUFDOzs7Ozt1QkFNRCxJQUFJLFlBQVksRUFBVTs7OztvQkFLN0IsSUFBSSxZQUFZLEVBQVU7Ozs7cUJBS3pCLElBQUksWUFBWSxFQUFROzs7OzhCQVFqQixLQUFLOzs7Ozt3Q0FxQk8sS0FBSzs7Ozt3QkFnQnhCLEtBQUs7S0FzQmxCOzs7O0lBRUwsZ0RBQWU7OztJQUFmO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDdkQ7Ozs7O0lBWUQsNENBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCOztRQUU5QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxNQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFJLFdBQVcsSUFBSSxDQUFDLE9BQU8sT0FBSSxZQUFZLEtBQUssT0FB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QUFDOztRQUcxRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7OztJQU94QywyQ0FBVTs7Ozs7O2NBQUMsR0FBUTs7Ozs7O0lBS25CLGlEQUFnQjs7Ozs7Y0FBQyxFQUFPO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDOzs7Ozs7O0lBTWhCLGtEQUFpQjs7Ozs7Y0FBQyxFQUFPO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDOzs7MEJBN1J2QixLQUFLO3VCQUtMLEtBQUs7cUJBS0wsS0FBSzsyQkFLTCxLQUFLOzBCQU1MLE1BQU07dUJBS04sTUFBTTt3QkFLTixNQUFNO3FDQUVOLFNBQVMsU0FBQyxvQkFBb0I7b0NBQzlCLFNBQVMsU0FBQyxtQkFBbUI7O2lDQS9EbEM7O1NBa0JzQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZUNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICogUHJlZml4IG9mIHRoZSBjYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FwdGNoYUVsZW1QcmVmaXggPSAnbmd4X2NhcHRjaGFfaWRfJztcclxuXHJcbiAgICAvKipcclxuICAgICogR29vZ2xlJ3Mgc2l0ZSBrZXkuXHJcbiAgICAqIFlvdSBjYW4gZmluZCB0aGlzIHVuZGVyIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgc2l0ZUtleTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUeXBlXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgdHlwZTogJ2F1ZGlvJyB8ICdpbWFnZScgPSAnaW1hZ2UnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgICovXHJcbiAgICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUYWIgaW5kZXhcclxuICAgICovXHJcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgc3VjY2Vzc2Z1bCByZXNwb25zZS5cclxuICAgICogQ2FwdGNoYSByZXNwb25zZSB0b2tlbiBpcyBwYXNzZWQgdG8gZXZlbnQuXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQuIEV2ZW50IHJlY2VpdmVzIGlkIG9mIHRoZSBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQgJiByZWFkeS4gSS5lLiB3aGVuIHlvdSBuZWVkIHRvIGV4ZWN1dGUgY2FwdGNoYSBvbiBjb21wb25lbnQgbG9hZC5cclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVdyYXBwZXJFbGVtJykgY2FwdGNoYVdyYXBwZXJFbGVtOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVNjcmlwdEVsZW0nKSBjYXB0Y2hhU2NyaXB0RWxlbTogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgc2hvdWxkIGJlIHNldCBvbiBsb2FkXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXR1cEFmdGVyTG9hZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY2FwdGNoYUVsZW0/OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICogSWQgb2YgdGhlIGNhcHRjaGEgZWxlbVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjYXB0Y2hhSWQ/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEhvbGRzIGxhc3QgcmVzcG9uc2UgdmFsdWVcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3VycmVudFJlc3BvbnNlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJZiBlbmFibGVkLCBjYXB0Y2hhIHdpbGwgcmVzZXQgYWZ0ZXIgcmVjZWl2aW5nIHN1Y2Nlc3MgcmVzcG9uc2UuIFRoaXMgaXMgdXNlZnVsXHJcbiAgICAqIHdoZW4gaW52aXNpYmxlIGNhcHRjaGEgbmVlZCB0byBiZSByZXNvbHZlZCBtdWx0aXBsZSB0aW1lcyBvbiBzYW1lIHBhZ2VcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVzZXRDYXB0Y2hhQWZ0ZXJTdWNjZXNzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhcHRjaGEgdHlwZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWNhcHRjaGFUeXBlOiBSZUNhcHRjaGFUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHZvaWQ7XHJcbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgaXMgbG9hZGVkXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGlzTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlZmVyZW5jZSB0byBnbG9iYWwgcmVDYXB0Y2hhIEFQSVxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZUNhcHRjaGFBcGk/OiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIElkIG9mIHRoZSBET00gZWxlbWVudCB3cmFwcGluZyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGNhcHRjaGFFbGVtSWQ/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEZvcm0gQ29udHJvbCB0byBiZSBlbmFibGUgdXNhZ2UgaW4gcmVhY3RpdmUgZm9ybXNcclxuICAgICovXHJcbiAgICBwdWJsaWMgY29udHJvbD86IEZvcm1Db250cm9sO1xyXG5cclxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIHNjcmlwdFNlcnZpY2U6IFNjcmlwdFNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpLmNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBVc2VkIGZvciBjYXB0Y2hhIHNwZWNpZmljIHNldHVwXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNhcHRjaGFTcGVjaWZpY1NldHVwKCk6IHZvaWQ7XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIGNsZWFudXAgc2NyaXB0cyBpZiBsYW5ndWFnZSBjaGFuZ2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHJlbG9hZGVkXHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5obCkge1xyXG4gICAgICAgICAgICBpZiAoIWNoYW5nZXMuaGwuZmlyc3RDaGFuZ2UgJiYgKGNoYW5nZXMuaGwuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmhsLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UuY2xlYW51cCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgY2FwdGNoYSByZXNwb25zZSBhcyBwZXIgcmVDYXB0Y2hhIGRvY3NcclxuICAgICovXHJcbiAgICBnZXRSZXNwb25zZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlQ2FwdGNoYUFwaS5nZXRSZXNwb25zZSh0aGlzLmNhcHRjaGFJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgSWQgb2YgY2FwdGNoYSB3aWRnZXRcclxuICAgICovXHJcbiAgICBnZXRDYXB0Y2hhSWQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlc2V0cyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcmVzZXRDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgbGFzdCBzdWJtaXR0ZWQgY2FwdGNoYSByZXNwb25zZVxyXG4gICAgKi9cclxuICAgIGdldEN1cnJlbnRSZXNwb25zZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNwb25zZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVsb2FkIGNhcHRjaGEuIFVzZWZ1bCB3aGVuIHByb3BlcnRpZXMgKGkuZS4gdGhlbWUpIGNoYW5nZWQgYW5kIGNhcHRjaGEgbmVlZCB0byByZWZsZWN0IHRoZW1cclxuICAgICovXHJcbiAgICByZWxvYWRDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZW5zdXJlQ2FwdGNoYUVsZW0oY2FwdGNoYUVsZW1JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2FwdGNoYUVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjYXB0Y2hhRWxlbUlkKTtcclxuXHJcbiAgICAgICAgaWYgKCFjYXB0Y2hhRWxlbSkge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgQ2FwdGNoYSBlbGVtZW50IHdpdGggaWQgJyR7Y2FwdGNoYUVsZW1JZH0nIHdhcyBub3QgZm91bmRgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGFzc2lnbiBjYXB0Y2hhIGFsZW1cclxuICAgICAgICB0aGlzLmNhcHRjaGFFbGVtID0gY2FwdGNoYUVsZW07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlc3BvbnNpYmxlIGZvciBpbnN0YW50aWF0aW5nIGNhcHRjaGEgZWxlbWVudFxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZW5kZXJSZUNhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhSWQgPSB0aGlzLnJlQ2FwdGNoYUFwaS5yZW5kZXIodGhpcy5jYXB0Y2hhRWxlbUlkLCB0aGlzLmdldENhcHRjaGFQcm9wZXJ0aWVzKCkpO1xyXG4gICAgICAgIHRoaXMucmVhZHkubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBjYXB0Y2hhIHJlY2VpdmVzIHJlc3BvbnNlXHJcbiAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFja1xyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBoYW5kbGVDYWxsYmFjayhjYWxsYmFjazogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzcG9uc2UgPSBjYWxsYmFjaztcclxuICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChjYWxsYmFjayk7XHJcblxyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGNhbGxiYWNrKTtcclxuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoY2FsbGJhY2spO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yZXNldENhcHRjaGFBZnRlclN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNldENhcHRjaGEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQc2V1ZG9VbmlxdWVOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gY2FwdGNoYSBzcGVjaWZpYyBzZXR1cFxyXG4gICAgICAgIHRoaXMuY2FwdGNoYVNwZWNpZmljU2V0dXAoKTtcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIGNhcHRjaGEgd3JhcHBlclxyXG4gICAgICAgIHRoaXMuY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnJlZ2lzdGVyQ2FwdGNoYVNjcmlwdCgnZXhwbGljaXQnLCAoZ3JlY2FwdGNoYSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9ubG9hZENhbGxiYWNrKGdyZWNhcHRjaGEpO1xyXG4gICAgICAgIH0sIHRoaXMuaGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBnb29nbGUncyByZWNhcHRjaGEgc2NyaXB0IGlzIHJlYWR5XHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbmxvYWRDYWxsYmFjayhncmVjYXBjaGE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIGFzc2lnbiByZWZlcmVuY2UgdG8gcmVDYXB0Y2hhIEFwaSBvbmNlIGl0cyBsb2FkZWRcclxuICAgICAgICB0aGlzLnJlQ2FwdGNoYUFwaSA9IGdyZWNhcGNoYTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnJlQ2FwdGNoYUFwaSkge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgUmVDYXB0Y2hhIEFwaSB3YXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbG9hZGVkIGZsYWdcclxuICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gZmlyZSBsb2FkIGV2ZW50XHJcbiAgICAgICAgdGhpcy5sb2FkLm5leHQoKTtcclxuXHJcbiAgICAgICAgLy8gcmVuZGVyIGNhcHRjaGFcclxuICAgICAgICB0aGlzLnJlbmRlclJlQ2FwdGNoYSgpO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBjb21wb25lbnQgaWYgaXQgd2FzIGZsYWdnZWQgYXMgc3VjaFxyXG4gICAgICAgIGlmICh0aGlzLnNldHVwQWZ0ZXJMb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBBZnRlckxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlTmV3RWxlbUlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwdGNoYUVsZW1QcmVmaXggKyB0aGlzLmdldFBzZXVkb1VuaXF1ZU51bWJlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZ2VuZXJhdGUgbmV3IGNhcHRjaGEgaWRcclxuICAgICAgICB0aGlzLmNhcHRjaGFFbGVtSWQgPSB0aGlzLmdlbmVyYXRlTmV3RWxlbUlkKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jYXB0Y2hhRWxlbUlkKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW0gSWQgaXMgbm90IHNldGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gcmVtb3ZlIG9sZCBodG1sXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhV3JhcHBlckVsZW0ubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIG5ldyB3cmFwcGVyIGZvciBjYXB0Y2hhXHJcbiAgICAgICAgY29uc3QgbmV3RWxlbSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgbmV3RWxlbS5pZCA9IHRoaXMuY2FwdGNoYUVsZW1JZDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNhcHRjaGFXcmFwcGVyRWxlbS5uYXRpdmVFbGVtZW50LCBuZXdFbGVtKTtcclxuXHJcbiAgICAgICAgLy8gdXBkYXRlIGNhcHRjaGEgZWxlbVxyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwdGNoYUVsZW0odGhpcy5jYXB0Y2hhRWxlbUlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvIGJlIGFsaWduZWQgd2l0aCB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHdlIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgbWV0aG9kXHJcbiAgICAgKiBIb3dldmVyIGFzIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIHRoZSByZWNhcHRjaGEsIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGltcGxlbWVudGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGhlbHBzIHVzIHRpZSB0b2dldGhlciByZWNhcHRjaGEgYW5kIG91ciBmb3JtQ29udHJvbCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogQXQgc29tZSBwb2ludCB3ZSBtaWdodCBiZSBpbnRlcmVzdGVkIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRvdWNoZWQgb3VyIGNvbXBvbmVudFxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxufVxyXG5cclxuIl19

@@ -123,4 +123,4 @@ /**

this.zone.run(function () {
_this.onChange(null);
_this.onTouched(null);
_this.onChange(undefined);
_this.onTouched(undefined);
});

@@ -220,2 +220,2 @@ this.error.next();

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9yZWNhcHRjaGEtMi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztJQWMzQiwrQ0FBc0I7SUF1QzdELDZCQUNZLFFBQW1CLEVBQ25CLElBQVksRUFDWixRQUFrQixFQUNsQixhQUE0QjtRQUp4QyxZQU1FLGtCQUFNLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxTQUMvQztRQU5XLGNBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsVUFBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGNBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWEsR0FBYixhQUFhLENBQWU7Ozs7OENBdENXLDRCQUE0Qjs7OzsrQ0FLM0IsNkJBQTZCOzs7O3NCQUs5QyxPQUFPOzs7O3FCQUtKLFFBQVE7Ozs7dUJBVTNCLElBQUksWUFBWSxFQUFROzs7O3NCQUt6QixJQUFJLFlBQVksRUFBUTs4QkFFRCxhQUFhLENBQUMsVUFBVTs7S0FTaEU7Ozs7O0lBRUQseUNBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLGlCQUFNLFdBQVcsWUFBQyxPQUFPLENBQUMsQ0FBQztLQUM1Qjs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUNsRDs7OztJQUVTLGtEQUFvQjs7O0lBQTlCO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDMUI7SUFFRDs7TUFFRTs7Ozs7SUFDUSxrREFBb0I7Ozs7SUFBOUI7UUFBQSxpQkFXQztRQVZDLE1BQU0sQ0FBQztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTztZQUN2QixVQUFVLEVBQUUsVUFBQyxRQUFRLElBQUssT0FBQSxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBN0IsQ0FBNkIsQ0FBQyxFQUFsRCxDQUFrRDtZQUM1RSxrQkFBa0IsRUFBRSxjQUFNLE9BQUEsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUEzQixDQUEyQixDQUFDLEVBQWhELENBQWdEO1lBQzFFLGdCQUFnQixFQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLG1CQUFtQixFQUFFLEVBQTFCLENBQTBCLENBQUMsRUFBL0MsQ0FBK0M7WUFDdkUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUM7S0FDSDs7Ozs7SUFLTywrQ0FBaUI7Ozs7O1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzs7Ozs7SUFNN0UsaURBQW1COzs7Ozs7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDWixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7O0lBTVosa0RBQW9COzs7OztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDOztRQUduQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7OztnQkFwSHZCLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUscUNBQ3NCO29CQUNoQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsbUJBQW1CLEVBQW5CLENBQW1CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzs7O2dCQXBCQyxTQUFTO2dCQUxULE1BQU07Z0JBRk4sUUFBUTtnQkFhRCxhQUFhOzs7d0JBOEJuQixLQUFLO3VCQUtMLEtBQUs7cUJBS0wsS0FBSzt5QkFLTCxNQUFNO3dCQUtOLE1BQU07OzhCQW5FVDtFQWdDeUMsc0JBQXNCO1NBQWxELG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUmVDYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtcmVjYXB0Y2hhMicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8ZGl2ICNjYXB0Y2hhV3JhcHBlckVsZW0+PC9kaXY+YCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlQ2FwdGNoYTJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGEyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZXhwaXJlIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25FcnJvckNhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfZXJyb3JfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBlcnJvciBjYWxsYmFja1xyXG4gICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9leHBpcmVfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAgKiBUaGVtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgKiBTaXplXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAqIEV4cGlyZWQgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBleHBpcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogRXJyb3IgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGUgPSBSZUNhcHRjaGFUeXBlLlJlQ2FwdGNoYTI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjYXB0Y2hhU3BlY2lmaWNTZXR1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFja3MoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrKCkpLFxyXG4gICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuaGFuZGxlRXJyb3JDYWxsYmFjaygpKSxcclxuICAgICAgJ3RoZW1lJzogdGhpcy50aGVtZSxcclxuICAgICAgJ3R5cGUnOiB0aGlzLnR5cGUsXHJcbiAgICAgICdzaXplJzogdGhpcy5zaXplLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBjYWxsYmFja3NcclxuICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsYmFja3MoKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGVycm9yIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcml2YXRlIGhhbmRsZUVycm9yQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICAgICAgdGhpcy5vblRvdWNoZWQobnVsbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmVycm9yLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZXhwaXJlZCBjYWxsYmFja1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlRXhwaXJlQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGlyZS5uZXh0KCk7XHJcblxyXG4gICAgLy8gcmVzZXQgY2FwdGNoYSBvbiBleHBpcmUgY2FsbGJhY2tcclxuICAgIHRoaXMucmVzZXRDYXB0Y2hhKCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNhcHRjaGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9yZWNhcHRjaGEtMi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBSU4sTUFBTSxFQUNOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztJQWMzQiwrQ0FBc0I7SUF1QzdELDZCQUNZLFFBQW1CLEVBQ25CLElBQVksRUFDWixRQUFrQixFQUNsQixhQUE0QjtRQUp4QyxZQU1FLGtCQUFNLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxTQUMvQztRQU5XLGNBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsVUFBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGNBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWEsR0FBYixhQUFhLENBQWU7Ozs7OENBdENXLDRCQUE0Qjs7OzsrQ0FLM0IsNkJBQTZCOzs7O3NCQUs5QyxPQUFPOzs7O3FCQUtKLFFBQVE7Ozs7dUJBVTNCLElBQUksWUFBWSxFQUFROzs7O3NCQUt6QixJQUFJLFlBQVksRUFBUTs4QkFFRCxhQUFhLENBQUMsVUFBVTs7S0FTaEU7Ozs7O0lBRUQseUNBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLGlCQUFNLFdBQVcsWUFBQyxPQUFPLENBQUMsQ0FBQztLQUM1Qjs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUNsRDs7OztJQUVTLGtEQUFvQjs7O0lBQTlCO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDMUI7SUFFRDs7TUFFRTs7Ozs7SUFDUSxrREFBb0I7Ozs7SUFBOUI7UUFBQSxpQkFXQztRQVZDLE1BQU0sQ0FBQztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTztZQUN2QixVQUFVLEVBQUUsVUFBQyxRQUFRLElBQUssT0FBQSxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBN0IsQ0FBNkIsQ0FBQyxFQUFsRCxDQUFrRDtZQUM1RSxrQkFBa0IsRUFBRSxjQUFNLE9BQUEsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUEzQixDQUEyQixDQUFDLEVBQWhELENBQWdEO1lBQzFFLGdCQUFnQixFQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLG1CQUFtQixFQUFFLEVBQTFCLENBQTBCLENBQUMsRUFBL0MsQ0FBK0M7WUFDdkUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUM7S0FDSDs7Ozs7SUFLTywrQ0FBaUI7Ozs7O1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzs7Ozs7SUFNN0UsaURBQW1COzs7Ozs7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDWixLQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLEtBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7O0lBTVosa0RBQW9COzs7OztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDOztRQUduQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7OztnQkFwSHZCLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUscUNBQ3NCO29CQUNoQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsbUJBQW1CLEVBQW5CLENBQW1CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzs7O2dCQXBCQyxTQUFTO2dCQUxULE1BQU07Z0JBRk4sUUFBUTtnQkFhRCxhQUFhOzs7d0JBOEJuQixLQUFLO3VCQUtMLEtBQUs7cUJBS0wsS0FBSzt5QkFLTCxNQUFNO3dCQUtOLE1BQU07OzhCQW5FVDtFQWdDeUMsc0JBQXNCO1NBQWxELG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUmVDYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtcmVjYXB0Y2hhMicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8ZGl2ICNjYXB0Y2hhV3JhcHBlckVsZW0+PC9kaXY+YCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlQ2FwdGNoYTJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGEyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZXhwaXJlIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25FcnJvckNhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfZXJyb3JfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBlcnJvciBjYWxsYmFja1xyXG4gICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9leHBpcmVfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAgKiBUaGVtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgKiBTaXplXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAqIEV4cGlyZWQgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBleHBpcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogRXJyb3IgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGUgPSBSZUNhcHRjaGFUeXBlLlJlQ2FwdGNoYTI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjYXB0Y2hhU3BlY2lmaWNTZXR1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFja3MoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrKCkpLFxyXG4gICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuaGFuZGxlRXJyb3JDYWxsYmFjaygpKSxcclxuICAgICAgJ3RoZW1lJzogdGhpcy50aGVtZSxcclxuICAgICAgJ3R5cGUnOiB0aGlzLnR5cGUsXHJcbiAgICAgICdzaXplJzogdGhpcy5zaXplLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBjYWxsYmFja3NcclxuICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsYmFja3MoKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGVycm9yIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcml2YXRlIGhhbmRsZUVycm9yQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh1bmRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCh1bmRlZmluZWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5lcnJvci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGV4cGlyZWQgY2FsbGJhY2tcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUV4cGlyZUNhbGxiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBpcmUubmV4dCgpO1xyXG5cclxuICAgIC8vIHJlc2V0IGNhcHRjaGEgb24gZXhwaXJlIGNhbGxiYWNrXHJcbiAgICB0aGlzLnJlc2V0Q2FwdGNoYSgpO1xyXG4gIH1cclxufVxyXG5cclxuIl19

@@ -46,3 +46,3 @@ /**

scriptElem.innerHTML = '';
scriptElem.src = this.getCaptchaScriptUrl(language, render);
scriptElem.src = this.getCaptchaScriptUrl(render, language);
scriptElem.async = true;

@@ -95,4 +95,4 @@ scriptElem.defer = true;

* Url to google api script
* @param {?} language
* @param {?} render
* @param {?=} language
* @return {?}

@@ -102,7 +102,7 @@ */

* Url to google api script
* @param {?} language
* @param {?} render
* @param {?=} language
* @return {?}
*/
function (language, render) {
function (render, language) {
// tslint:disable-next-line:max-line-length

@@ -136,2 +136,2 @@ return "https://www.google.com/recaptcha/api.js?onload=" + this.windowOnLoadCallbackProperty + "&render=" + render + this.getLanguageParam(language);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2FwdGNoYS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0lBaUIvQyx1QkFDYyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTs7OztnQ0FSWSxZQUFZOzs7OzRDQUtBLDZCQUE2QjtLQUs5RTs7Ozs7OztJQUVELDZDQUFxQjs7Ozs7O0lBQXJCLFVBQXNCLE1BQTJCLEVBQUUsTUFBaUMsRUFBRSxRQUFpQjtRQUF2RyxpQkF5QkM7UUF4QkcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDOzs7WUFHaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2FBQ3pDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQztTQUNWOzs7UUFJRCxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFRLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUksRUFBRSxNQUFNLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FDbkQsRUFGdUQsQ0FFdkQsQ0FBQyxDQUFBLENBQUM7O1FBR0gsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUMxQixVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7O1FBR3hCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDcEU7Ozs7SUFFRCwrQkFBTzs7O0lBQVA7UUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxTQUFTLENBQUM7S0FDN0M7Ozs7O0lBS08sOENBQXNCOzs7OztRQUMxQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDOzs7Ozs7O0lBTVQsd0NBQWdCOzs7OztjQUFDLEVBQVc7UUFDaEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ04sTUFBTSxDQUFDLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxDQUFDLFNBQU8sRUFBSSxDQUFDOzs7Ozs7OztJQU1mLDJDQUFtQjs7Ozs7O2NBQUMsUUFBZ0IsRUFBRSxNQUFjOztRQUV4RCxNQUFNLENBQUMsb0RBQWtELElBQUksQ0FBQyw0QkFBNEIsZ0JBQVcsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUcsQ0FBQzs7O2dCQTVFdkosVUFBVTs7OztnQkFKVSxNQUFNOzt3QkFBM0I7O1NBS2EsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZGVjbGFyZSB2YXIgZG9jdW1lbnQ6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNjcmlwdFNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZ2xvYmFsIGdvb2dsZSByZWNhcHRjaGEgc2NyaXB0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB3aW5kb3dHcmVjYXB0Y2hhID0gJ2dyZWNhcHRjaGEnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgY2FsbGJhY2tcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9vbmxvYWRfY2FsbGJhY2snO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlckNhcHRjaGFTY3JpcHQocmVuZGVyOiBzdHJpbmcgfCAnZXhwbGljaXQnLCBvbkxvYWQ6IChncmVjYXB0Y2hhOiBhbnkpID0+IHZvaWQsIGxhbmd1YWdlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JlY2FwdGNoYVNjcmlwdExvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgIC8vIHJlY2FwdGNoYSBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWRcclxuICAgICAgICAgICAgLy8ganVzdCBjYWxsIHRoZSBjYWxsYmFja1xyXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uTG9hZCh3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3ZSBuZWVkIHRvIHBhdGNoIHRoZSBjYWxsYmFjayB0aHJvdWdoIGdsb2JhbCB2YXJpYWJsZSwgb3RoZXJ3aXNlIGNhbGxiYWNrIGlzIG5vdCBhY2Nlc3NpYmxlXHJcbiAgICAgICAgLy8gbm90ZTogaHR0cHM6Ly9naXRodWIuY29tL0VubmdhZ2Uvbmd4LWNhcHRjaGEvaXNzdWVzLzJcclxuICAgICAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5XSA9IDxhbnk+KCgpID0+IHRoaXMuem9uZS5ydW4oXHJcbiAgICAgICAgICAgIG9uTG9hZC5iaW5kKHRoaXMsIHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdKVxyXG4gICAgICAgICkpO1xyXG5cclxuICAgICAgICAvLyBwcmVwYXJlIHNjcmlwdCBlbGVtXHJcbiAgICAgICAgY29uc3Qgc2NyaXB0RWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5zcmMgPSB0aGlzLmdldENhcHRjaGFTY3JpcHRVcmwobGFuZ3VhZ2UsIHJlbmRlcik7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5hc3luYyA9IHRydWU7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5kZWZlciA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIGFkZCBzY3JpcHQgdG8gaGVhZGVyXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzY3JpcHRFbGVtKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhbnVwKCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvd1t0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHldID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIGdvb2dsZSByZWNhcHRjaGEgc2NyaXB0IGlzIGF2YWlsYWJsZSBhbmQgcmVhZHkgdG8gYmUgdXNlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdyZWNhcHRjaGFTY3JpcHRMb2FkZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1t0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHldICYmIHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGxhbmd1YWdlIHBhcmFtIHVzZWQgaW4gc2NyaXB0IHVybFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldExhbmd1YWdlUGFyYW0oaGw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghaGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGAmaGw9JHtobH1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBVcmwgdG8gZ29vZ2xlIGFwaSBzY3JpcHRcclxuICAgICovXHJcbiAgICBwcml2YXRlIGdldENhcHRjaGFTY3JpcHRVcmwobGFuZ3VhZ2U6IHN0cmluZywgcmVuZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9vbmxvYWQ9JHt0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHl9JnJlbmRlcj0ke3JlbmRlcn0ke3RoaXMuZ2V0TGFuZ3VhZ2VQYXJhbShsYW5ndWFnZSl9YDtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2FwdGNoYS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0lBaUIvQyx1QkFDYyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTs7OztnQ0FSWSxZQUFZOzs7OzRDQUtBLDZCQUE2QjtLQUs5RTs7Ozs7OztJQUVELDZDQUFxQjs7Ozs7O0lBQXJCLFVBQXNCLE1BQWMsRUFBRSxNQUFpQyxFQUFFLFFBQWlCO1FBQTFGLGlCQXlCQztRQXhCRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUM7OztZQUdoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDVixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7YUFDekMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDO1NBQ1Y7OztRQUlELE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMscUJBQVEsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2pFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSSxFQUFFLE1BQU0sQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUNuRCxFQUZ1RCxDQUV2RCxDQUFDLENBQUEsQ0FBQzs7UUFHSCxJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN4QixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7UUFHeEIsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNwRTs7OztJQUVELCtCQUFPOzs7SUFBUDtRQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQztLQUM3Qzs7Ozs7SUFLTyw4Q0FBc0I7Ozs7O1FBQzFCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDZjtRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7SUFNVCx3Q0FBZ0I7Ozs7O2NBQUMsRUFBVztRQUNoQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ2I7UUFFRCxNQUFNLENBQUMsU0FBTyxFQUFJLENBQUM7Ozs7Ozs7O0lBTWYsMkNBQW1COzs7Ozs7Y0FBQyxNQUFjLEVBQUUsUUFBaUI7O1FBRXpELE1BQU0sQ0FBQyxvREFBa0QsSUFBSSxDQUFDLDRCQUE0QixnQkFBVyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBRyxDQUFDOzs7Z0JBNUV2SixVQUFVOzs7O2dCQUpVLE1BQU07O3dCQUEzQjs7U0FLYSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5kZWNsYXJlIHZhciBkb2N1bWVudDogYW55O1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2NyaXB0U2VydmljZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZ29vZ2xlIHJlY2FwdGNoYSBzY3JpcHRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd0dyZWNhcHRjaGEgPSAnZ3JlY2FwdGNoYSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBjYWxsYmFja1xyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB3aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5ID0gJ25neF9jYXB0Y2hhX29ubG9hZF9jYWxsYmFjayc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSxcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyQ2FwdGNoYVNjcmlwdChyZW5kZXI6IHN0cmluZywgb25Mb2FkOiAoZ3JlY2FwdGNoYTogYW55KSA9PiB2b2lkLCBsYW5ndWFnZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmdyZWNhcHRjaGFTY3JpcHRMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAvLyByZWNhcHRjaGEgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgICAgICAgIC8vIGp1c3QgY2FsbCB0aGUgY2FsbGJhY2tcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkxvYWQod2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gd2UgbmVlZCB0byBwYXRjaCB0aGUgY2FsbGJhY2sgdGhyb3VnaCBnbG9iYWwgdmFyaWFibGUsIG90aGVyd2lzZSBjYWxsYmFjayBpcyBub3QgYWNjZXNzaWJsZVxyXG4gICAgICAgIC8vIG5vdGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9Fbm5nYWdlL25neC1jYXB0Y2hhL2lzc3Vlcy8yXHJcbiAgICAgICAgd2luZG93W3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eV0gPSA8YW55PigoKSA9PiB0aGlzLnpvbmUucnVuKFxyXG4gICAgICAgICAgICBvbkxvYWQuYmluZCh0aGlzLCB3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSlcclxuICAgICAgICApKTtcclxuXHJcbiAgICAgICAgLy8gcHJlcGFyZSBzY3JpcHQgZWxlbVxyXG4gICAgICAgIGNvbnN0IHNjcmlwdEVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgICBzY3JpcHRFbGVtLmlubmVySFRNTCA9ICcnO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uc3JjID0gdGhpcy5nZXRDYXB0Y2hhU2NyaXB0VXJsKHJlbmRlciwgbGFuZ3VhZ2UpO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uYXN5bmMgPSB0cnVlO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uZGVmZXIgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBhZGQgc2NyaXB0IHRvIGhlYWRlclxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYW51cCgpOiB2b2lkIHtcclxuICAgICAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5XSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyBpZiBnb29nbGUgcmVjYXB0Y2hhIHNjcmlwdCBpcyBhdmFpbGFibGUgYW5kIHJlYWR5IHRvIGJlIHVzZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBncmVjYXB0Y2hhU2NyaXB0TG9hZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh3aW5kb3dbdGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5XSAmJiB3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBsYW5ndWFnZSBwYXJhbSB1c2VkIGluIHNjcmlwdCB1cmxcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRMYW5ndWFnZVBhcmFtKGhsPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWhsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgJmhsPSR7aGx9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogVXJsIHRvIGdvb2dsZSBhcGkgc2NyaXB0XHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRDYXB0Y2hhU2NyaXB0VXJsKHJlbmRlcjogc3RyaW5nLCBsYW5ndWFnZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzP29ubG9hZD0ke3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eX0mcmVuZGVyPSR7cmVuZGVyfSR7dGhpcy5nZXRMYW5ndWFnZVBhcmFtKGxhbmd1YWdlKX1gO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=

@@ -102,4 +102,4 @@ import { EventEmitter, Input, Output, ViewChild, Injectable, NgZone, Component, forwardRef, Injector, Renderer2, NgModule } from '@angular/core';

this.zone.run(() => {
this.onChange(null);
this.onTouched(null);
this.onChange(undefined);
this.onTouched(undefined);
});

@@ -311,3 +311,3 @@ }

scriptElem.innerHTML = '';
scriptElem.src = this.getCaptchaScriptUrl(language, render);
scriptElem.src = this.getCaptchaScriptUrl(render, language);
scriptElem.async = true;

@@ -348,7 +348,7 @@ scriptElem.defer = true;

* Url to google api script
* @param {?} language
* @param {?} render
* @param {?=} language
* @return {?}
*/
getCaptchaScriptUrl(language, render) {
getCaptchaScriptUrl(render, language) {
// tslint:disable-next-line:max-line-length

@@ -547,4 +547,4 @@ return `https://www.google.com/recaptcha/api.js?onload=${this.windowOnLoadCallbackProperty}&render=${render}${this.getLanguageParam(language)}`;

this.zone.run(() => {
this.onChange(null);
this.onTouched(null);
this.onChange(undefined);
this.onTouched(undefined);
});

@@ -690,2 +690,2 @@ this.error.next();

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNhcHRjaGEuanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1jYXB0Y2hhL2xpYi9jb21wb25lbnRzL2Jhc2UtcmVjYXB0Y2hhLmNvbXBvbmVudC50cyIsIm5nOi8vbmd4LWNhcHRjaGEvbGliL21vZGVscy9yZWNhcHRjaGEtdHlwZS5lbnVtLnRzIiwibmc6Ly9uZ3gtY2FwdGNoYS9saWIvc2VydmljZXMvc2NyaXB0LnNlcnZpY2UudHMiLCJuZzovL25neC1jYXB0Y2hhL2xpYi9jb21wb25lbnRzL2ludmlzaWJsZS1yZWNhcHRjaGEuY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtY2FwdGNoYS9saWIvY29tcG9uZW50cy9yZWNhcHRjaGEtMi5jb21wb25lbnQudHMiLCJuZzovL25neC1jYXB0Y2hhL2xpYi9zZXJ2aWNlcy9yZWNhcHRjaGFfdjMuc2VydmljZS50cyIsIm5nOi8vbmd4LWNhcHRjaGEvbGliL25neC1jYXB0Y2hhLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZUNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICogUHJlZml4IG9mIHRoZSBjYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FwdGNoYUVsZW1QcmVmaXggPSAnbmd4X2NhcHRjaGFfaWRfJztcclxuXHJcbiAgICAvKipcclxuICAgICogR29vZ2xlJ3Mgc2l0ZSBrZXkuXHJcbiAgICAqIFlvdSBjYW4gZmluZCB0aGlzIHVuZGVyIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgc2l0ZUtleTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUeXBlXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgdHlwZTogJ2F1ZGlvJyB8ICdpbWFnZScgPSAnaW1hZ2UnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgICovXHJcbiAgICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUYWIgaW5kZXhcclxuICAgICovXHJcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgc3VjY2Vzc2Z1bCByZXNwb25zZS5cclxuICAgICogQ2FwdGNoYSByZXNwb25zZSB0b2tlbiBpcyBwYXNzZWQgdG8gZXZlbnQuXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQuIEV2ZW50IHJlY2VpdmVzIGlkIG9mIHRoZSBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQgJiByZWFkeS4gSS5lLiB3aGVuIHlvdSBuZWVkIHRvIGV4ZWN1dGUgY2FwdGNoYSBvbiBjb21wb25lbnQgbG9hZC5cclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVdyYXBwZXJFbGVtJykgY2FwdGNoYVdyYXBwZXJFbGVtOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVNjcmlwdEVsZW0nKSBjYXB0Y2hhU2NyaXB0RWxlbTogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgc2hvdWxkIGJlIHNldCBvbiBsb2FkXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXR1cEFmdGVyTG9hZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY2FwdGNoYUVsZW0/OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICogSWQgb2YgdGhlIGNhcHRjaGEgZWxlbVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjYXB0Y2hhSWQ/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEhvbGRzIGxhc3QgcmVzcG9uc2UgdmFsdWVcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3VycmVudFJlc3BvbnNlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJZiBlbmFibGVkLCBjYXB0Y2hhIHdpbGwgcmVzZXQgYWZ0ZXIgcmVjZWl2aW5nIHN1Y2Nlc3MgcmVzcG9uc2UuIFRoaXMgaXMgdXNlZnVsXHJcbiAgICAqIHdoZW4gaW52aXNpYmxlIGNhcHRjaGEgbmVlZCB0byBiZSByZXNvbHZlZCBtdWx0aXBsZSB0aW1lcyBvbiBzYW1lIHBhZ2VcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVzZXRDYXB0Y2hhQWZ0ZXJTdWNjZXNzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhcHRjaGEgdHlwZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWNhcHRjaGFUeXBlOiBSZUNhcHRjaGFUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgaXMgbG9hZGVkXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGlzTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlZmVyZW5jZSB0byBnbG9iYWwgcmVDYXB0Y2hhIEFQSVxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZUNhcHRjaGFBcGk/OiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIElkIG9mIHRoZSBET00gZWxlbWVudCB3cmFwcGluZyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGNhcHRjaGFFbGVtSWQ/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEZvcm0gQ29udHJvbCB0byBiZSBlbmFibGUgdXNhZ2UgaW4gcmVhY3RpdmUgZm9ybXNcclxuICAgICovXHJcbiAgICBwdWJsaWMgY29udHJvbD86IEZvcm1Db250cm9sO1xyXG5cclxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIHNjcmlwdFNlcnZpY2U6IFNjcmlwdFNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpLmNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBVc2VkIGZvciBjYXB0Y2hhIHNwZWNpZmljIHNldHVwXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNhcHRjaGFTcGVjaWZpY1NldHVwKCk6IHZvaWQ7XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIGNsZWFudXAgc2NyaXB0cyBpZiBsYW5ndWFnZSBjaGFuZ2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHJlbG9hZGVkXHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5obCkge1xyXG4gICAgICAgICAgICBpZiAoIWNoYW5nZXMuaGwuZmlyc3RDaGFuZ2UgJiYgKGNoYW5nZXMuaGwuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmhsLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UuY2xlYW51cCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgY2FwdGNoYSByZXNwb25zZSBhcyBwZXIgcmVDYXB0Y2hhIGRvY3NcclxuICAgICovXHJcbiAgICBnZXRSZXNwb25zZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlQ2FwdGNoYUFwaS5nZXRSZXNwb25zZSh0aGlzLmNhcHRjaGFJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgSWQgb2YgY2FwdGNoYSB3aWRnZXRcclxuICAgICovXHJcbiAgICBnZXRDYXB0Y2hhSWQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlc2V0cyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcmVzZXRDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZChudWxsKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogR2V0cyBsYXN0IHN1Ym1pdHRlZCBjYXB0Y2hhIHJlc3BvbnNlXHJcbiAgICAqL1xyXG4gICAgZ2V0Q3VycmVudFJlc3BvbnNlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFJlc3BvbnNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZWxvYWQgY2FwdGNoYS4gVXNlZnVsIHdoZW4gcHJvcGVydGllcyAoaS5lLiB0aGVtZSkgY2hhbmdlZCBhbmQgY2FwdGNoYSBuZWVkIHRvIHJlZmxlY3QgdGhlbVxyXG4gICAgKi9cclxuICAgIHJlbG9hZENhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBlbnN1cmVDYXB0Y2hhRWxlbShjYXB0Y2hhRWxlbUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjYXB0Y2hhRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhcHRjaGFFbGVtSWQpO1xyXG5cclxuICAgICAgICBpZiAoIWNhcHRjaGFFbGVtKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW1lbnQgd2l0aCBpZCAnJHtjYXB0Y2hhRWxlbUlkfScgd2FzIG5vdCBmb3VuZGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gYXNzaWduIGNhcHRjaGEgYWxlbVxyXG4gICAgICAgIHRoaXMuY2FwdGNoYUVsZW0gPSBjYXB0Y2hhRWxlbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVzcG9uc2libGUgZm9yIGluc3RhbnRpYXRpbmcgY2FwdGNoYSBlbGVtZW50XHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlbmRlclJlQ2FwdGNoYSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNhcHRjaGFJZCA9IHRoaXMucmVDYXB0Y2hhQXBpLnJlbmRlcih0aGlzLmNhcHRjaGFFbGVtSWQsIHRoaXMuZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKSk7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgcmVzcG9uc2VcclxuICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNhbGxiYWNrKGNhbGxiYWNrOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNwb25zZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc3VjY2Vzcy5uZXh0KGNhbGxiYWNrKTtcclxuXHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoY2FsbGJhY2spO1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZChjYWxsYmFjayk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnJlc2V0Q2FwdGNoYUFmdGVyU3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQc2V1ZG9VbmlxdWVOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gY2FwdGNoYSBzcGVjaWZpYyBzZXR1cFxyXG4gICAgICAgIHRoaXMuY2FwdGNoYVNwZWNpZmljU2V0dXAoKTtcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIGNhcHRjaGEgd3JhcHBlclxyXG4gICAgICAgIHRoaXMuY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnJlZ2lzdGVyQ2FwdGNoYVNjcmlwdCgnZXhwbGljaXQnLCAoZ3JlY2FwdGNoYSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9ubG9hZENhbGxiYWNrKGdyZWNhcHRjaGEpO1xyXG4gICAgICAgIH0sIHRoaXMuaGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBnb29nbGUncyByZWNhcHRjaGEgc2NyaXB0IGlzIHJlYWR5XHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbmxvYWRDYWxsYmFjayhncmVjYXBjaGE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIGFzc2lnbiByZWZlcmVuY2UgdG8gcmVDYXB0Y2hhIEFwaSBvbmNlIGl0cyBsb2FkZWRcclxuICAgICAgICB0aGlzLnJlQ2FwdGNoYUFwaSA9IGdyZWNhcGNoYTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnJlQ2FwdGNoYUFwaSkge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgUmVDYXB0Y2hhIEFwaSB3YXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbG9hZGVkIGZsYWdcclxuICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gZmlyZSBsb2FkIGV2ZW50XHJcbiAgICAgICAgdGhpcy5sb2FkLm5leHQoKTtcclxuXHJcbiAgICAgICAgLy8gcmVuZGVyIGNhcHRjaGFcclxuICAgICAgICB0aGlzLnJlbmRlclJlQ2FwdGNoYSgpO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBjb21wb25lbnQgaWYgaXQgd2FzIGZsYWdnZWQgYXMgc3VjaFxyXG4gICAgICAgIGlmICh0aGlzLnNldHVwQWZ0ZXJMb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBBZnRlckxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlTmV3RWxlbUlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwdGNoYUVsZW1QcmVmaXggKyB0aGlzLmdldFBzZXVkb1VuaXF1ZU51bWJlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZ2VuZXJhdGUgbmV3IGNhcHRjaGEgaWRcclxuICAgICAgICB0aGlzLmNhcHRjaGFFbGVtSWQgPSB0aGlzLmdlbmVyYXRlTmV3RWxlbUlkKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jYXB0Y2hhRWxlbUlkKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW0gSWQgaXMgbm90IHNldGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gcmVtb3ZlIG9sZCBodG1sXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhV3JhcHBlckVsZW0ubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIG5ldyB3cmFwcGVyIGZvciBjYXB0Y2hhXHJcbiAgICAgICAgY29uc3QgbmV3RWxlbSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgbmV3RWxlbS5pZCA9IHRoaXMuY2FwdGNoYUVsZW1JZDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNhcHRjaGFXcmFwcGVyRWxlbS5uYXRpdmVFbGVtZW50LCBuZXdFbGVtKTtcclxuXHJcbiAgICAgICAgLy8gdXBkYXRlIGNhcHRjaGEgZWxlbVxyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwdGNoYUVsZW0odGhpcy5jYXB0Y2hhRWxlbUlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvIGJlIGFsaWduZWQgd2l0aCB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHdlIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgbWV0aG9kXHJcbiAgICAgKiBIb3dldmVyIGFzIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIHRoZSByZWNhcHRjaGEsIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGltcGxlbWVudGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGhlbHBzIHVzIHRpZSB0b2dldGhlciByZWNhcHRjaGEgYW5kIG91ciBmb3JtQ29udHJvbCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogQXQgc29tZSBwb2ludCB3ZSBtaWdodCBiZSBpbnRlcmVzdGVkIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRvdWNoZWQgb3VyIGNvbXBvbmVudFxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxufVxyXG5cclxuIiwiZXhwb3J0IGVudW0gUmVDYXB0Y2hhVHlwZSB7XHJcblxyXG4gICAgSW52aXNpYmxlUmVDYXB0Y2hhLFxyXG4gICAgUmVDYXB0Y2hhMlxyXG59XHJcbiIsImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZGVjbGFyZSB2YXIgZG9jdW1lbnQ6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNjcmlwdFNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZ2xvYmFsIGdvb2dsZSByZWNhcHRjaGEgc2NyaXB0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB3aW5kb3dHcmVjYXB0Y2hhID0gJ2dyZWNhcHRjaGEnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgY2FsbGJhY2tcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9vbmxvYWRfY2FsbGJhY2snO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlckNhcHRjaGFTY3JpcHQocmVuZGVyOiBzdHJpbmcgfCAnZXhwbGljaXQnLCBvbkxvYWQ6IChncmVjYXB0Y2hhOiBhbnkpID0+IHZvaWQsIGxhbmd1YWdlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JlY2FwdGNoYVNjcmlwdExvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgIC8vIHJlY2FwdGNoYSBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWRcclxuICAgICAgICAgICAgLy8ganVzdCBjYWxsIHRoZSBjYWxsYmFja1xyXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uTG9hZCh3aW5kb3dbdGhpcy53aW5kb3dHcmVjYXB0Y2hhXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3ZSBuZWVkIHRvIHBhdGNoIHRoZSBjYWxsYmFjayB0aHJvdWdoIGdsb2JhbCB2YXJpYWJsZSwgb3RoZXJ3aXNlIGNhbGxiYWNrIGlzIG5vdCBhY2Nlc3NpYmxlXHJcbiAgICAgICAgLy8gbm90ZTogaHR0cHM6Ly9naXRodWIuY29tL0VubmdhZ2Uvbmd4LWNhcHRjaGEvaXNzdWVzLzJcclxuICAgICAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkxvYWRDYWxsYmFja1Byb3BlcnR5XSA9IDxhbnk+KCgpID0+IHRoaXMuem9uZS5ydW4oXHJcbiAgICAgICAgICAgIG9uTG9hZC5iaW5kKHRoaXMsIHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdKVxyXG4gICAgICAgICkpO1xyXG5cclxuICAgICAgICAvLyBwcmVwYXJlIHNjcmlwdCBlbGVtXHJcbiAgICAgICAgY29uc3Qgc2NyaXB0RWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgICAgIHNjcmlwdEVsZW0uaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5zcmMgPSB0aGlzLmdldENhcHRjaGFTY3JpcHRVcmwobGFuZ3VhZ2UsIHJlbmRlcik7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5hc3luYyA9IHRydWU7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5kZWZlciA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIGFkZCBzY3JpcHQgdG8gaGVhZGVyXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzY3JpcHRFbGVtKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhbnVwKCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvd1t0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHldID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIGdvb2dsZSByZWNhcHRjaGEgc2NyaXB0IGlzIGF2YWlsYWJsZSBhbmQgcmVhZHkgdG8gYmUgdXNlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdyZWNhcHRjaGFTY3JpcHRMb2FkZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1t0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHldICYmIHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGxhbmd1YWdlIHBhcmFtIHVzZWQgaW4gc2NyaXB0IHVybFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldExhbmd1YWdlUGFyYW0oaGw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghaGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGAmaGw9JHtobH1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBVcmwgdG8gZ29vZ2xlIGFwaSBzY3JpcHRcclxuICAgICovXHJcbiAgICBwcml2YXRlIGdldENhcHRjaGFTY3JpcHRVcmwobGFuZ3VhZ2U6IHN0cmluZywgcmVuZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9vbmxvYWQ9JHt0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHl9JnJlbmRlcj0ke3JlbmRlcn0ke3RoaXMuZ2V0TGFuZ3VhZ2VQYXJhbShsYW5ndWFnZSl9YDtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJlQ2FwdGNoYVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcmVjYXB0Y2hhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VSZUNhcHRjaGFDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtcmVjYXB0Y2hhLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25neC1pbnZpc2libGUtcmVjYXB0Y2hhJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxkaXYgI2NhcHRjaGFXcmFwcGVyRWxlbT48L2Rpdj5gLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW52aXNpYmxlUmVDYXB0Y2hhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW52aXNpYmxlUmVDYXB0Y2hhQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgc2l6ZSByZXByZXNlbnRpbmcgaW52aXNpYmxlIGNhcHRjaGFcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2l6ZSA9ICdpbnZpc2libGUnO1xyXG5cclxuICAvKipcclxuICAgKiBCYWRnZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGJhZGdlOiAnYm90dG9tcmlnaHQnIHwgJ2JvdHRvbWxlZnQnIHwgJ2lubGluZScgPSAnYm90dG9tcmlnaHQnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVjYXB0Y2hhVHlwZTogUmVDYXB0Y2hhVHlwZSA9IFJlQ2FwdGNoYVR5cGUuSW52aXNpYmxlUmVDYXB0Y2hhO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSxcclxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvZ3JhbWF0aWNhbGx5IGludm9rZSB0aGUgcmVDQVBUQ0hBIGNoZWNrLiBVc2VkIGlmIHRoZSBpbnZpc2libGUgcmVDQVBUQ0hBIGlzIG9uIGEgZGl2IGluc3RlYWQgb2YgYSBidXR0b24uXHJcbiAgICovXHJcbiAgZXhlY3V0ZSgpOiB2b2lkIHtcclxuICAgIC8vIGV4ZWN1dGUgY2FwdGNoYVxyXG4gICAgdGhpcy5yZUNhcHRjaGFBcGkuZXhlY3V0ZSh0aGlzLmNhcHRjaGFJZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2FwdGNoYVNwZWNpZmljU2V0dXAoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdiYWRnZSc6IHRoaXMuYmFkZ2UsXHJcbiAgICAgICd0eXBlJzogdGhpcy50eXBlLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4LFxyXG4gICAgICAnc2l6ZSc6IHRoaXMuc2l6ZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbiIsImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUmVDYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtcmVjYXB0Y2hhMicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8ZGl2ICNjYXB0Y2hhV3JhcHBlckVsZW0+PC9kaXY+YCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlQ2FwdGNoYTJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGEyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZXhwaXJlIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25FcnJvckNhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfZXJyb3JfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBlcnJvciBjYWxsYmFja1xyXG4gICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9leHBpcmVfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAgKiBUaGVtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgKiBTaXplXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAqIEV4cGlyZWQgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBleHBpcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogRXJyb3IgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGUgPSBSZUNhcHRjaGFUeXBlLlJlQ2FwdGNoYTI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjYXB0Y2hhU3BlY2lmaWNTZXR1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFja3MoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrKCkpLFxyXG4gICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuaGFuZGxlRXJyb3JDYWxsYmFjaygpKSxcclxuICAgICAgJ3RoZW1lJzogdGhpcy50aGVtZSxcclxuICAgICAgJ3R5cGUnOiB0aGlzLnR5cGUsXHJcbiAgICAgICdzaXplJzogdGhpcy5zaXplLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBjYWxsYmFja3NcclxuICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsYmFja3MoKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGVycm9yIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcml2YXRlIGhhbmRsZUVycm9yQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICAgICAgdGhpcy5vblRvdWNoZWQobnVsbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmVycm9yLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZXhwaXJlZCBjYWxsYmFja1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlRXhwaXJlQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGlyZS5uZXh0KCk7XHJcblxyXG4gICAgLy8gcmVzZXQgY2FwdGNoYSBvbiBleHBpcmUgY2FsbGJhY2tcclxuICAgIHRoaXMucmVzZXRDYXB0Y2hhKCk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi9zY3JpcHQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGFWM1NlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4ZWN1dGVzIHJlQ2FwdGNoYSB2MyB3aXRoIGdpdmVuIGFjdGlvbiBhbmQgcGFzc2VzIHRva2VuIHZpYSBjYWxsYmFjay4gWW91IG5lZWQgdG8gdmVyaWZ5XHJcbiAgICAgKiB0aGlzIGNhbGxiYWNrIGluIHlvdXIgYmFja2VuZCB0byBnZXQgbWVhbmluZ2Z1bCByZXN1bHRzLlxyXG4gICAgICpcclxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvZG9jcy92M1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzaXRlS2V5IFNpdGUga2V5IGZvdW5kIGluIHlvdXIgZ29vZ2xlIGFkbWluIHBhbmVsXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiB0byBsb2dcclxuICAgICAqL1xyXG4gICAgZXhlY3V0ZShzaXRlS2V5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBjYWxsYmFjazogKHRva2VuOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UucmVnaXN0ZXJDYXB0Y2hhU2NyaXB0KHNpdGVLZXksIChncmVjYXB0Y2hhKSA9PiB7XHJcbiAgICAgICAgICAgIGdyZWNhcHRjaGEuZXhlY3V0ZShzaXRlS2V5LCB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvblxyXG4gICAgICAgICAgICB9KS50aGVuKCh0b2tlbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sodG9rZW4pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSW52aXNpYmxlUmVDYXB0Y2hhQ29tcG9uZW50LCBSZUNhcHRjaGEyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFJlQ2FwdGNoYVYzU2VydmljZSwgU2NyaXB0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlQ2FwdGNoYTJDb21wb25lbnQsXG4gICAgSW52aXNpYmxlUmVDYXB0Y2hhQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNjcmlwdFNlcnZpY2UsXG4gICAgUmVDYXB0Y2hhVjNTZXJ2aWNlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZUNhcHRjaGEyQ29tcG9uZW50LFxuICAgIEludmlzaWJsZVJlQ2FwdGNoYUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neENhcHRjaGFNb2R1bGUge1xufVxuXG5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7QUFrQkE7Ozs7Ozs7SUF3R0ksWUFDYyxRQUFt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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNhcHRjaGEuanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1jYXB0Y2hhL2xpYi9jb21wb25lbnRzL2Jhc2UtcmVjYXB0Y2hhLmNvbXBvbmVudC50cyIsIm5nOi8vbmd4LWNhcHRjaGEvbGliL21vZGVscy9yZWNhcHRjaGEtdHlwZS5lbnVtLnRzIiwibmc6Ly9uZ3gtY2FwdGNoYS9saWIvc2VydmljZXMvc2NyaXB0LnNlcnZpY2UudHMiLCJuZzovL25neC1jYXB0Y2hhL2xpYi9jb21wb25lbnRzL2ludmlzaWJsZS1yZWNhcHRjaGEuY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtY2FwdGNoYS9saWIvY29tcG9uZW50cy9yZWNhcHRjaGEtMi5jb21wb25lbnQudHMiLCJuZzovL25neC1jYXB0Y2hhL2xpYi9zZXJ2aWNlcy9yZWNhcHRjaGFfdjMuc2VydmljZS50cyIsIm5nOi8vbmd4LWNhcHRjaGEvbGliL25neC1jYXB0Y2hhLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZUNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICogUHJlZml4IG9mIHRoZSBjYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FwdGNoYUVsZW1QcmVmaXggPSAnbmd4X2NhcHRjaGFfaWRfJztcclxuXHJcbiAgICAvKipcclxuICAgICogR29vZ2xlJ3Mgc2l0ZSBrZXkuXHJcbiAgICAqIFlvdSBjYW4gZmluZCB0aGlzIHVuZGVyIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgc2l0ZUtleTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUeXBlXHJcbiAgICAqL1xyXG4gICAgQElucHV0KCkgdHlwZTogJ2F1ZGlvJyB8ICdpbWFnZScgPSAnaW1hZ2UnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgICovXHJcbiAgICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBUYWIgaW5kZXhcclxuICAgICovXHJcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhbGxlZCB3aGVuIGNhcHRjaGEgcmVjZWl2ZXMgc3VjY2Vzc2Z1bCByZXNwb25zZS5cclxuICAgICogQ2FwdGNoYSByZXNwb25zZSB0b2tlbiBpcyBwYXNzZWQgdG8gZXZlbnQuXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQuIEV2ZW50IHJlY2VpdmVzIGlkIG9mIHRoZSBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgQE91dHB1dCgpIGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQ2FsbGVkIHdoZW4gY2FwdGNoYSBpcyBsb2FkZWQgJiByZWFkeS4gSS5lLiB3aGVuIHlvdSBuZWVkIHRvIGV4ZWN1dGUgY2FwdGNoYSBvbiBjb21wb25lbnQgbG9hZC5cclxuICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVdyYXBwZXJFbGVtJykgY2FwdGNoYVdyYXBwZXJFbGVtOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnY2FwdGNoYVNjcmlwdEVsZW0nKSBjYXB0Y2hhU2NyaXB0RWxlbTogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgc2hvdWxkIGJlIHNldCBvbiBsb2FkXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXR1cEFmdGVyTG9hZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYXB0Y2hhIGVsZW1lbnRcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY2FwdGNoYUVsZW0/OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICogSWQgb2YgdGhlIGNhcHRjaGEgZWxlbVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBjYXB0Y2hhSWQ/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEhvbGRzIGxhc3QgcmVzcG9uc2UgdmFsdWVcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3VycmVudFJlc3BvbnNlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBJZiBlbmFibGVkLCBjYXB0Y2hhIHdpbGwgcmVzZXQgYWZ0ZXIgcmVjZWl2aW5nIHN1Y2Nlc3MgcmVzcG9uc2UuIFRoaXMgaXMgdXNlZnVsXHJcbiAgICAqIHdoZW4gaW52aXNpYmxlIGNhcHRjaGEgbmVlZCB0byBiZSByZXNvbHZlZCBtdWx0aXBsZSB0aW1lcyBvbiBzYW1lIHBhZ2VcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVzZXRDYXB0Y2hhQWZ0ZXJTdWNjZXNzID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIENhcHRjaGEgdHlwZVxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWNhcHRjaGFUeXBlOiBSZUNhcHRjaGFUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBSZXF1aXJlZCBieSBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHZvaWQ7XHJcbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICogSW5kaWNhdGVzIGlmIGNhcHRjaGEgaXMgbG9hZGVkXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGlzTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlZmVyZW5jZSB0byBnbG9iYWwgcmVDYXB0Y2hhIEFQSVxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZUNhcHRjaGFBcGk/OiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIElkIG9mIHRoZSBET00gZWxlbWVudCB3cmFwcGluZyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGNhcHRjaGFFbGVtSWQ/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEZvcm0gQ29udHJvbCB0byBiZSBlbmFibGUgdXNhZ2UgaW4gcmVhY3RpdmUgZm9ybXNcclxuICAgICovXHJcbiAgICBwdWJsaWMgY29udHJvbD86IEZvcm1Db250cm9sO1xyXG5cclxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIHNjcmlwdFNlcnZpY2U6IFNjcmlwdFNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpLmNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0Q2FwdGNoYVByb3BlcnRpZXMoKTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBVc2VkIGZvciBjYXB0Y2hhIHNwZWNpZmljIHNldHVwXHJcbiAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNhcHRjaGFTcGVjaWZpY1NldHVwKCk6IHZvaWQ7XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIGNsZWFudXAgc2NyaXB0cyBpZiBsYW5ndWFnZSBjaGFuZ2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHJlbG9hZGVkXHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5obCkge1xyXG4gICAgICAgICAgICBpZiAoIWNoYW5nZXMuaGwuZmlyc3RDaGFuZ2UgJiYgKGNoYW5nZXMuaGwuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmhsLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmlwdFNlcnZpY2UuY2xlYW51cCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgY2FwdGNoYSByZXNwb25zZSBhcyBwZXIgcmVDYXB0Y2hhIGRvY3NcclxuICAgICovXHJcbiAgICBnZXRSZXNwb25zZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlQ2FwdGNoYUFwaS5nZXRSZXNwb25zZSh0aGlzLmNhcHRjaGFJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgSWQgb2YgY2FwdGNoYSB3aWRnZXRcclxuICAgICovXHJcbiAgICBnZXRDYXB0Y2hhSWQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlc2V0cyBjYXB0Y2hhXHJcbiAgICAqL1xyXG4gICAgcmVzZXRDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEdldHMgbGFzdCBzdWJtaXR0ZWQgY2FwdGNoYSByZXNwb25zZVxyXG4gICAgKi9cclxuICAgIGdldEN1cnJlbnRSZXNwb25zZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNwb25zZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogUmVsb2FkIGNhcHRjaGEuIFVzZWZ1bCB3aGVuIHByb3BlcnRpZXMgKGkuZS4gdGhlbWUpIGNoYW5nZWQgYW5kIGNhcHRjaGEgbmVlZCB0byByZWZsZWN0IHRoZW1cclxuICAgICovXHJcbiAgICByZWxvYWRDYXB0Y2hhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZW5zdXJlQ2FwdGNoYUVsZW0oY2FwdGNoYUVsZW1JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2FwdGNoYUVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjYXB0Y2hhRWxlbUlkKTtcclxuXHJcbiAgICAgICAgaWYgKCFjYXB0Y2hhRWxlbSkge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgQ2FwdGNoYSBlbGVtZW50IHdpdGggaWQgJyR7Y2FwdGNoYUVsZW1JZH0nIHdhcyBub3QgZm91bmRgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGFzc2lnbiBjYXB0Y2hhIGFsZW1cclxuICAgICAgICB0aGlzLmNhcHRjaGFFbGVtID0gY2FwdGNoYUVsZW07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFJlc3BvbnNpYmxlIGZvciBpbnN0YW50aWF0aW5nIGNhcHRjaGEgZWxlbWVudFxyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCByZW5kZXJSZUNhcHRjaGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhSWQgPSB0aGlzLnJlQ2FwdGNoYUFwaS5yZW5kZXIodGhpcy5jYXB0Y2hhRWxlbUlkLCB0aGlzLmdldENhcHRjaGFQcm9wZXJ0aWVzKCkpO1xyXG4gICAgICAgIHRoaXMucmVhZHkubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBjYXB0Y2hhIHJlY2VpdmVzIHJlc3BvbnNlXHJcbiAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFja1xyXG4gICAgKi9cclxuICAgIHByb3RlY3RlZCBoYW5kbGVDYWxsYmFjayhjYWxsYmFjazogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzcG9uc2UgPSBjYWxsYmFjaztcclxuICAgICAgICB0aGlzLnN1Y2Nlc3MubmV4dChjYWxsYmFjayk7XHJcblxyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGNhbGxiYWNrKTtcclxuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoY2FsbGJhY2spO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yZXNldENhcHRjaGFBZnRlclN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNldENhcHRjaGEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQc2V1ZG9VbmlxdWVOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gY2FwdGNoYSBzcGVjaWZpYyBzZXR1cFxyXG4gICAgICAgIHRoaXMuY2FwdGNoYVNwZWNpZmljU2V0dXAoKTtcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIGNhcHRjaGEgd3JhcHBlclxyXG4gICAgICAgIHRoaXMuY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnJlZ2lzdGVyQ2FwdGNoYVNjcmlwdCgnZXhwbGljaXQnLCAoZ3JlY2FwdGNoYSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9ubG9hZENhbGxiYWNrKGdyZWNhcHRjaGEpO1xyXG4gICAgICAgIH0sIHRoaXMuaGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBDYWxsZWQgd2hlbiBnb29nbGUncyByZWNhcHRjaGEgc2NyaXB0IGlzIHJlYWR5XHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbmxvYWRDYWxsYmFjayhncmVjYXBjaGE6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIGFzc2lnbiByZWZlcmVuY2UgdG8gcmVDYXB0Y2hhIEFwaSBvbmNlIGl0cyBsb2FkZWRcclxuICAgICAgICB0aGlzLnJlQ2FwdGNoYUFwaSA9IGdyZWNhcGNoYTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnJlQ2FwdGNoYUFwaSkge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgUmVDYXB0Y2hhIEFwaSB3YXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbG9hZGVkIGZsYWdcclxuICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gZmlyZSBsb2FkIGV2ZW50XHJcbiAgICAgICAgdGhpcy5sb2FkLm5leHQoKTtcclxuXHJcbiAgICAgICAgLy8gcmVuZGVyIGNhcHRjaGFcclxuICAgICAgICB0aGlzLnJlbmRlclJlQ2FwdGNoYSgpO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBjb21wb25lbnQgaWYgaXQgd2FzIGZsYWdnZWQgYXMgc3VjaFxyXG4gICAgICAgIGlmICh0aGlzLnNldHVwQWZ0ZXJMb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBBZnRlckxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlTmV3RWxlbUlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwdGNoYUVsZW1QcmVmaXggKyB0aGlzLmdldFBzZXVkb1VuaXF1ZU51bWJlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQW5kU2V0Q2FwdGNoYUVsZW0oKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZ2VuZXJhdGUgbmV3IGNhcHRjaGEgaWRcclxuICAgICAgICB0aGlzLmNhcHRjaGFFbGVtSWQgPSB0aGlzLmdlbmVyYXRlTmV3RWxlbUlkKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jYXB0Y2hhRWxlbUlkKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBDYXB0Y2hhIGVsZW0gSWQgaXMgbm90IHNldGApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gcmVtb3ZlIG9sZCBodG1sXHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhV3JhcHBlckVsZW0ubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIG5ldyB3cmFwcGVyIGZvciBjYXB0Y2hhXHJcbiAgICAgICAgY29uc3QgbmV3RWxlbSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgbmV3RWxlbS5pZCA9IHRoaXMuY2FwdGNoYUVsZW1JZDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNhcHRjaGFXcmFwcGVyRWxlbS5uYXRpdmVFbGVtZW50LCBuZXdFbGVtKTtcclxuXHJcbiAgICAgICAgLy8gdXBkYXRlIGNhcHRjaGEgZWxlbVxyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwdGNoYUVsZW0odGhpcy5jYXB0Y2hhRWxlbUlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvIGJlIGFsaWduZWQgd2l0aCB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHdlIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgbWV0aG9kXHJcbiAgICAgKiBIb3dldmVyIGFzIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIHRoZSByZWNhcHRjaGEsIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGltcGxlbWVudGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGhlbHBzIHVzIHRpZSB0b2dldGhlciByZWNhcHRjaGEgYW5kIG91ciBmb3JtQ29udHJvbCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogQXQgc29tZSBwb2ludCB3ZSBtaWdodCBiZSBpbnRlcmVzdGVkIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRvdWNoZWQgb3VyIGNvbXBvbmVudFxyXG4gICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxufVxyXG5cclxuIiwiZXhwb3J0IGVudW0gUmVDYXB0Y2hhVHlwZSB7XHJcblxyXG4gICAgSW52aXNpYmxlUmVDYXB0Y2hhLFxyXG4gICAgUmVDYXB0Y2hhMlxyXG59XHJcbiIsImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZGVjbGFyZSB2YXIgZG9jdW1lbnQ6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNjcmlwdFNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZ2xvYmFsIGdvb2dsZSByZWNhcHRjaGEgc2NyaXB0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB3aW5kb3dHcmVjYXB0Y2hhID0gJ2dyZWNhcHRjaGEnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgY2FsbGJhY2tcclxuICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9vbmxvYWRfY2FsbGJhY2snO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlckNhcHRjaGFTY3JpcHQocmVuZGVyOiBzdHJpbmcsIG9uTG9hZDogKGdyZWNhcHRjaGE6IGFueSkgPT4gdm9pZCwgbGFuZ3VhZ2U/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5ncmVjYXB0Y2hhU2NyaXB0TG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgLy8gcmVjYXB0Y2hhIHNjcmlwdCBpcyBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICAgICAgICAvLyBqdXN0IGNhbGwgdGhlIGNhbGxiYWNrXHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25Mb2FkKHdpbmRvd1t0aGlzLndpbmRvd0dyZWNhcHRjaGFdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gcGF0Y2ggdGhlIGNhbGxiYWNrIHRocm91Z2ggZ2xvYmFsIHZhcmlhYmxlLCBvdGhlcndpc2UgY2FsbGJhY2sgaXMgbm90IGFjY2Vzc2libGVcclxuICAgICAgICAvLyBub3RlOiBodHRwczovL2dpdGh1Yi5jb20vRW5uZ2FnZS9uZ3gtY2FwdGNoYS9pc3N1ZXMvMlxyXG4gICAgICAgIHdpbmRvd1t0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHldID0gPGFueT4oKCkgPT4gdGhpcy56b25lLnJ1bihcclxuICAgICAgICAgICAgb25Mb2FkLmJpbmQodGhpcywgd2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0pXHJcbiAgICAgICAgKSk7XHJcblxyXG4gICAgICAgIC8vIHByZXBhcmUgc2NyaXB0IGVsZW1cclxuICAgICAgICBjb25zdCBzY3JpcHRFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgc2NyaXB0RWxlbS5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICBzY3JpcHRFbGVtLnNyYyA9IHRoaXMuZ2V0Q2FwdGNoYVNjcmlwdFVybChyZW5kZXIsIGxhbmd1YWdlKTtcclxuICAgICAgICBzY3JpcHRFbGVtLmFzeW5jID0gdHJ1ZTtcclxuICAgICAgICBzY3JpcHRFbGVtLmRlZmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gYWRkIHNjcmlwdCB0byBoZWFkZXJcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdEVsZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFudXAoKTogdm9pZCB7XHJcbiAgICAgICAgd2luZG93W3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eV0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgd2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgaWYgZ29vZ2xlIHJlY2FwdGNoYSBzY3JpcHQgaXMgYXZhaWxhYmxlIGFuZCByZWFkeSB0byBiZSB1c2VkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ3JlY2FwdGNoYVNjcmlwdExvYWRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAod2luZG93W3RoaXMud2luZG93T25Mb2FkQ2FsbGJhY2tQcm9wZXJ0eV0gJiYgd2luZG93W3RoaXMud2luZG93R3JlY2FwdGNoYV0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgbGFuZ3VhZ2UgcGFyYW0gdXNlZCBpbiBzY3JpcHQgdXJsXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0TGFuZ3VhZ2VQYXJhbShobD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFobCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYCZobD0ke2hsfWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFVybCB0byBnb29nbGUgYXBpIHNjcmlwdFxyXG4gICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q2FwdGNoYVNjcmlwdFVybChyZW5kZXI6IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9vbmxvYWQ9JHt0aGlzLndpbmRvd09uTG9hZENhbGxiYWNrUHJvcGVydHl9JnJlbmRlcj0ke3JlbmRlcn0ke3RoaXMuZ2V0TGFuZ3VhZ2VQYXJhbShsYW5ndWFnZSl9YDtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJlQ2FwdGNoYVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcmVjYXB0Y2hhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY3JpcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VSZUNhcHRjaGFDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtcmVjYXB0Y2hhLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25neC1pbnZpc2libGUtcmVjYXB0Y2hhJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxkaXYgI2NhcHRjaGFXcmFwcGVyRWxlbT48L2Rpdj5gLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW52aXNpYmxlUmVDYXB0Y2hhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW52aXNpYmxlUmVDYXB0Y2hhQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgc2l6ZSByZXByZXNlbnRpbmcgaW52aXNpYmxlIGNhcHRjaGFcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2l6ZSA9ICdpbnZpc2libGUnO1xyXG5cclxuICAvKipcclxuICAgKiBCYWRnZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGJhZGdlOiAnYm90dG9tcmlnaHQnIHwgJ2JvdHRvbWxlZnQnIHwgJ2lubGluZScgPSAnYm90dG9tcmlnaHQnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVjYXB0Y2hhVHlwZTogUmVDYXB0Y2hhVHlwZSA9IFJlQ2FwdGNoYVR5cGUuSW52aXNpYmxlUmVDYXB0Y2hhO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSxcclxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvZ3JhbWF0aWNhbGx5IGludm9rZSB0aGUgcmVDQVBUQ0hBIGNoZWNrLiBVc2VkIGlmIHRoZSBpbnZpc2libGUgcmVDQVBUQ0hBIGlzIG9uIGEgZGl2IGluc3RlYWQgb2YgYSBidXR0b24uXHJcbiAgICovXHJcbiAgZXhlY3V0ZSgpOiB2b2lkIHtcclxuICAgIC8vIGV4ZWN1dGUgY2FwdGNoYVxyXG4gICAgdGhpcy5yZUNhcHRjaGFBcGkuZXhlY3V0ZSh0aGlzLmNhcHRjaGFJZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2FwdGNoYVNwZWNpZmljU2V0dXAoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdiYWRnZSc6IHRoaXMuYmFkZ2UsXHJcbiAgICAgICd0eXBlJzogdGhpcy50eXBlLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4LFxyXG4gICAgICAnc2l6ZSc6IHRoaXMuc2l6ZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbiIsImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSZUNhcHRjaGFUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlY2FwdGNoYS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUmVDYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXJlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtcmVjYXB0Y2hhMicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8ZGl2ICNjYXB0Y2hhV3JhcHBlckVsZW0+PC9kaXY+YCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlQ2FwdGNoYTJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZUNhcHRjaGEyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJlQ2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgKiBOYW1lIG9mIHRoZSBnbG9iYWwgZXhwaXJlIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93T25FcnJvckNhbGxiYWNrUHJvcGVydHkgPSAnbmd4X2NhcHRjaGFfZXJyb3JfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAqIE5hbWUgb2YgdGhlIGdsb2JhbCBlcnJvciBjYWxsYmFja1xyXG4gICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eSA9ICduZ3hfY2FwdGNoYV9leHBpcmVfY2FsbGJhY2snO1xyXG5cclxuICAvKipcclxuICAgKiBUaGVtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgKiBTaXplXHJcbiAgKi9cclxuICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG5cclxuICAvKipcclxuICAgKiBMYW5ndWFnZSBjb2RlLiBBdXRvLWRldGVjdHMgdGhlIHVzZXIncyBsYW5ndWFnZSBpZiB1bnNwZWNpZmllZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBobDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAqIEV4cGlyZWQgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBleHBpcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICogRXJyb3IgY2FsbGJhY2tcclxuICAqL1xyXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlY2FwdGNoYVR5cGU6IFJlQ2FwdGNoYVR5cGUgPSBSZUNhcHRjaGFUeXBlLlJlQ2FwdGNoYTI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgem9uZTogTmdab25lLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzY3JpcHRTZXJ2aWNlOiBTY3JpcHRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIocmVuZGVyZXIsIHpvbmUsIGluamVjdG9yLCBzY3JpcHRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB7fTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjYXB0Y2hhU3BlY2lmaWNTZXR1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsYmFja3MoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgcmVDYXB0Y2hhIHByb3BlcnRpZXNcclxuICAqL1xyXG4gIHByb3RlY3RlZCBnZXRDYXB0Y2hhUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3NpdGVrZXknOiB0aGlzLnNpdGVLZXksXHJcbiAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZSkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUNhbGxiYWNrKHJlc3BvbnNlKSksXHJcbiAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4gdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrKCkpLFxyXG4gICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuaGFuZGxlRXJyb3JDYWxsYmFjaygpKSxcclxuICAgICAgJ3RoZW1lJzogdGhpcy50aGVtZSxcclxuICAgICAgJ3R5cGUnOiB0aGlzLnR5cGUsXHJcbiAgICAgICdzaXplJzogdGhpcy5zaXplLFxyXG4gICAgICAndGFiaW5kZXgnOiB0aGlzLnRhYkluZGV4XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBjYWxsYmFja3NcclxuICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsYmFja3MoKTogdm9pZCB7XHJcbiAgICB3aW5kb3dbdGhpcy53aW5kb3dPbkVycm9yQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUVycm9yQ2FsbGJhY2suYmluZCh0aGlzKTtcclxuICAgIHdpbmRvd1t0aGlzLndpbmRvd09uRXhwaXJlQ2FsbGJhY2tQcm9wZXJ0eV0gPSB0aGlzLmhhbmRsZUV4cGlyZUNhbGxiYWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGVycm9yIGNhbGxiYWNrXHJcbiAgKi9cclxuICBwcml2YXRlIGhhbmRsZUVycm9yQ2FsbGJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh1bmRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCh1bmRlZmluZWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5lcnJvci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGV4cGlyZWQgY2FsbGJhY2tcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUV4cGlyZUNhbGxiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBpcmUubmV4dCgpO1xyXG5cclxuICAgIC8vIHJlc2V0IGNhcHRjaGEgb24gZXhwaXJlIGNhbGxiYWNrXHJcbiAgICB0aGlzLnJlc2V0Q2FwdGNoYSgpO1xyXG4gIH1cclxufVxyXG5cclxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2NyaXB0U2VydmljZSB9IGZyb20gJy4vc2NyaXB0LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUmVDYXB0Y2hhVjNTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeGVjdXRlcyByZUNhcHRjaGEgdjMgd2l0aCBnaXZlbiBhY3Rpb24gYW5kIHBhc3NlcyB0b2tlbiB2aWEgY2FsbGJhY2suIFlvdSBuZWVkIHRvIHZlcmlmeVxyXG4gICAgICogdGhpcyBjYWxsYmFjayBpbiB5b3VyIGJhY2tlbmQgdG8gZ2V0IG1lYW5pbmdmdWwgcmVzdWx0cy5cclxuICAgICAqXHJcbiAgICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdjNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gc2l0ZUtleSBTaXRlIGtleSBmb3VuZCBpbiB5b3VyIGdvb2dsZSBhZG1pbiBwYW5lbFxyXG4gICAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gdG8gbG9nXHJcbiAgICAgKi9cclxuICAgIGV4ZWN1dGUoc2l0ZUtleTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgY2FsbGJhY2s6ICh0b2tlbjogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnJlZ2lzdGVyQ2FwdGNoYVNjcmlwdChzaXRlS2V5LCAoZ3JlY2FwdGNoYSkgPT4ge1xyXG4gICAgICAgICAgICBncmVjYXB0Y2hhLmV4ZWN1dGUoc2l0ZUtleSwge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgICAgICAgfSkudGhlbigodG9rZW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRva2VuKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEludmlzaWJsZVJlQ2FwdGNoYUNvbXBvbmVudCwgUmVDYXB0Y2hhMkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSZUNhcHRjaGFWM1NlcnZpY2UsIFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBSZUNhcHRjaGEyQ29tcG9uZW50LFxuICAgIEludmlzaWJsZVJlQ2FwdGNoYUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTY3JpcHRTZXJ2aWNlLFxuICAgIFJlQ2FwdGNoYVYzU2VydmljZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVDYXB0Y2hhMkNvbXBvbmVudCxcbiAgICBJbnZpc2libGVSZUNhcHRjaGFDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hDYXB0Y2hhTW9kdWxlIHtcbn1cblxuXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7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

@@ -74,4 +74,4 @@ import { AfterViewInit, ElementRef, EventEmitter, Injector, NgZone, OnChanges, Renderer2, SimpleChanges } from '@angular/core';

*/
protected onChange: (value: string) => void;
protected onTouched: (value: string) => void;
protected onChange: (value: string | undefined) => void;
protected onTouched: (value: string | undefined) => void;
/**

@@ -111,3 +111,3 @@ * Indicates if captcha is loaded

*/
getCaptchaId(): number;
getCaptchaId(): number | undefined;
/**

@@ -114,0 +114,0 @@ * Resets captcha

@@ -13,3 +13,3 @@ import { NgZone } from '@angular/core';

constructor(zone: NgZone);
registerCaptchaScript(render: string | 'explicit', onLoad: (grecaptcha: any) => void, language?: string): void;
registerCaptchaScript(render: string, onLoad: (grecaptcha: any) => void, language?: string): void;
cleanup(): void;

@@ -27,3 +27,3 @@ /**

*/
private getCaptchaScriptUrl(language, render);
private getCaptchaScriptUrl(render, language?);
}
{
"name": "ngx-captcha",
"version": "5.0.0",
"version": "5.0.1",
"license": "MIT",

@@ -5,0 +5,0 @@ "repository": {

Sorry, the diff of this file is too big to display

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 too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc