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

@ng-dynamic-forms/core

Package Overview
Dependencies
Maintainers
1
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ng-dynamic-forms/core - npm Package Compare versions

Comparing version 9.1.0 to 10.0.0

esm2015/lib/component/dynamic-form-control-event.js

2

bundles/core.umd.min.js

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("rxjs"),require("reflect-metadata"),require("rxjs/operators"),require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("@ng-dynamic-forms/core",["exports","rxjs","reflect-metadata","rxjs/operators","@angular/core","@angular/forms","@angular/common"],e):e(((t=t||self).ngDynamicForms=t.ngDynamicForms||{},t.ngDynamicForms.core={}),t.rxjs,null,t.rxjs.operators,t.ng.core,t.ng.forms,t.ng.common)}(this,function(t,e,o,r,n,i,a){"use strict";var s=function(t,e){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)};function p(t,e){function o(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}var l=function(){return(l=Object.assign||function(t){for(var e,o=1,r=arguments.length;o<r;o++)for(var n in e=arguments[o])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)};function u(t,e,o,r){var n,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,r);else for(var s=t.length-1;s>=0;s--)(n=t[s])&&(a=(i<3?n(a):i>3?n(e,o,a):n(e,o))||a);return i>3&&a&&Object.defineProperty(e,o,a),a}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function d(t){var e="function"==typeof Symbol&&t[Symbol.iterator],o=0;return e?e.call(t):{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}}}function y(t,e){var o="function"==typeof Symbol&&t[Symbol.iterator];if(!o)return t;var r,n,i=o.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(t){n={error:t}}finally{try{r&&!r.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return a}function f(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(y(arguments[e]));return t}function h(t){return"boolean"==typeof t}function m(t){return"function"==typeof t}function g(t){return"number"==typeof t}function v(t){return"object"==typeof t&&null!==t}function _(t){return"string"==typeof t}var O=function(){function t(t,e){this.layoutService=t,this.validationService=e,this._hasFocus=!1}return Object.defineProperty(t.prototype,"control",{get:function(){var t=this.group.get(this.model.id);if(null===t)throw new Error("form group does not contain an abstract control with id "+this.model.id);return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"elementId",{get:function(){return this.layoutService.getElementId(this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errorMessages",{get:function(){return this.validationService.createErrorMessages(this.control,this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasFocus",{get:function(){return this._hasFocus},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return this.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isValid",{get:function(){return this.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"showErrorMessages",{get:function(){return this.model.hasErrorMessages&&this.control.touched&&!this.hasFocus&&this.isInvalid},enumerable:!0,configurable:!0}),t.prototype.getClass=function(t,e,o){void 0===o&&(o=this.model);var r=this.layoutService.findByModel(o,this.layout)||o.layout;return this.layoutService.getClass(r,t,e)},t.prototype.onBlur=function(t){t instanceof Event&&t.stopPropagation(),this._hasFocus=!1,this.blur.emit(t)},t.prototype.onChange=function(t){t instanceof Event&&t.stopPropagation(),this.change.emit(t)},t.prototype.onEmbeddedCheckboxChange=function(t,e){this.onChange(t),e.value=t.target.checked},t.prototype.onCustomEvent=function(t,e,o){void 0===e&&(e=null),void 0===o&&(o=!1);var r=this.customEvent;o?r.emit(t):_(e)&&r.emit({customEvent:t,customEventType:e})},t.prototype.onFocus=function(t){t instanceof Event&&t.stopPropagation(),this._hasFocus=!0,this.focus.emit(t)},t}();var A=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),Object.defineProperty(e.prototype,"array",{get:function(){return this.control},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startTemplate",{get:function(){return this.layoutService.getStartTemplate(this.model,this.templates)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"endTemplate",{get:function(){return this.layoutService.getEndTemplate(this.model,this.templates)},enumerable:!0,configurable:!0}),e}(O);var I={Blur:"blur",Change:"change",Custom:"custom",Focus:"focus"};function b(t){return v(t)&&t.hasOwnProperty("$event")}var L=function(){function t(t,e){this.formService=t,this.layoutService=e}return t.prototype.trackByFn=function(t,e){return e.id},t.prototype.getClass=function(t,e,o){var r=this.layoutService.findByModel(t,this.formLayout)||t.layout;return this.layoutService.getClass(r,e,o)},t.prototype.onEvent=function(t,e){switch(e){case I.Blur:this.blur.emit(t);break;case I.Change:this.change.emit(t);break;case I.Focus:this.focus.emit(t);break;case I.Custom:this.customEvent.emit(t)}},t}();var E="SERIALIZABLE";function T(t){return function(e,o){Reflect.defineMetadata(E,{key:o,name:t||o},e,o)}}function C(t){var e=[];for(var o in t){var r=Reflect.getMetadata(E,t,o);r&&e.push(r)}return e}function F(t,e){return C(e||t).reduce(function(e,o){return e[o.name]=t[o.key],e},{})}var D=function(){function t(t,o){var r=this;void 0===o&&(o=null),this.parent=null,this.asyncValidators=t.asyncValidators||null,this.errorMessages=t.errorMessages||null,this.hidden=!!h(t.hidden)&&t.hidden,this.id=t.id,this.label=t.label||null,this.labelTooltip=t.labelTooltip||null,this.controlTooltip=t.controlTooltip||null,this.layout=o,this.name=t.name||t.id,this.relations=Array.isArray(t.relations)?t.relations:[],this.updateOn=_(t.updateOn)?t.updateOn:null,this.validators=t.validators||null,this.disabled$=new e.BehaviorSubject(!!h(t.disabled)&&t.disabled),this.disabled$.subscribe(function(t){return r._disabled=t}),this.disabledChanges=this.disabled$.asObservable()}return Object.defineProperty(t.prototype,"disabled",{get:function(){return this.disabled$.getValue()},set:function(t){this.disabled$.next(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasErrorMessages",{get:function(){return v(this.errorMessages)},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){return F(this)},u([T(),c("design:type",Object)],t.prototype,"asyncValidators",void 0),u([T("disabled"),c("design:type",Boolean)],t.prototype,"_disabled",void 0),u([T(),c("design:type",Object)],t.prototype,"errorMessages",void 0),u([T(),c("design:type",Boolean)],t.prototype,"hidden",void 0),u([T(),c("design:type",String)],t.prototype,"id",void 0),u([T(),c("design:type",String)],t.prototype,"label",void 0),u([T(),c("design:type",String)],t.prototype,"labelTooltip",void 0),u([T(),c("design:type",String)],t.prototype,"controlTooltip",void 0),u([T(),c("design:type",Object)],t.prototype,"layout",void 0),u([T(),c("design:type",String)],t.prototype,"name",void 0),u([T(),c("design:type",Array)],t.prototype,"relations",void 0),u([T(),c("design:type",String)],t.prototype,"updateOn",void 0),u([T(),c("design:type",Object)],t.prototype,"validators",void 0),t}();var R=function(t){function o(o,r){var n=t.call(this,o,r)||this;return n.additional=v(o.additional)?o.additional:null,n.hint=o.hint||null,n.required=!!h(o.required)&&o.required,n.tabIndex=o.tabIndex||null,n.value$=new e.BehaviorSubject(null!==o.value&&void 0!==o.value?o.value:null),n.value$.subscribe(function(t){return n._value=t}),n.valueChanges=n.value$.asObservable(),n}return p(o,t),Object.defineProperty(o.prototype,"value",{get:function(){return this.value$.getValue()},set:function(t){this.value$.next(t)},enumerable:!0,configurable:!0}),o.prototype.getAdditional=function(t,e){return null!==this.additional&&this.additional.hasOwnProperty(t)?this.additional[t]:e},u([T(),c("design:type",Object)],o.prototype,"additional",void 0),u([T(),c("design:type",String)],o.prototype,"hint",void 0),u([T(),c("design:type",Boolean)],o.prototype,"required",void 0),u([T(),c("design:type",Number)],o.prototype,"tabIndex",void 0),u([T("value"),c("design:type",Object)],o.prototype,"_value",void 0),o}(D);var N=function(){function t(t,e,o){void 0===e&&(e=[]),void 0===o&&(o=-1),this.$implicit=this,this.context=t,this.group=e,this.index=o}return Object.defineProperty(t.prototype,"parent",{get:function(){return this.context},enumerable:!0,configurable:!0}),t.prototype.get=function(t){return this.group[t]},t.prototype.toJSON=function(){return F(this)},u([T(),c("design:type",Array)],t.prototype,"group",void 0),u([T(),c("design:type",Number)],t.prototype,"index",void 0),t}();var S="ARRAY";var M=function(t){function e(e,o){var r=t.call(this,e,o)||this;if(r.groups=[],r.type=S,!m(e.groupFactory))throw new Error("group factory function must be specified for DynamicFormArrayModel");if(r.groupFactory=e.groupFactory,r.groupAsyncValidators=e.groupAsyncValidators||null,r.groupPrototype=r.groupFactory(),r.groupValidators=e.groupValidators||null,r.initialCount=g(e.initialCount)?e.initialCount:1,Array.isArray(e.groups))e.groups.forEach(function(t,e){r.groups.push(new N(r,t.group,t.index||e))});else for(var n=0;n<r.initialCount;n++)r.addGroup();return r}return p(e,t),e.prototype.updateGroupIndex=function(){this.groups.forEach(function(t,e){return t.index=e})},Object.defineProperty(e.prototype,"size",{get:function(){return this.groups.length},enumerable:!0,configurable:!0}),e.prototype.get=function(t){return this.groups[t]},e.prototype.addGroup=function(){return this.insertGroup(this.groups.length)},e.prototype.insertGroup=function(t){var e=new N(this,this.groupFactory());return this.groups.splice(t,0,e),this.updateGroupIndex(),e},e.prototype.moveGroup=function(t,e){var o;(o=this.groups).splice.apply(o,f([t+e,0],this.groups.splice(t,1))),this.updateGroupIndex()},e.prototype.removeGroup=function(t){this.groups.splice(t,1),this.updateGroupIndex()},e.prototype.clear=function(){this.groups.splice(0),this.updateGroupIndex()},u([T(),c("design:type",Object)],e.prototype,"groupAsyncValidators",void 0),u([T(),c("design:type",Object)],e.prototype,"groupValidators",void 0),u([T(),c("design:type",Array)],e.prototype,"groups",void 0),u([T(),c("design:type",Number)],e.prototype,"initialCount",void 0),u([T(),c("design:type",Array)],e.prototype,"groupPrototype",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(D);var P=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.labelPosition=e.labelPosition||null,r.checked=!!h(r.value)&&r.value,r}return p(e,t),Object.defineProperty(e.prototype,"checked",{get:function(){return this.value},set:function(t){this.value=t},enumerable:!0,configurable:!0}),e.prototype.toggle=function(){this.checked=!this.checked},u([T(),c("design:type",String)],e.prototype,"labelPosition",void 0),e}(R);var x="CHECKBOX";var U=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=x,r.indeterminate=!!h(e.indeterminate)&&e.indeterminate,r}return p(e,t),u([T(),c("design:type",Boolean)],e.prototype,"indeterminate",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(P);var w="on",j=["billing","shipping"],Y=["fax","home","mobile","pager","work"],V=["street-address","address-line1","address-line2","address-line3","address-level4","address-level3","address-level2","address-level1","name","honorific-prefix","given-name","additional-name","family-name","honorific-suffix","nickname","username","new-password","current-password","organization-title","organization","country","country-name","postal-code","cc-name","cc-given-name","cc-additional-name","cc-family-name","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc","cc-type","transaction-currency","transaction-amount","language","bday","bday-day","bday-month","bday-year","sex","url","photo"],k=["tel","tel-country-code","tel-national","tel-area-code","tel-local","tel-local-prefix","tel-local-suffix","tel-extension","email","impp"];var B=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.autoComplete=e.autoComplete||w,r.autoFocus=!!h(e.autoFocus)&&e.autoFocus,r.maxLength=g(e.maxLength)?e.maxLength:null,r.minLength=g(e.minLength)?e.minLength:null,r.placeholder=e.placeholder||"",r.prefix=e.prefix||null,r.readOnly=!!h(e.readOnly)&&e.readOnly,r.spellCheck=!!h(e.spellCheck)&&e.spellCheck,r.suffix=e.suffix||null,r}return p(e,t),u([T(),c("design:type",String)],e.prototype,"autoComplete",void 0),u([T(),c("design:type",Boolean)],e.prototype,"autoFocus",void 0),u([T(),c("design:type",Number)],e.prototype,"maxLength",void 0),u([T(),c("design:type",Number)],e.prototype,"minLength",void 0),u([T(),c("design:type",String)],e.prototype,"placeholder",void 0),u([T(),c("design:type",String)],e.prototype,"prefix",void 0),u([T(),c("design:type",Boolean)],e.prototype,"readOnly",void 0),u([T(),c("design:type",Boolean)],e.prototype,"spellCheck",void 0),u([T(),c("design:type",String)],e.prototype,"suffix",void 0),e}(R);function G(t){return _(t)?t:t instanceof RegExp?t.toString():Array.isArray(t)?t.map(function(t){return G(t)}):null}function H(t){return _(t)?t.startsWith("/")&&t.endsWith("/")?new RegExp(t.slice(1,t.length-1)):t:Array.isArray(t)?t.map(function(t){return H(t)}):null}function $(t,e){return _(e)&&/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|([+\-])([\d|:]*))?$/.test(e)?new Date(e):e}var K="INPUT",z="text";var X=function(t){function o(e,o){var r=t.call(this,e,o)||this;return r.files=null,r.list$=null,r._list=null,r._listId=null,r.type=K,r.accept=e.accept||null,r.inputType=e.inputType||z,r.mask=e.mask||null,r.max=void 0!==e.max?e.max:null,r.min=void 0!==e.min?e.min:null,r.multiple=h(e.multiple)?e.multiple:null,r.pattern=e.pattern||null,r.step=g(e.step)?e.step:null,void 0!==e.list&&(r.list=e.list,r._listId=r.id+"List"),r}return p(o,t),Object.defineProperty(o.prototype,"listId",{get:function(){return this._listId},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"hasList",{get:function(){return e.isObservable(this.list$)},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"list",{set:function(t){var o=this;Array.isArray(t)?(this._list=t,this.list$=e.of(this._list)):e.isObservable(t)?this.list$=t.pipe(r.tap(function(t){return o._list=t})):(this._list=null,this.list$=null)},enumerable:!0,configurable:!0}),o.prototype.toJSON=function(){var e=t.prototype.toJSON.call(this);return null!==this.mask&&(e.mask=m(this.mask)?this.mask:G(this.mask)),e},u([T(),c("design:type",String)],o.prototype,"accept",void 0),u([T(),c("design:type",String)],o.prototype,"inputType",void 0),u([T(),c("design:type",Object)],o.prototype,"mask",void 0),u([T(),c("design:type",Object)],o.prototype,"max",void 0),u([T(),c("design:type",Object)],o.prototype,"min",void 0),u([T(),c("design:type",Boolean)],o.prototype,"multiple",void 0),u([T(),c("design:type",String)],o.prototype,"pattern",void 0),u([T(),c("design:type",Number)],o.prototype,"step",void 0),u([T("list"),c("design:type",Array)],o.prototype,"_list",void 0),u([T(),c("design:type",String)],o.prototype,"type",void 0),o}(B);var W=function(){function t(t,e,o,r,n){this.componentFactoryResolver=t,this.layoutService=e,this.validationService=o,this.componentService=r,this.relationService=n,this.context=null,this.componentSubscriptions=[],this.subscriptions=[]}return t.prototype.ngOnChanges=function(t){var e,o=this,r=t.group,n=t.model;if(n&&(this.destroyFormControlComponent(),this.createFormControlComponent()),(r||n)&&this.model){if(this.unsubscribe(),this.group&&(this.control=this.group.get(this.model.id),this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return o.onControlValueChanges(t)}))),this.subscriptions.push(this.model.disabledChanges.subscribe(function(t){return o.onModelDisabledUpdates(t)})),this.model instanceof R){var i=this.model;this.subscriptions.push(i.valueChanges.subscribe(function(t){return o.onModelValueUpdates(t)}))}this.model.relations.length>0&&(e=this.subscriptions).push.apply(e,f(this.relationService.subscribeRelations(this.model,this.group,this.control)))}},t.prototype.ngOnDestroy=function(){this.destroyFormControlComponent(),this.unsubscribe()},Object.defineProperty(t.prototype,"errorMessages",{get:function(){return this.validationService.createErrorMessages(this.control,this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasHint",{get:function(){return _(this.model.hint)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hint",{get:function(){return this.model.hint||null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasLabel",{get:function(){return _(this.model.label)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckbox",{get:function(){return this.model.type===x},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"elementId",{get:function(){return this.layoutService.getElementId(this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return this.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isValid",{get:function(){return this.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"showErrorMessages",{get:function(){return this.model.hasErrorMessages&&this.control.touched&&!this.hasFocus&&this.isInvalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"templates",{get:function(){return void 0!==this.inputTemplateList?this.inputTemplateList:this.contentTemplateList},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"startTemplate",{get:function(){return this.model.type!==S?this.layoutService.getStartTemplate(this.model,this.templates):void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"endTemplate",{get:function(){return this.model.type!==S?this.layoutService.getEndTemplate(this.model,this.templates):void 0},enumerable:!0,configurable:!0}),t.prototype.getClass=function(t,e,o){void 0===o&&(o=this.model);var r=this.layoutService.findByModel(o,this.layout)||o.layout;return this.layoutService.getClass(r,t,e)},t.prototype.createFormControlComponent=function(){var t=this,e=this.componentType;if(null!==e){var o=this.componentFactoryResolver.resolveComponentFactory(e);this.componentViewContainerRef.clear(),this.componentRef=this.componentViewContainerRef.createComponent(o);var r=this.componentRef.instance;r.group=this.group,r.layout=this.layout,r.model=this.model,this.templates&&(r.templates=this.templates),this.componentSubscriptions.push(r.blur.subscribe(function(e){return t.onBlur(e)})),this.componentSubscriptions.push(r.change.subscribe(function(e){return t.onChange(e)})),this.componentSubscriptions.push(r.focus.subscribe(function(e){return t.onFocus(e)})),void 0!==r.customEvent&&this.componentSubscriptions.push(r.customEvent.subscribe(function(e){return t.onCustomEvent(e)})),this.registerComponentRef(this.componentRef)}},t.prototype.destroyFormControlComponent=function(){this.componentRef&&(this.componentSubscriptions.forEach(function(t){return t.unsubscribe()}),this.componentSubscriptions=[],this.unregisterComponentRef(),this.componentRef.destroy())},t.prototype.createDynamicFormControlEvent=function(t,e){return{$event:t,context:this.context,control:this.control,group:this.group,model:this.model,type:e}},t.prototype.unsubscribe=function(){this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions=[]},t.prototype.onControlValueChanges=function(t){this.model instanceof R&&this.model.value!==t&&(this.model.value=t)},t.prototype.onModelValueUpdates=function(t){this.control.value!==t&&this.control.setValue(t)},t.prototype.onModelDisabledUpdates=function(t){t?this.control.disable():this.control.enable()},t.prototype.onChange=function(t){if(t instanceof Event){if(this.model.type===K){var e=this.model;if("file"===e.inputType){var o=t.target||t.srcElement;e.files=o.files}}this.change.emit(this.createDynamicFormControlEvent(t,I.Change))}else b(t)?this.change.emit(t):this.change.emit(this.createDynamicFormControlEvent(t,I.Change))},t.prototype.onBlur=function(t){b(t)?this.blur.emit(t):(this.hasFocus=!1,this.blur.emit(this.createDynamicFormControlEvent(t,I.Blur)))},t.prototype.onFocus=function(t){b(t)?this.focus.emit(t):(this.hasFocus=!0,this.focus.emit(this.createDynamicFormControlEvent(t,I.Focus)))},t.prototype.onCustomEvent=function(t){var e=this.customEvent;b(t)?e.emit(t):e.emit(this.createDynamicFormControlEvent(t.customEvent,t.customEventType))},t.prototype.registerComponentRef=function(t){var e;this.context instanceof N&&(e=this.context.index),this.componentService.registerFormControlRef(this.model,t,e)},t.prototype.unregisterComponentRef=function(){var t;this.context instanceof N&&(t=this.context.index),this.componentService.unregisterFormControlRef(this.model.id,t)},t}();var q=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.ngAfterViewInit=function(){var t=this;this.layoutService.filterTemplatesByModel(this.model,this.templates).forEach(function(e){return t.bindTemplate(e)})},e.prototype.bindTemplate=function(t){if(_(t.as)&&this.templateDirectives.has(t.as)){var e=this.templateDirectives.get(t.as);this.viewChild[e]=this.mapTemplate(t)}},e}(O);var J=function(){function t(t,e){this.elementRef=t,this.renderer=e}return t.prototype.ngAfterViewInit=function(){this.dynamicId&&this.renderer.setAttribute(this.elementRef.nativeElement,"id",this.dynamicId)},t.decorators=[{type:n.Directive,args:[{selector:"[dynamicId]"}]}],t.ctorParameters=function(){return[{type:n.ElementRef},{type:n.Renderer2}]},t.propDecorators={dynamicId:[{type:n.Input}]},t}();var Q=function(){function t(t,e){this.elementRef=t,this.renderer=e}return t.prototype.ngAfterViewInit=function(){_(this.listId)&&this.renderer.setAttribute(this.elementRef.nativeElement,"list",this.listId)},t.decorators=[{type:n.Directive,args:[{selector:"[dynamicList]"}]}],t.ctorParameters=function(){return[{type:n.ElementRef},{type:n.Renderer2}]},t.propDecorators={listId:[{type:n.Input,args:["dynamicList"]}]},t}();var Z={Start:"START",End:"END"},tt=function(){function t(t){this.templateRef=t,this.align=Z.End,this.as=null}return t.decorators=[{type:n.Directive,args:[{selector:"ng-template[modelId],ng-template[modelType]"}]}],t.ctorParameters=function(){return[{type:n.TemplateRef}]},t.propDecorators={align:[{type:n.Input}],as:[{type:n.Input}],index:[{type:n.Input}],modelId:[{type:n.Input}],modelType:[{type:n.Input}]},t}();var et=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.format=e.format||null,r.max=e.max||null,r.min=e.min||null,r.placeholder=e.placeholder||null,r}return p(e,t),u([T(),c("design:type",String)],e.prototype,"format",void 0),u([T(),c("design:type",Object)],e.prototype,"max",void 0),u([T(),c("design:type",Object)],e.prototype,"min",void 0),u([T(),c("design:type",String)],e.prototype,"placeholder",void 0),e}(R);var ot=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.multiple=!!h(e.multiple)&&e.multiple,r}return p(e,t),u([T(),c("design:type",Boolean)],e.prototype,"multiple",void 0),e}(R);var rt=function(){function t(t){this.disabled=!!h(t.disabled)&&t.disabled,this.label=t.label||null,this.value=t.value}return Object.defineProperty(t.prototype,"text",{get:function(){return this.label},set:function(t){this.label=t},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){return F(this)},u([T(),c("design:type",Boolean)],t.prototype,"disabled",void 0),u([T(),c("design:type",String)],t.prototype,"label",void 0),u([T(),c("design:type",Object)],t.prototype,"value",void 0),t}();var nt=function(t){function o(e,o){var r=t.call(this,e,o)||this;return r._options=[],r.options=e.options,r}return p(o,t),o.prototype.updateOptions$=function(){this.options$=e.of(this.options)},Object.defineProperty(o.prototype,"options",{get:function(){return this._options},set:function(t){var o=this;Array.isArray(t)?(this._options=t.map(function(t){return new rt(t)}),this.updateOptions$()):e.isObservable(t)?this.options$=t.pipe(r.map(function(t){return o._options=t.map(function(t){return new rt(t)}),o._options})):this.updateOptions$()},enumerable:!0,configurable:!0}),o.prototype.add=function(t){return this.insert(this.options.length,t)},o.prototype.get=function(t){return this.options[t]},o.prototype.insert=function(t,e){var o=new rt(e);return this.options.splice(t,0,o),this.updateOptions$(),o},o.prototype.remove=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];e.forEach(function(e){return t.options.splice(e,1)}),this.updateOptions$()},u([T("options"),c("design:type",Array)],o.prototype,"_options",void 0),o}(R);var it="GROUP";var at=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.group=[],r.type=it,r.group=Array.isArray(e.group)?e.group:[],r.legend=e.legend||null,r}return p(e,t),e.prototype.get=function(t){return this.group[t]},e.prototype.set=function(t,e){this.group[t]=e},e.prototype.add=function(t){this.group.push(t)},e.prototype.insert=function(t,e){this.group.splice(t,0,e)},e.prototype.move=function(t,e){var o;(o=this.group).splice.apply(o,f([t+e,0],this.group.splice(t,1)))},e.prototype.remove=function(t){this.group.splice(t,1)},e.prototype.size=function(){return this.group.length},u([T(),c("design:type",Array)],e.prototype,"group",void 0),u([T(),c("design:type",String)],e.prototype,"legend",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(D);var st="CHECKBOX_GROUP",pt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=st,r}return p(e,t),e.prototype.check=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];e.forEach(function(e){return t.group[e].checked=!0})},e.prototype.uncheck=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];e.forEach(function(e){return t.group[e].checked=!1})},e.prototype.checkAll=function(){this.group.forEach(function(t){return t.checked=!0})},e.prototype.uncheckAll=function(){this.group.forEach(function(t){return t.checked=!1})},u([T(),c("design:type",Array)],e.prototype,"group",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(at);var lt="COLORPICKER";var ut=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=lt,r.format=_(e.format)?e.format:null,r.inline=!!h(e.inline)&&e.inline,r}return p(e,t),u([T(),c("design:type",String)],e.prototype,"format",void 0),u([T(),c("design:type",Boolean)],e.prototype,"inline",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(R);var ct="DATEPICKER";var dt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=ct,r.autoFocus=!!h(e.autoFocus)&&e.autoFocus,r.focusedDate=e.focusedDate||null,r.inline=!!h(e.inline)&&e.inline,r.prefix=e.prefix||null,r.readOnly=!!h(e.readOnly)&&e.readOnly,r.toggleIcon=_(e.toggleIcon)?e.toggleIcon:null,r.toggleLabel=_(e.toggleLabel)?e.toggleLabel:null,r.suffix=e.suffix||null,r}return p(e,t),u([T(),c("design:type",Boolean)],e.prototype,"autoFocus",void 0),u([T(),c("design:type",Object)],e.prototype,"focusedDate",void 0),u([T(),c("design:type",Boolean)],e.prototype,"inline",void 0),u([T(),c("design:type",String)],e.prototype,"prefix",void 0),u([T(),c("design:type",Boolean)],e.prototype,"readOnly",void 0),u([T(),c("design:type",String)],e.prototype,"suffix",void 0),u([T(),c("design:type",String)],e.prototype,"toggleIcon",void 0),u([T(),c("design:type",String)],e.prototype,"toggleLabel",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(et);var yt="EDITOR";var ft=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=yt,r}return p(e,t),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(B);var ht="FILE_UPLOAD";var mt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=ht,r.accept=Array.isArray(e.accept)?e.accept:null,r.autoUpload=!h(e.autoUpload)||e.autoUpload,r.maxSize=g(e.maxSize)?e.maxSize:null,r.minSize=g(e.minSize)?e.minSize:null,r.removeUrl=e.removeUrl||null,r.showFileList=!h(e.showFileList)||e.showFileList,r.url=e.url||null,r}return p(e,t),u([T(),c("design:type",Array)],e.prototype,"accept",void 0),u([T(),c("design:type",Boolean)],e.prototype,"autoUpload",void 0),u([T(),c("design:type",Number)],e.prototype,"maxSize",void 0),u([T(),c("design:type",Number)],e.prototype,"minSize",void 0),u([T(),c("design:type",String)],e.prototype,"removeUrl",void 0),u([T(),c("design:type",Boolean)],e.prototype,"showFileList",void 0),u([T(),c("design:type",String)],e.prototype,"url",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(ot);var gt="RADIO_GROUP";var vt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=gt,r.legend=e.legend||null,r}return p(e,t),e.prototype.select=function(t){this.value=this.get(t).value},u([T(),c("design:type",String)],e.prototype,"legend",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(nt);var _t="RATING";var Ot=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=_t,r.max=g(e.max)?e.max:10,r}return p(e,t),u([T(),c("design:type",Number)],e.prototype,"max",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(R);var At="SELECT";var It=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=At,r.compareWithFn=m(e.compareWithFn)?e.compareWithFn:n.ɵlooseIdentical,r.filterable=!!h(e.filterable)&&e.filterable,r.multiple=!!h(e.multiple)&&e.multiple,r.placeholder=e.placeholder||"",r.prefix=e.prefix||null,r.suffix=e.suffix||null,r}return p(e,t),e.prototype.select=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];this.value=this.multiple?e.map(function(e){return t.get(e).value}):this.get(e[0]).value},u([T(),c("design:type",Boolean)],e.prototype,"filterable",void 0),u([T(),c("design:type",Boolean)],e.prototype,"multiple",void 0),u([T(),c("design:type",String)],e.prototype,"placeholder",void 0),u([T(),c("design:type",String)],e.prototype,"prefix",void 0),u([T(),c("design:type",String)],e.prototype,"suffix",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(nt);var bt="SLIDER";var Lt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=bt,r.max=g(e.max)?e.max:10,r.min=g(e.min)?e.min:0,r.step=g(e.step)?e.step:1,r.vertical=!!h(e.vertical)&&e.vertical,r}return p(e,t),u([T(),c("design:type",Number)],e.prototype,"max",void 0),u([T(),c("design:type",Number)],e.prototype,"min",void 0),u([T(),c("design:type",Number)],e.prototype,"step",void 0),u([T(),c("design:type",Boolean)],e.prototype,"vertical",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(R);var Et="SWITCH";var Tt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=Et,r.offLabel=e.offLabel||null,r.onLabel=e.onLabel||null,r}return p(e,t),u([T(),c("design:type",String)],e.prototype,"offLabel",void 0),u([T(),c("design:type",String)],e.prototype,"onLabel",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(P);var Ct="TEXTAREA",Ft="soft";var Dt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=Ct,r.cols=g(e.cols)?e.cols:20,r.rows=g(e.rows)?e.rows:2,r.wrap=e.wrap||Ft,r}return p(e,t),u([T(),c("design:type",Number)],e.prototype,"cols",void 0),u([T(),c("design:type",Number)],e.prototype,"rows",void 0),u([T(),c("design:type",String)],e.prototype,"wrap",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(B);var Rt="TIMEPICKER";var Nt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=Rt,r.meridian=!!h(e.meridian)&&e.meridian,r.showSeconds=!!h(e.showSeconds)&&e.showSeconds,r}return p(e,t),u([T(),c("design:type",Boolean)],e.prototype,"meridian",void 0),u([T(),c("design:type",Boolean)],e.prototype,"showSeconds",void 0),u([T(),c("design:type",String)],e.prototype,"type",void 0),e}(et);var St=new n.InjectionToken("DYNAMIC_VALIDATORS"),Mt=function(){function t(t,e,o){this.VALIDATORS=t,this.ASYNC_VALIDATORS=e,this.DYNAMIC_VALIDATORS_MAP=o}return t.prototype.getValidatorFn=function(t,e,o){var r;if(void 0===e&&(e=null),void 0===o&&(o=this.VALIDATORS),i.Validators.hasOwnProperty(t)?r=i.Validators[t]:this.DYNAMIC_VALIDATORS_MAP&&this.DYNAMIC_VALIDATORS_MAP.has(t)?r=this.DYNAMIC_VALIDATORS_MAP.get(t):o&&(r=o.find(function(e){return e.name===t})),void 0===r)throw new Error('validator "'+t+'" is not provided via NG_VALIDATORS, NG_ASYNC_VALIDATORS or DYNAMIC_FORM_VALIDATORS');return null!==e?r(e):r},t.prototype.getValidatorFns=function(t,e){var o=this;void 0===e&&(e=this.VALIDATORS);var r=[];return v(t)&&(r=Object.keys(t).map(function(r){var n=t[r];if(o.isValidatorDescriptor(n)){var i=n;return o.getValidatorFn(i.name,i.args,e)}return o.getValidatorFn(r,n,e)})),r},t.prototype.parseErrorMessageConfig=function(t,e,o){return void 0===o&&(o=null),t.replace(/{{\s*(.+?)\s*}}/gm,function(t,r){var n=e,i=r;return r.indexOf("validator.")>=0&&o&&(n=o,i=r.replace("validator.","")),null!==n[i]&&void 0!==n[i]?n[i]:null})},t.prototype.getValidator=function(t,e){return void 0===e&&(e=null),this.getValidatorFn(t,e)},t.prototype.getAsyncValidator=function(t,e){return void 0===e&&(e=null),this.getValidatorFn(t,e,this.ASYNC_VALIDATORS)},t.prototype.getValidators=function(t){return this.getValidatorFns(t)},t.prototype.getAsyncValidators=function(t){return this.getValidatorFns(t,this.ASYNC_VALIDATORS)},t.prototype.updateValidators=function(t,e,o){o.validators=t,null===t?e.clearValidators():e.setValidators(this.getValidators(t)),e.updateValueAndValidity()},t.prototype.updateAsyncValidators=function(t,e,o){o.asyncValidators=t,null===t?e.clearAsyncValidators():e.setAsyncValidators(this.getAsyncValidators(t)),e.updateValueAndValidity()},t.prototype.createErrorMessages=function(t,e){var o=this,r=[];if(e.hasErrorMessages){var n=e.errorMessages;Object.keys(t.errors||{}).forEach(function(i){var a=i;if("minlength"!==i&&"maxlength"!==i||(a=a.replace("length","Length")),n.hasOwnProperty(a)){var s=t.getError(i),p=n[a];r.push(o.parseErrorMessageConfig(p,e,s))}})}return r},t.prototype.isFormHook=function(t){return _(t)&&-1!==["blur","change","submit"].indexOf(t)},t.prototype.isValidatorDescriptor=function(t){return!!v(t)&&(t.hasOwnProperty("name")&&t.hasOwnProperty("args"))},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Array,decorators:[{type:n.Optional},{type:n.Inject,args:[i.NG_VALIDATORS]}]},{type:Array,decorators:[{type:n.Optional},{type:n.Inject,args:[i.NG_ASYNC_VALIDATORS]}]},{type:Map,decorators:[{type:n.Optional},{type:n.Inject,args:[St]}]}]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(i.NG_VALIDATORS,8),n.ɵɵinject(i.NG_ASYNC_VALIDATORS,8),n.ɵɵinject(St,8))},token:t,providedIn:"root"}),t}();var Pt=function(){function t(t){this.validationService=t}return t.prototype.createAbstractControlOptions=function(t,e,o){return void 0===t&&(t=null),void 0===e&&(e=null),void 0===o&&(o=null),{asyncValidators:null!==e?this.validationService.getAsyncValidators(e):null,validators:null!==t?this.validationService.getValidators(t):null,updateOn:null!==o&&this.validationService.isFormHook(o)?o:"change"}},t.prototype.createFormArray=function(t){for(var e=[],o=this.createAbstractControlOptions(t.validators,t.asyncValidators,t.updateOn),r=0;r<t.size;r++){var n=t.get(r),a=this.createAbstractControlOptions(t.groupValidators,t.groupAsyncValidators,t.updateOn);e.push(this.createFormGroup(n.group,a,n))}return new i.FormArray(e,o)},t.prototype.createFormGroup=function(t,e,o){var r=this;void 0===e&&(e=null),void 0===o&&(o=null);var n={};return t.forEach(function(t){switch(t.parent=o,t.type){case S:n[t.id]=r.createFormArray(t);break;case it:case st:var e=t,a=r.createAbstractControlOptions(e.validators,e.asyncValidators,e.updateOn);n[t.id]=r.createFormGroup(e.group,a,e);break;default:var s=t,p={value:s.value,disabled:s.disabled},l=r.createAbstractControlOptions(s.validators,s.asyncValidators,s.updateOn);n[t.id]=new i.FormControl(p,l)}}),new i.FormGroup(n,e)},t.prototype.getPathSegment=function(t){return t instanceof N?t.index.toString():t.id},t.prototype.getPath=function(t,e){void 0===e&&(e=!1);for(var o=[this.getPathSegment(t)],r=t.parent;r;)o.unshift(this.getPathSegment(r)),r=r.parent;return e?o.join("."):o},t.prototype.addFormGroupControl=function(t,e){for(var o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];if(e instanceof at)this.insertFormGroupControl.apply(this,f([e.size(),t,e],o));else{var n=e;this.insertFormGroupControl.apply(this,f([n.length,t,n],o))}},t.prototype.moveFormGroupControl=function(t,e,o){if(o instanceof at)o.move(t,e);else{var r=o;r.splice.apply(r,f([t+e,0],r.splice(t,1)))}},t.prototype.insertFormGroupControl=function(t,e,o){for(var r=[],n=3;n<arguments.length;n++)r[n-3]=arguments[n];var i=o instanceof at?o:null,a=this.createFormGroup(r,null,i).controls;Object.keys(a).forEach(function(n,i){var s=r[i];o instanceof at?o.insert(t,s):o.splice(t,0,s),e.addControl(n,a[n])})},t.prototype.removeFormGroupControl=function(t,e,o){o instanceof at?(e.removeControl(o.get(t).id),o.remove(t)):(e.removeControl(o[t].id),o.splice(t,1))},t.prototype.addFormArrayGroup=function(t,e){var o=e.addGroup();t.push(this.createFormGroup(o.group,null,o))},t.prototype.insertFormArrayGroup=function(t,e,o){var r=o.insertGroup(t);e.insert(t,this.createFormGroup(r.group,null,r))},t.prototype.moveFormArrayGroup=function(t,e,o,r){var n=t+e,i=e>=0;if(!(t>=0&&t<r.size&&n>=0&&n<r.size))throw new Error("form array group cannot be moved due to index or new index being out of bounds");for(var a=[],s=i?t:n;s<=(i?n:t);s++)a.push(o.at(s));a.forEach(function(e,r){var s;s=i?0===r?n:t+r-1:r===a.length-1?n:n+r+1,o.setControl(s,e)}),r.moveGroup(t,e)},t.prototype.removeFormArrayGroup=function(t,e,o){e.removeAt(t),o.removeGroup(t)},t.prototype.clearFormArray=function(t,e){t.clear(),e.clear()},t.prototype.findById=function(t,e){var o=null,r=function(t,e){var n,i;try{for(var a=d(e),s=a.next();!s.done;s=a.next()){var p=s.value;if(p.id===t){o=p;break}p instanceof at&&r(t,p.group)}}catch(t){n={error:t}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}};return r(t,e),o},t.prototype.findModelById=function(t,e){return this.findById(t,e)},t.prototype.findControlByModel=function(t,e){return e.root.get(this.getPath(t,!0))},t.prototype.fromJSON=function(t){var e=this,o=_(t)?JSON.parse(t,$):t,r=[];return o.forEach(function(t){var o=t.layout||null;switch(t.type){case S:var n=t;Array.isArray(n.groups)&&n.groups.forEach(function(t){t.group=e.fromJSON(t.group)}),n.groupFactory=function(){return e.fromJSON(n.groupPrototype)},r.push(new M(t,o));break;case x:r.push(new U(t,o));break;case st:t.group=e.fromJSON(t.group),r.push(new pt(t,o));break;case lt:r.push(new ut(t,o));break;case ct:r.push(new dt(t,o));break;case yt:r.push(new ft(t,o));break;case ht:t.value=null,r.push(new mt(t,o));break;case it:t.group=e.fromJSON(t.group),r.push(new at(t,o));break;case K:var i=t;null!==i.mask&&(i.mask instanceof Function||(i.mask=H(i.mask))),r.push(new X(t,o));break;case gt:r.push(new vt(t,o));break;case _t:r.push(new Ot(t,o));break;case At:r.push(new It(t,o));break;case bt:r.push(new Lt(t,o));break;case Et:r.push(new Tt(t,o));break;case Ct:r.push(new Dt(t,o));break;case Rt:r.push(new Nt(t,o));break;default:throw new Error('unknown form control model type defined on JSON object with id "'+t.id+'"')}}),r},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Mt}]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(Mt))},token:t,providedIn:"root"}),t}();var xt=new n.InjectionToken("DYNAMIC_FORM_CONTROL_MAP_FN"),Ut=function(){function t(t){this.DYNAMIC_FORM_CONTROL_MAP_FN=t,this.componentRefs={},this.DYNAMIC_FORM_CONTROL_MAP_FN=t}return t.prototype.getFormControlRef=function(t,e){var o=this.componentRefs[t];return g(e)?Array.isArray(o)?o[e]:void 0:o},t.prototype.registerFormControlRef=function(t,e,o){if(g(o)){var r=this.componentRefs[t.id]||[];Array.isArray(r)?(r.splice(o,0,e),this.componentRefs[t.id]=r):console.warn("registerFormControlRef is called with index for a non-array form control: "+t.id)}else this.componentRefs[t.id]=e},t.prototype.unregisterFormControlRef=function(t,e){var o=this.componentRefs[t];g(e)?Array.isArray(o)&&void 0!==o[e]&&o.splice(e,1):void 0!==o&&delete this.componentRefs[t]},t.prototype.getCustomComponentType=function(t){return m(this.DYNAMIC_FORM_CONTROL_MAP_FN)?this.DYNAMIC_FORM_CONTROL_MAP_FN(t):null},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[xt]},{type:n.Optional}]}]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(xt,8))},token:t,providedIn:"root"}),t}();var wt=function(){function t(){}return t.prototype.findById=function(t,e){var o,r;if(v(e))try{for(var n=d(Object.keys(e)),i=n.next();!i.done;i=n.next()){var a=i.value;if(a===t)return e[a]}}catch(t){o={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return null},t.prototype.findByModel=function(t,e){var o,r,n=null;if(v(e)){var i=function(o){o.split(",").forEach(function(r){var i=r.trim();i!==t.id&&i!==t.type||(n=e[o])})};try{for(var a=d(Object.keys(e)),s=a.next();!s.done;s=a.next()){i(s.value)}}catch(t){o={error:t}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}}return n},t.prototype.filterTemplatesByModel=function(t,e){var o=function(e){return e.modelId===t.id||e.modelType===t.type};return e instanceof n.QueryList?e.filter(o):Array.isArray(e)?e.filter(o):[]},t.prototype.getAlignedTemplate=function(t,e,o){return this.filterTemplatesByModel(t,e).find(function(t){return null===t.as&&t.align===o})},t.prototype.getStartTemplate=function(t,e){return this.getAlignedTemplate(t,e,Z.Start)},t.prototype.getEndTemplate=function(t,e){return this.getAlignedTemplate(t,e,Z.End)},t.prototype.getClass=function(t,e,o){if(null!==t&&t.hasOwnProperty(e)){var r=t[e];if(r.hasOwnProperty(o))return r[o]}return""},t.prototype.getElementId=function(t){for(var e=t.id,o=t.parent;null!==o;){if(o instanceof N){e=o.context.id+"-"+o.index+"-"+t.id;break}o=o.parent}return e},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();var jt=new n.InjectionToken("DYNAMIC_MATCHERS"),Yt={match:"DISABLED",opposingMatch:"ENABLED",onChange:function(t,e){e.disabled=t}},Vt={match:"HIDDEN",opposingMatch:"VISIBLE",onChange:function(t,e){e.hidden=t}},kt={match:"REQUIRED",opposingMatch:"OPTIONAL",onChange:function(t,e,o,r){var n=null;t?n=v(e.validators)?l({},e.validators,{required:null}):{required:null}:v(e.validators)&&(delete e.validators.required,n=l({},e.validators)),r.get(Mt).updateValidators(n,o,e)}},Bt={provide:jt,useValue:Yt,multi:!0},Gt={provide:jt,useValue:Vt,multi:!0},Ht={provide:jt,useValue:kt,multi:!0},$t=[Bt,Gt,Ht],Kt=function(){function t(t,e){this.MATCHERS=t,this.injector=e}return t.prototype.getRelatedFormControls=function(t,e){var o=function(t,o){var r=o.rootPath||o.id;if(!t.hasOwnProperty(r)){var n=o.rootPath?e.root.get(o.rootPath):e.get(o.id);n instanceof i.FormControl?t[r]=n:console.warn("No related form control with id "+o.id+" could be found")}return t};return t.relations.reduce(function(t,e){return e.when.reduce(o,t)},{})},t.prototype.findRelationByMatcher=function(t,e){return t.find(function(t){return[e.match,e.opposingMatch].includes(t.match)})},t.prototype.matchesCondition=function(t,e,o){var r=t.operator||"OR";return t.when.reduce(function(n,i,a){var s,p,l,u=i.rootPath||i.id;try{for(var c=d(Object.entries(e)),f=c.next();!f.done;f=c.next()){var h=y(f.value,2),m=h[0],g=h[1];if(m===u){l=g;break}}}catch(t){s={error:t}}finally{try{f&&!f.done&&(p=c.return)&&p.call(c)}finally{if(s)throw s.error}}return l&&t.match===o.match?!(a>0&&"AND"===r&&!n)&&(!!(a>0&&"OR"===r&&n)||(i.value===l.value||i.status===l.status)):!(!l||t.match!==o.opposingMatch)&&(!!(a>0&&"AND"===r&&n)||!(a>0&&"OR"===r&&!n)&&!(i.value===l.value||i.status===l.status))},!1)},t.prototype.subscribeRelations=function(t,o,n){var i=this,a=this.getRelatedFormControls(t,o),s=[];return Object.values(a).forEach(function(o){var p=o.valueChanges.pipe(r.startWith(o.value)),l=o.statusChanges.pipe(r.startWith(o.status));s.push(e.merge(p,l).subscribe(function(){i.MATCHERS.forEach(function(e){var o=i.findRelationByMatcher(t.relations,e);if(void 0!==o){var r=i.matchesCondition(o,a,e);e.onChange(r,t,n,i.injector)}})}))}),s},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Array,decorators:[{type:n.Optional},{type:n.Inject,args:[jt]}]},{type:n.Injector}]},t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(jt,8),n.ɵɵinject(n.INJECTOR))},token:t,providedIn:"root"}),t}();var zt=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[Pt,wt,Mt,Ut,Kt]}},t.decorators=[{type:n.NgModule,args:[{imports:[a.CommonModule,i.ReactiveFormsModule],declarations:[J,Q,tt],exports:[J,Q,tt]}]}],t}();t.AND_OPERATOR="AND",t.AUTOCOMPLETE_OFF="off",t.AUTOCOMPLETE_ON=w,t.AUTOFILL_FIELDS=V,t.AUTOFILL_FIELDS_CONTACT=k,t.AUTOFILL_FIELD_ADDITIONAL_NAME="additional-name",t.AUTOFILL_FIELD_ADDRESS_LEVEL_1="address-level1",t.AUTOFILL_FIELD_ADDRESS_LEVEL_2="address-level2",t.AUTOFILL_FIELD_ADDRESS_LEVEL_3="address-level3",t.AUTOFILL_FIELD_ADDRESS_LEVEL_4="address-level4",t.AUTOFILL_FIELD_ADDRESS_LINE_1="address-line1",t.AUTOFILL_FIELD_ADDRESS_LINE_2="address-line2",t.AUTOFILL_FIELD_ADDRESS_LINE_3="address-line3",t.AUTOFILL_FIELD_BDAY="bday",t.AUTOFILL_FIELD_BDAY_DAY="bday-day",t.AUTOFILL_FIELD_BDAY_MONTH="bday-month",t.AUTOFILL_FIELD_BDAY_YEAR="bday-year",t.AUTOFILL_FIELD_CC_ADDITIONAL_NAME="cc-additional-name",t.AUTOFILL_FIELD_CC_CSC="cc-csc",t.AUTOFILL_FIELD_CC_EXP="cc-exp",t.AUTOFILL_FIELD_CC_EXP_MONTH="cc-exp-month",t.AUTOFILL_FIELD_CC_EXP_YEAR="cc-exp-year",t.AUTOFILL_FIELD_CC_FAMILY_NAME="cc-family-name",t.AUTOFILL_FIELD_CC_GIVEN_NAME="cc-given-name",t.AUTOFILL_FIELD_CC_NAME="cc-name",t.AUTOFILL_FIELD_CC_NUMBER="cc-number",t.AUTOFILL_FIELD_CC_TYPE="cc-type",t.AUTOFILL_FIELD_COUNTRY="country",t.AUTOFILL_FIELD_COUNTRY_NAME="country-name",t.AUTOFILL_FIELD_CURRENT_PASSWORD="current-password",t.AUTOFILL_FIELD_EMAIL="email",t.AUTOFILL_FIELD_FAMILY_NAME="family-name",t.AUTOFILL_FIELD_GIVEN_NAME="given-name",t.AUTOFILL_FIELD_HONORIFIC_PREFIX="honorific-prefix",t.AUTOFILL_FIELD_HONORIFIC_SUFFIX="honorific-suffix",t.AUTOFILL_FIELD_IMPP="impp",t.AUTOFILL_FIELD_LANGUAGE="language",t.AUTOFILL_FIELD_NAME="name",t.AUTOFILL_FIELD_NEW_PASSWORD="new-password",t.AUTOFILL_FIELD_NICKNAME="nickname",t.AUTOFILL_FIELD_ORGANIZATION="organization",t.AUTOFILL_FIELD_ORGANIZATION_TITLE="organization-title",t.AUTOFILL_FIELD_PHOTO="photo",t.AUTOFILL_FIELD_POSTAL_CODE="postal-code",t.AUTOFILL_FIELD_SEX="sex",t.AUTOFILL_FIELD_STREET_ADDRESS="street-address",t.AUTOFILL_FIELD_TEL="tel",t.AUTOFILL_FIELD_TEL_AREA_CODE="tel-area-code",t.AUTOFILL_FIELD_TEL_COUNTRY_CODE="tel-country-code",t.AUTOFILL_FIELD_TEL_LOCAL="tel-local",t.AUTOFILL_FIELD_TEL_LOCAL_EXTENSION="tel-extension",t.AUTOFILL_FIELD_TEL_LOCAL_PREFIX="tel-local-prefix",t.AUTOFILL_FIELD_TEL_LOCAL_SUFFIX="tel-local-suffix",t.AUTOFILL_FIELD_TEL_NATIONAL="tel-national",t.AUTOFILL_FIELD_TRANSACTION_AMOUNT="transaction-amount",t.AUTOFILL_FIELD_TRANSACTION_CURRENCY="transaction-currency",t.AUTOFILL_FIELD_URL="url",t.AUTOFILL_FIELD_USERNAME="username",t.AUTOFILL_TOKENS_ADDRESS=j,t.AUTOFILL_TOKENS_CONTACT=Y,t.AUTOFILL_TOKEN_BILLING="billing",t.AUTOFILL_TOKEN_FAX="fax",t.AUTOFILL_TOKEN_HOME="home",t.AUTOFILL_TOKEN_MOBILE="mobile",t.AUTOFILL_TOKEN_PAGER="pager",t.AUTOFILL_TOKEN_SHIPPING="shipping",t.AUTOFILL_TOKEN_WORK="work",t.DISABLED_MATCHER=Bt,t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR="color",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE="date",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL="datetime-local",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL="email",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE="file",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH="month",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER="number",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD="password",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE="range",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH="search",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL="tel",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT=z,t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME="time",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL="url",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK="week",t.DYNAMIC_FORM_CONTROL_MAP_FN=xt,t.DYNAMIC_FORM_CONTROL_TYPE_ARRAY=S,t.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX=x,t.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP=st,t.DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER=lt,t.DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER=ct,t.DYNAMIC_FORM_CONTROL_TYPE_EDITOR=yt,t.DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD=ht,t.DYNAMIC_FORM_CONTROL_TYPE_GROUP=it,t.DYNAMIC_FORM_CONTROL_TYPE_INPUT=K,t.DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP=gt,t.DYNAMIC_FORM_CONTROL_TYPE_RATING=_t,t.DYNAMIC_FORM_CONTROL_TYPE_SELECT=At,t.DYNAMIC_FORM_CONTROL_TYPE_SLIDER=bt,t.DYNAMIC_FORM_CONTROL_TYPE_SWITCH=Et,t.DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA=Ct,t.DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER=Rt,t.DYNAMIC_FORM_TEXTAREA_WRAP_HARD="hard",t.DYNAMIC_FORM_TEXTAREA_WRAP_SOFT=Ft,t.DYNAMIC_MATCHERS=jt,t.DYNAMIC_MATCHER_PROVIDERS=$t,t.DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT=Z,t.DYNAMIC_VALIDATORS=St,t.DisabledMatcher=Yt,t.DynamicCheckControlModel=P,t.DynamicCheckboxGroupModel=pt,t.DynamicCheckboxModel=U,t.DynamicColorPickerModel=ut,t.DynamicDateControlModel=et,t.DynamicDatePickerModel=dt,t.DynamicEditorModel=ft,t.DynamicFileControlModel=ot,t.DynamicFileUploadModel=mt,t.DynamicFormArrayComponent=A,t.DynamicFormArrayGroupModel=N,t.DynamicFormArrayModel=M,t.DynamicFormComponent=L,t.DynamicFormComponentService=Ut,t.DynamicFormControlComponent=O,t.DynamicFormControlContainerComponent=W,t.DynamicFormControlEventType=I,t.DynamicFormControlModel=D,t.DynamicFormGroupModel=at,t.DynamicFormLayoutService=wt,t.DynamicFormOption=rt,t.DynamicFormRelationService=Kt,t.DynamicFormService=Pt,t.DynamicFormValidationService=Mt,t.DynamicFormValueControlModel=R,t.DynamicFormsCoreModule=zt,t.DynamicIdDirective=J,t.DynamicInputControlModel=B,t.DynamicInputModel=X,t.DynamicListDirective=Q,t.DynamicOptionControlModel=nt,t.DynamicRadioGroupModel=vt,t.DynamicRatingModel=Ot,t.DynamicSelectModel=It,t.DynamicSliderModel=Lt,t.DynamicSwitchModel=Tt,t.DynamicTemplateDirective=tt,t.DynamicTemplateableFormControlComponent=q,t.DynamicTextAreaModel=Dt,t.DynamicTimePickerModel=Nt,t.HIDDEN_MATCHER=Gt,t.HiddenMatcher=Vt,t.MATCH_DISABLED="DISABLED",t.MATCH_ENABLED="ENABLED",t.MATCH_HIDDEN="HIDDEN",t.MATCH_OPTIONAL="OPTIONAL",t.MATCH_REQUIRED="REQUIRED",t.MATCH_VISIBLE="VISIBLE",t.METADATA_KEY_SERIALIZABLE=E,t.OR_OPERATOR="OR",t.REQUIRED_MATCHER=Ht,t.RequiredMatcher=kt,t.getSerializables=C,t.isAddressToken=function(t){return j.indexOf(t)>-1},t.isBoolean=h,t.isContactField=function(t){return k.indexOf(t)>-1},t.isContactToken=function(t){return Y.indexOf(t)>-1},t.isDynamicFormControlEvent=b,t.isField=function(t){return V.indexOf(t)>-1},t.isFunction=m,t.isNumber=g,t.isObject=v,t.isSectionToken=function(t){return t.startsWith("section-")},t.isString=_,t.maskFromString=H,t.maskToString=G,t.parseReviver=$,t.serializable=T,t.serialize=F,t.validate=function(t){var e=function(t,e){return t+"|"+e},o=j.reduce(e),r=Y.reduce(e),n=V.reduce(e),i=k.reduce(e);return new RegExp("^(section-\\w+\\s{1})?(("+o+"){1}\\s)?(("+n+"){1}|(("+r+"){1}\\s{1}("+i+")))$").test(t)},Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("reflect-metadata"),require("rxjs/operators"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("@ng-dynamic-forms/core",["exports","@angular/core","rxjs","reflect-metadata","rxjs/operators","@angular/forms","@angular/common"],e):e(((t=t||self).ngDynamicForms=t.ngDynamicForms||{},t.ngDynamicForms.core={}),t.ng.core,t.rxjs,null,t.rxjs.operators,t.ng.forms,t.ng.common)}(this,function(t,e,o,r,n,i,a){"use strict";var s=function(t,e){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)};function p(t,e){function o(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}var l=function(){return(l=Object.assign||function(t){for(var e,o=1,r=arguments.length;o<r;o++)for(var n in e=arguments[o])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)};function u(t,e,o,r){var n,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,r);else for(var s=t.length-1;s>=0;s--)(n=t[s])&&(a=(i<3?n(a):i>3?n(e,o,a):n(e,o))||a);return i>3&&a&&Object.defineProperty(e,o,a),a}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function d(t){var e="function"==typeof Symbol&&t[Symbol.iterator],o=0;return e?e.call(t):{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}}}function y(t,e){var o="function"==typeof Symbol&&t[Symbol.iterator];if(!o)return t;var r,n,i=o.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(t){n={error:t}}finally{try{r&&!r.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return a}function f(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(y(arguments[e]));return t}function h(t){return"boolean"==typeof t}function m(t){return"function"==typeof t}function g(t){return"number"==typeof t}function v(t){return"object"==typeof t&&null!==t}function _(t){return"string"==typeof t}var O=function(){function t(t,e){this.layoutService=t,this.validationService=e,this._hasFocus=!1}return Object.defineProperty(t.prototype,"control",{get:function(){var t=this.group.get(this.model.id);if(null===t)throw new Error("form group does not contain an abstract control with id "+this.model.id);return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this.layoutService.getElementId(this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errorMessages",{get:function(){return this.validationService.createErrorMessages(this.control,this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"showErrorMessages",{get:function(){return this.model.hasErrorMessages&&this.control.touched&&!this.hasFocus&&this.isInvalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasFocus",{get:function(){return this._hasFocus},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return this.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isValid",{get:function(){return this.control.valid},enumerable:!0,configurable:!0}),t.prototype.getClass=function(t,e,o){void 0===o&&(o=this.model);var r=o===this.model?this.layout:this.layoutService.findByModel(o,this.formLayout)||o.layout;return this.layoutService.getClass(r,t,e)},t.prototype.onBlur=function(t){t instanceof Event&&t.stopPropagation(),this._hasFocus=!1,this.blur.emit(t)},t.prototype.onChange=function(t){t instanceof Event&&t.stopPropagation(),this.change.emit(t)},t.prototype.onCustomEvent=function(t,e,o){void 0===e&&(e=null),void 0===o&&(o=!1),o?this.customEvent.emit(t):_(e)&&this.customEvent.emit({customEvent:t,customEventType:e})},t.prototype.onFocus=function(t){t instanceof Event&&t.stopPropagation(),this._hasFocus=!0,this.focus.emit(t)},t}();var A=function(t){function o(){return null!==t&&t.apply(this,arguments)||this}return p(o,t),Object.defineProperty(o.prototype,"array",{get:function(){return this.control},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"startTemplate",{get:function(){return this.layoutService.getStartTemplate(this.model,this.templates)},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"endTemplate",{get:function(){return this.layoutService.getEndTemplate(this.model,this.templates)},enumerable:!0,configurable:!0}),o.prototype.markForCheck=function(){this.components instanceof e.QueryList&&this.components.forEach(function(t){return t.markForCheck()})},o}(O);var I=function(t){function o(){return null!==t&&t.apply(this,arguments)||this}return p(o,t),o.prototype.markForCheck=function(){this.components instanceof e.QueryList&&this.components.forEach(function(t){return t.markForCheck()})},o}(O);var L=function(){function t(t,e){this.changeDetectorRef=t,this.componentService=e}return t.prototype.ngOnInit=function(){this.componentService.registerForm(this)},t.prototype.ngOnDestroy=function(){this.componentService.unregisterForm(this)},t.prototype.trackByFn=function(t,e){return e.id},t.prototype.markForCheck=function(){this.changeDetectorRef.markForCheck(),this.components instanceof e.QueryList&&this.components.forEach(function(t){return t.markForCheck()})},t.prototype.detectChanges=function(){this.changeDetectorRef.detectChanges()},t.prototype.onBlur=function(t){this.blur.emit(t)},t.prototype.onChange=function(t){this.change.emit(t)},t.prototype.onFocus=function(t){this.focus.emit(t)},t.prototype.onCustomEvent=function(t,e){e.emit(t)},t}();var E={Blur:"blur",Change:"change",Focus:"focus"};function C(t){return v(t)&&t.hasOwnProperty("$event")}var b="SERIALIZABLE";function F(t){return function(e,o){Reflect.defineMetadata(b,{key:o,name:t||o},e,o)}}function T(t){var e=[];for(var o in t){var r=Reflect.getMetadata(b,t,o);r&&e.push(r)}return e}function D(t,e){return T(e||t).reduce(function(e,o){return e[o.name]=t[o.key],e},{})}var R=function(){function t(t,e){var r=this;void 0===e&&(e=null),this.parent=null,this.asyncValidators=t.asyncValidators||null,this.errorMessages=t.errorMessages||null,this.hidden=!!h(t.hidden)&&t.hidden,this.id=t.id,this.label=t.label||null,this.labelTooltip=t.labelTooltip||null,this.controlTooltip=t.controlTooltip||null,this.layout=e,this.name=t.name||t.id,this.relations=Array.isArray(t.relations)?t.relations:[],this.updateOn=_(t.updateOn)?t.updateOn:null,this.validators=t.validators||null,this.disabled$=new o.BehaviorSubject(!!h(t.disabled)&&t.disabled),this.disabled$.subscribe(function(t){return r._disabled=t}),this.disabledChanges=this.disabled$.asObservable()}return Object.defineProperty(t.prototype,"disabled",{get:function(){return this.disabled$.getValue()},set:function(t){this.disabled$.next(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasErrorMessages",{get:function(){return v(this.errorMessages)},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){return D(this)},u([F(),c("design:type",Object)],t.prototype,"asyncValidators",void 0),u([F("disabled"),c("design:type",Boolean)],t.prototype,"_disabled",void 0),u([F(),c("design:type",Object)],t.prototype,"errorMessages",void 0),u([F(),c("design:type",Boolean)],t.prototype,"hidden",void 0),u([F(),c("design:type",String)],t.prototype,"id",void 0),u([F(),c("design:type",String)],t.prototype,"label",void 0),u([F(),c("design:type",String)],t.prototype,"labelTooltip",void 0),u([F(),c("design:type",String)],t.prototype,"controlTooltip",void 0),u([F(),c("design:type",Object)],t.prototype,"layout",void 0),u([F(),c("design:type",String)],t.prototype,"name",void 0),u([F(),c("design:type",Array)],t.prototype,"relations",void 0),u([F(),c("design:type",String)],t.prototype,"updateOn",void 0),u([F(),c("design:type",Object)],t.prototype,"validators",void 0),t}();var N=function(t){function e(e,r){var n=t.call(this,e,r)||this;return n.additional=v(e.additional)?e.additional:null,n.hint=e.hint||null,n.required=!!h(e.required)&&e.required,n.tabIndex=e.tabIndex||null,n.value$=new o.BehaviorSubject(null!==e.value&&void 0!==e.value?e.value:null),n.value$.subscribe(function(t){return n._value=t}),n.valueChanges=n.value$.asObservable(),n}return p(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.value$.getValue()},set:function(t){this.value$.next(t)},enumerable:!0,configurable:!0}),e.prototype.getAdditional=function(t,e){return null!==this.additional&&this.additional.hasOwnProperty(t)?this.additional[t]:e},u([F(),c("design:type",Object)],e.prototype,"additional",void 0),u([F(),c("design:type",String)],e.prototype,"hint",void 0),u([F(),c("design:type",Boolean)],e.prototype,"required",void 0),u([F(),c("design:type",Number)],e.prototype,"tabIndex",void 0),u([F("value"),c("design:type",Object)],e.prototype,"_value",void 0),e}(R);var S=function(){function t(t,e,o){void 0===e&&(e=[]),void 0===o&&(o=-1),this.$implicit=this,this.context=t,this.group=e,this.index=o}return Object.defineProperty(t.prototype,"parent",{get:function(){return this.context},enumerable:!0,configurable:!0}),t.prototype.get=function(t){return this.group[t]},t.prototype.toJSON=function(){return D(this)},u([F(),c("design:type",Array)],t.prototype,"group",void 0),u([F(),c("design:type",Number)],t.prototype,"index",void 0),t}();var M="ARRAY";var P=function(t){function e(e,o){var r=t.call(this,e,o)||this;if(r.groups=[],r.type=M,!m(e.groupFactory))throw new Error("group factory function must be specified for DynamicFormArrayModel");if(r.groupFactory=e.groupFactory,r.groupAsyncValidators=e.groupAsyncValidators||null,r.groupPrototype=r.groupFactory(),r.groupValidators=e.groupValidators||null,r.initialCount=g(e.initialCount)?e.initialCount:1,Array.isArray(e.groups))e.groups.forEach(function(t,e){r.groups.push(new S(r,t.group,t.index||e))});else for(var n=0;n<r.initialCount;n++)r.addGroup();return r}return p(e,t),e.prototype.updateGroupIndex=function(){this.groups.forEach(function(t,e){return t.index=e})},Object.defineProperty(e.prototype,"size",{get:function(){return this.groups.length},enumerable:!0,configurable:!0}),e.prototype.get=function(t){return this.groups[t]},e.prototype.addGroup=function(){return this.insertGroup(this.groups.length)},e.prototype.insertGroup=function(t){var e=new S(this,this.groupFactory());return this.groups.splice(t,0,e),this.updateGroupIndex(),e},e.prototype.moveGroup=function(t,e){var o;(o=this.groups).splice.apply(o,f([t+e,0],this.groups.splice(t,1))),this.updateGroupIndex()},e.prototype.removeGroup=function(t){this.groups.splice(t,1),this.updateGroupIndex()},e.prototype.clear=function(){this.groups.splice(0),this.updateGroupIndex()},u([F(),c("design:type",Object)],e.prototype,"groupAsyncValidators",void 0),u([F(),c("design:type",Object)],e.prototype,"groupValidators",void 0),u([F(),c("design:type",Array)],e.prototype,"groups",void 0),u([F(),c("design:type",Number)],e.prototype,"initialCount",void 0),u([F(),c("design:type",Array)],e.prototype,"groupPrototype",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(R);var x=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.labelPosition=e.labelPosition||null,r.checked=!!h(r.value)&&r.value,r}return p(e,t),Object.defineProperty(e.prototype,"checked",{get:function(){return this.value},set:function(t){this.value=t},enumerable:!0,configurable:!0}),e.prototype.toggle=function(){this.checked=!this.checked},u([F(),c("design:type",String)],e.prototype,"labelPosition",void 0),e}(N);var U="CHECKBOX";var j=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=U,r.indeterminate=!!h(e.indeterminate)&&e.indeterminate,r}return p(e,t),u([F(),c("design:type",Boolean)],e.prototype,"indeterminate",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(x);var w=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.autoComplete=e.autoComplete||"on",r.autoFocus=!!h(e.autoFocus)&&e.autoFocus,r.maxLength=g(e.maxLength)?e.maxLength:null,r.minLength=g(e.minLength)?e.minLength:null,r.placeholder=e.placeholder||"",r.prefix=e.prefix||null,r.readOnly=!!h(e.readOnly)&&e.readOnly,r.spellCheck=!!h(e.spellCheck)&&e.spellCheck,r.suffix=e.suffix||null,r}return p(e,t),u([F(),c("design:type",String)],e.prototype,"autoComplete",void 0),u([F(),c("design:type",Boolean)],e.prototype,"autoFocus",void 0),u([F(),c("design:type",Number)],e.prototype,"maxLength",void 0),u([F(),c("design:type",Number)],e.prototype,"minLength",void 0),u([F(),c("design:type",String)],e.prototype,"placeholder",void 0),u([F(),c("design:type",String)],e.prototype,"prefix",void 0),u([F(),c("design:type",Boolean)],e.prototype,"readOnly",void 0),u([F(),c("design:type",Boolean)],e.prototype,"spellCheck",void 0),u([F(),c("design:type",String)],e.prototype,"suffix",void 0),e}(N);function k(t){return _(t)?t:t instanceof RegExp?t.toString():Array.isArray(t)?t.map(function(t){return k(t)}):null}function Y(t){return _(t)?t.startsWith("/")&&t.endsWith("/")?new RegExp(t.slice(1,t.length-1)):t:Array.isArray(t)?t.map(function(t){return Y(t)}):null}function V(t,e){return _(e)&&/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|([+\-])([\d|:]*))?$/.test(e)?new Date(e):e}var B="INPUT",G="text";var H=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.files=null,r.list$=null,r._list=null,r._listId=null,r.type=B,r.accept=e.accept||null,r.inputType=e.inputType||G,r.mask=e.mask||null,r.max=void 0!==e.max?e.max:null,r.min=void 0!==e.min?e.min:null,r.multiple=h(e.multiple)?e.multiple:null,r.pattern=e.pattern||null,r.step=g(e.step)?e.step:null,void 0!==e.list&&(r.list=e.list,r._listId=r.id+"List"),r}return p(e,t),Object.defineProperty(e.prototype,"listId",{get:function(){return this._listId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasList",{get:function(){return o.isObservable(this.list$)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"list",{set:function(t){var e=this;Array.isArray(t)?(this._list=t,this.list$=o.of(this._list)):o.isObservable(t)?this.list$=t.pipe(n.tap(function(t){return e._list=t})):(this._list=null,this.list$=null)},enumerable:!0,configurable:!0}),e.prototype.toJSON=function(){var e=t.prototype.toJSON.call(this);return null!==this.mask&&(e.mask=m(this.mask)?this.mask:k(this.mask)),e},u([F(),c("design:type",String)],e.prototype,"accept",void 0),u([F(),c("design:type",String)],e.prototype,"inputType",void 0),u([F(),c("design:type",Object)],e.prototype,"mask",void 0),u([F(),c("design:type",Object)],e.prototype,"max",void 0),u([F(),c("design:type",Object)],e.prototype,"min",void 0),u([F(),c("design:type",Boolean)],e.prototype,"multiple",void 0),u([F(),c("design:type",String)],e.prototype,"pattern",void 0),u([F(),c("design:type",Number)],e.prototype,"step",void 0),u([F("list"),c("design:type",Array)],e.prototype,"_list",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(w);var $=function(){function t(t,e,o,r,n,i){this.changeDetectorRef=t,this.componentFactoryResolver=e,this.layoutService=o,this.validationService=r,this.componentService=n,this.relationService=i,this.context=null,this.componentSubscriptions=[],this.subscriptions=[]}return t.prototype.ngOnChanges=function(t){var e=t.group,o=t.layout,r=t.model;(o||r)&&this.onLayoutOrModelChange(),r&&this.onModelChange(),(e||r)&&this.onGroupOrModelChange()},t.prototype.ngOnDestroy=function(){this.destroyFormControlComponent(),this.unsubscribe()},Object.defineProperty(t.prototype,"id",{get:function(){return this.layoutService.getElementId(this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasLabel",{get:function(){return _(this.model.label)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasHint",{get:function(){return _(this.model.hint)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hint",{get:function(){return this.model.hint||null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errorMessages",{get:function(){return this.validationService.createErrorMessages(this.control,this.model)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"showErrorMessages",{get:function(){return this.model.hasErrorMessages&&this.control.touched&&!this.hasFocus&&this.isInvalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckbox",{get:function(){return this.model.type===U},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isInvalid",{get:function(){return this.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isValid",{get:function(){return this.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"templates",{get:function(){return void 0!==this.inputTemplateList?this.inputTemplateList:this.contentTemplateList},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"startTemplate",{get:function(){return this.model.type!==M?this.layoutService.getStartTemplate(this.model,this.templates):void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"endTemplate",{get:function(){return this.model.type!==M?this.layoutService.getEndTemplate(this.model,this.templates):void 0},enumerable:!0,configurable:!0}),t.prototype.getClass=function(t,e){return this.layoutService.getClass(this.controlLayout,t,e)},t.prototype.markForCheck=function(){this.changeDetectorRef.markForCheck();var t=this.componentRef.instance;t&&(t instanceof I||t instanceof A)&&t.markForCheck()},t.prototype.createFormControlComponent=function(){var t=this,e=this.componentType;if(null!==e){var o=this.componentFactoryResolver.resolveComponentFactory(e);this.componentViewContainerRef.clear(),this.componentRef=this.componentViewContainerRef.createComponent(o);var r=this.componentRef.instance;r.formLayout=this.layout,r.group=this.group,r.layout=this.controlLayout,r.model=this.model,this.templates&&(r.templates=this.templates),this.componentSubscriptions.push(r.blur.subscribe(function(e){return t.onBlur(e)})),this.componentSubscriptions.push(r.change.subscribe(function(e){return t.onChange(e)})),this.componentSubscriptions.push(r.focus.subscribe(function(e){return t.onFocus(e)})),void 0!==r.customEvent&&this.componentSubscriptions.push(r.customEvent.subscribe(function(e){return t.onCustomEvent(e)})),this.registerFormControlComponentRef(this.componentRef)}},t.prototype.destroyFormControlComponent=function(){this.componentRef&&(this.componentSubscriptions.forEach(function(t){return t.unsubscribe()}),this.componentSubscriptions=[],this.unregisterFormControlComponentRef(),this.componentRef.destroy())},t.prototype.createDynamicFormControlEvent=function(t,e){return{$event:t,context:this.context,control:this.control,group:this.group,model:this.model,type:e}},t.prototype.unsubscribe=function(){this.subscriptions.forEach(function(t){return t.unsubscribe()}),this.subscriptions=[]},t.prototype.onControlValueChanges=function(t){this.model instanceof N&&this.model.value!==t&&(this.model.value=t)},t.prototype.onModelValueUpdates=function(t){this.control.value!==t&&this.control.setValue(t)},t.prototype.onModelDisabledUpdates=function(t){t?this.control.disable():this.control.enable()},t.prototype.onLayoutOrModelChange=function(){this.controlLayout=this.layoutService.findByModel(this.model,this.layout)||this.model.layout,this.klass=(Array.isArray(this.hostClass)?this.hostClass.join(" "):"")+" "+this.layoutService.getHostClass(this.controlLayout)},t.prototype.onModelChange=function(){this.destroyFormControlComponent(),this.createFormControlComponent()},t.prototype.onGroupOrModelChange=function(){var t,e=this;if(this.model){if(this.unsubscribe(),this.group&&(this.control=this.group.get(this.model.id),this.subscriptions.push(this.control.valueChanges.subscribe(function(t){return e.onControlValueChanges(t)}))),this.subscriptions.push(this.model.disabledChanges.subscribe(function(t){return e.onModelDisabledUpdates(t)})),this.model instanceof N){var o=this.model;this.subscriptions.push(o.valueChanges.subscribe(function(t){return e.onModelValueUpdates(t)}))}this.model.relations.length>0&&(t=this.subscriptions).push.apply(t,f(this.relationService.subscribeRelations(this.model,this.group,this.control)))}},t.prototype.onChange=function(t){if(t instanceof Event){if(this.model.type===B){var e=this.model;if("file"===e.inputType){var o=t.target||t.srcElement;e.files=o.files}}this.change.emit(this.createDynamicFormControlEvent(t,E.Change))}else C(t)?this.change.emit(t):this.change.emit(this.createDynamicFormControlEvent(t,E.Change))},t.prototype.onBlur=function(t){C(t)?this.blur.emit(t):(this.hasFocus=!1,this.blur.emit(this.createDynamicFormControlEvent(t,E.Blur)))},t.prototype.onFocus=function(t){C(t)?this.focus.emit(t):(this.hasFocus=!0,this.focus.emit(this.createDynamicFormControlEvent(t,E.Focus)))},t.prototype.onCustomEvent=function(t){var e=this.customEvent;C(t)?e.emit(t):e.emit(this.createDynamicFormControlEvent(t.customEvent,t.customEventType))},t.prototype.registerFormControlComponentRef=function(t){this.context instanceof S?this.componentService.registerFormControl(this.model,t,this.context.index):this.componentService.registerFormControl(this.model,t)},t.prototype.unregisterFormControlComponentRef=function(){this.context instanceof S?this.componentService.unregisterFormControl(this.model.id,this.context.index):this.componentService.unregisterFormControl(this.model.id)},t}();var K=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return p(e,t),e.prototype.ngAfterViewInit=function(){var t=this;this.layoutService.filterTemplatesByModel(this.model,this.templates).forEach(function(e){return t.bindTemplate(e)})},e.prototype.bindTemplate=function(t){if(_(t.as)&&this.templateDirectives.has(t.as)){var e=this.templateDirectives.get(t.as);this.viewChild[e]=this.mapTemplate(t)}},e}(O);var z=function(){function t(t,e){this.elementRef=t,this.renderer=e}return t.prototype.ngAfterViewInit=function(){_(this.listId)&&this.renderer.setAttribute(this.elementRef.nativeElement,"list",this.listId)},t.decorators=[{type:e.Directive,args:[{selector:"[dynamicList]"}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2}]},t.propDecorators={listId:[{type:e.Input,args:["dynamicList"]}]},t}();var W={Start:"START",End:"END"},X=function(){function t(t){this.templateRef=t,this.align=W.End,this.as=null}return t.decorators=[{type:e.Directive,args:[{selector:"ng-template[modelId],ng-template[modelType]"}]}],t.ctorParameters=function(){return[{type:e.TemplateRef}]},t.propDecorators={align:[{type:e.Input}],as:[{type:e.Input}],index:[{type:e.Input}],modelId:[{type:e.Input}],modelType:[{type:e.Input}]},t}();var q=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.format=e.format||null,r.max=e.max||null,r.min=e.min||null,r.placeholder=e.placeholder||null,r}return p(e,t),u([F(),c("design:type",String)],e.prototype,"format",void 0),u([F(),c("design:type",Object)],e.prototype,"max",void 0),u([F(),c("design:type",Object)],e.prototype,"min",void 0),u([F(),c("design:type",String)],e.prototype,"placeholder",void 0),e}(N);var J=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.multiple=!!h(e.multiple)&&e.multiple,r}return p(e,t),u([F(),c("design:type",Boolean)],e.prototype,"multiple",void 0),e}(N);var Q=function(){function t(t){this.disabled=!!h(t.disabled)&&t.disabled,this.label=t.label||null,this.value=t.value}return Object.defineProperty(t.prototype,"text",{get:function(){return this.label},set:function(t){this.label=t},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){return D(this)},u([F(),c("design:type",Boolean)],t.prototype,"disabled",void 0),u([F(),c("design:type",String)],t.prototype,"label",void 0),u([F(),c("design:type",Object)],t.prototype,"value",void 0),t}();var Z=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r._options=[],r.options=e.options,r}return p(e,t),e.prototype.updateOptions$=function(){this.options$=o.of(this.options)},Object.defineProperty(e.prototype,"options",{get:function(){return this._options},set:function(t){var e=this;Array.isArray(t)?(this._options=t.map(function(t){return new Q(t)}),this.updateOptions$()):o.isObservable(t)?this.options$=t.pipe(n.map(function(t){return e._options=t.map(function(t){return new Q(t)}),e._options})):this.updateOptions$()},enumerable:!0,configurable:!0}),e.prototype.add=function(t){return this.insert(this.options.length,t)},e.prototype.get=function(t){return this.options[t]},e.prototype.insert=function(t,e){var o=new Q(e);return this.options.splice(t,0,o),this.updateOptions$(),o},e.prototype.remove=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];e.forEach(function(e){return t.options.splice(e,1)}),this.updateOptions$()},u([F("options"),c("design:type",Array)],e.prototype,"_options",void 0),e}(N);var tt="GROUP";var et=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.group=[],r.type=tt,r.group=Array.isArray(e.group)?e.group:[],r.legend=e.legend||null,r}return p(e,t),e.prototype.get=function(t){return this.group[t]},e.prototype.set=function(t,e){this.group[t]=e},e.prototype.add=function(t){this.group.push(t)},e.prototype.insert=function(t,e){this.group.splice(t,0,e)},e.prototype.move=function(t,e){var o;(o=this.group).splice.apply(o,f([t+e,0],this.group.splice(t,1)))},e.prototype.remove=function(t){this.group.splice(t,1)},e.prototype.size=function(){return this.group.length},u([F(),c("design:type",Array)],e.prototype,"group",void 0),u([F(),c("design:type",String)],e.prototype,"legend",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(R);var ot="CHECKBOX_GROUP",rt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=ot,r}return p(e,t),e.prototype.check=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];e.forEach(function(e){return t.group[e].checked=!0})},e.prototype.uncheck=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];e.forEach(function(e){return t.group[e].checked=!1})},e.prototype.checkAll=function(){this.group.forEach(function(t){return t.checked=!0})},e.prototype.uncheckAll=function(){this.group.forEach(function(t){return t.checked=!1})},u([F(),c("design:type",Array)],e.prototype,"group",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(et);var nt="COLORPICKER";var it=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=nt,r.format=_(e.format)?e.format:null,r.inline=!!h(e.inline)&&e.inline,r}return p(e,t),u([F(),c("design:type",String)],e.prototype,"format",void 0),u([F(),c("design:type",Boolean)],e.prototype,"inline",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(N);var at="DATEPICKER";var st=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=at,r.autoFocus=!!h(e.autoFocus)&&e.autoFocus,r.focusedDate=e.focusedDate||null,r.inline=!!h(e.inline)&&e.inline,r.prefix=e.prefix||null,r.readOnly=!!h(e.readOnly)&&e.readOnly,r.toggleIcon=_(e.toggleIcon)?e.toggleIcon:null,r.toggleLabel=_(e.toggleLabel)?e.toggleLabel:null,r.suffix=e.suffix||null,r}return p(e,t),u([F(),c("design:type",Boolean)],e.prototype,"autoFocus",void 0),u([F(),c("design:type",Object)],e.prototype,"focusedDate",void 0),u([F(),c("design:type",Boolean)],e.prototype,"inline",void 0),u([F(),c("design:type",String)],e.prototype,"prefix",void 0),u([F(),c("design:type",Boolean)],e.prototype,"readOnly",void 0),u([F(),c("design:type",String)],e.prototype,"suffix",void 0),u([F(),c("design:type",String)],e.prototype,"toggleIcon",void 0),u([F(),c("design:type",String)],e.prototype,"toggleLabel",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(q);var pt="EDITOR";var lt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=pt,r}return p(e,t),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(w);var ut="FILE_UPLOAD";var ct=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=ut,r.accept=Array.isArray(e.accept)?e.accept:null,r.autoUpload=!h(e.autoUpload)||e.autoUpload,r.maxSize=g(e.maxSize)?e.maxSize:null,r.minSize=g(e.minSize)?e.minSize:null,r.removeUrl=e.removeUrl||null,r.showFileList=!h(e.showFileList)||e.showFileList,r.url=e.url||null,r}return p(e,t),u([F(),c("design:type",Array)],e.prototype,"accept",void 0),u([F(),c("design:type",Boolean)],e.prototype,"autoUpload",void 0),u([F(),c("design:type",Number)],e.prototype,"maxSize",void 0),u([F(),c("design:type",Number)],e.prototype,"minSize",void 0),u([F(),c("design:type",String)],e.prototype,"removeUrl",void 0),u([F(),c("design:type",Boolean)],e.prototype,"showFileList",void 0),u([F(),c("design:type",String)],e.prototype,"url",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(J);var dt="RADIO_GROUP";var yt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=dt,r.legend=e.legend||null,r}return p(e,t),e.prototype.select=function(t){this.value=this.get(t).value},u([F(),c("design:type",String)],e.prototype,"legend",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(Z);var ft="RATING";var ht=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=ft,r.max=g(e.max)?e.max:10,r}return p(e,t),u([F(),c("design:type",Number)],e.prototype,"max",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(N);var mt="SELECT";var gt=function(t){function o(o,r){var n=t.call(this,o,r)||this;return n.type=mt,n.compareWithFn=m(o.compareWithFn)?o.compareWithFn:e.ɵlooseIdentical,n.filterable=!!h(o.filterable)&&o.filterable,n.multiple=!!h(o.multiple)&&o.multiple,n.placeholder=o.placeholder||"",n.prefix=o.prefix||null,n.suffix=o.suffix||null,n}return p(o,t),o.prototype.select=function(){for(var t=this,e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];this.value=this.multiple?e.map(function(e){return t.get(e).value}):this.get(e[0]).value},u([F(),c("design:type",Boolean)],o.prototype,"filterable",void 0),u([F(),c("design:type",Boolean)],o.prototype,"multiple",void 0),u([F(),c("design:type",String)],o.prototype,"placeholder",void 0),u([F(),c("design:type",String)],o.prototype,"prefix",void 0),u([F(),c("design:type",String)],o.prototype,"suffix",void 0),u([F(),c("design:type",String)],o.prototype,"type",void 0),o}(Z);var vt="SLIDER";var _t=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=vt,r.max=g(e.max)?e.max:10,r.min=g(e.min)?e.min:0,r.step=g(e.step)?e.step:1,r.vertical=!!h(e.vertical)&&e.vertical,r}return p(e,t),u([F(),c("design:type",Number)],e.prototype,"max",void 0),u([F(),c("design:type",Number)],e.prototype,"min",void 0),u([F(),c("design:type",Number)],e.prototype,"step",void 0),u([F(),c("design:type",Boolean)],e.prototype,"vertical",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(N);var Ot="SWITCH";var At=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=Ot,r.offLabel=e.offLabel||null,r.onLabel=e.onLabel||null,r}return p(e,t),u([F(),c("design:type",String)],e.prototype,"offLabel",void 0),u([F(),c("design:type",String)],e.prototype,"onLabel",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(x);var It="TEXTAREA",Lt="soft";var Et=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=It,r.cols=g(e.cols)?e.cols:20,r.rows=g(e.rows)?e.rows:2,r.wrap=e.wrap||Lt,r}return p(e,t),u([F(),c("design:type",Number)],e.prototype,"cols",void 0),u([F(),c("design:type",Number)],e.prototype,"rows",void 0),u([F(),c("design:type",String)],e.prototype,"wrap",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(w);var Ct="TIMEPICKER";var bt=function(t){function e(e,o){var r=t.call(this,e,o)||this;return r.type=Ct,r.meridian=!!h(e.meridian)&&e.meridian,r.showSeconds=!!h(e.showSeconds)&&e.showSeconds,r}return p(e,t),u([F(),c("design:type",Boolean)],e.prototype,"meridian",void 0),u([F(),c("design:type",Boolean)],e.prototype,"showSeconds",void 0),u([F(),c("design:type",String)],e.prototype,"type",void 0),e}(q);var Ft=new e.InjectionToken("DYNAMIC_VALIDATORS"),Tt=function(){function t(t,e,o){this.VALIDATORS=t,this.ASYNC_VALIDATORS=e,this.DYNAMIC_VALIDATORS_MAP=o}return t.prototype.getValidatorFn=function(t,e,o){var r;if(void 0===e&&(e=null),void 0===o&&(o=this.VALIDATORS),i.Validators.hasOwnProperty(t)?r=i.Validators[t]:this.DYNAMIC_VALIDATORS_MAP&&this.DYNAMIC_VALIDATORS_MAP.has(t)?r=this.DYNAMIC_VALIDATORS_MAP.get(t):o&&(r=o.find(function(e){return e.name===t})),void 0===r)throw new Error('validator "'+t+'" is not provided via NG_VALIDATORS, NG_ASYNC_VALIDATORS or DYNAMIC_FORM_VALIDATORS');return null!==e?r(e):r},t.prototype.getValidatorFns=function(t,e){var o=this;void 0===e&&(e=this.VALIDATORS);var r=[];return v(t)&&(r=Object.keys(t).map(function(r){var n=t[r];if(o.isValidatorDescriptor(n)){var i=n;return o.getValidatorFn(i.name,i.args,e)}return o.getValidatorFn(r,n,e)})),r},t.prototype.parseErrorMessageConfig=function(t,e,o){return void 0===o&&(o=null),t.replace(/{{\s*(.+?)\s*}}/gm,function(t,r){var n=e,i=r;return r.indexOf("validator.")>=0&&o&&(n=o,i=r.replace("validator.","")),null!==n[i]&&void 0!==n[i]?n[i]:null})},t.prototype.getValidator=function(t,e){return void 0===e&&(e=null),this.getValidatorFn(t,e)},t.prototype.getAsyncValidator=function(t,e){return void 0===e&&(e=null),this.getValidatorFn(t,e,this.ASYNC_VALIDATORS)},t.prototype.getValidators=function(t){return this.getValidatorFns(t)},t.prototype.getAsyncValidators=function(t){return this.getValidatorFns(t,this.ASYNC_VALIDATORS)},t.prototype.updateValidators=function(t,e,o){o.validators=t,null===t?e.clearValidators():e.setValidators(this.getValidators(t)),e.updateValueAndValidity()},t.prototype.updateAsyncValidators=function(t,e,o){o.asyncValidators=t,null===t?e.clearAsyncValidators():e.setAsyncValidators(this.getAsyncValidators(t)),e.updateValueAndValidity()},t.prototype.createErrorMessages=function(t,e){var o=this,r=[];if(e.hasErrorMessages){var n=e.errorMessages;Object.keys(t.errors||{}).forEach(function(i){var a=i;if("minlength"!==i&&"maxlength"!==i||(a=a.replace("length","Length")),n.hasOwnProperty(a)){var s=t.getError(i),p=n[a];r.push(o.parseErrorMessageConfig(p,e,s))}})}return r},t.prototype.isFormHook=function(t){return _(t)&&-1!==["blur","change","submit"].indexOf(t)},t.prototype.isValidatorDescriptor=function(t){return!!v(t)&&(t.hasOwnProperty("name")&&t.hasOwnProperty("args"))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Inject,args:[i.NG_VALIDATORS]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Inject,args:[i.NG_ASYNC_VALIDATORS]}]},{type:Map,decorators:[{type:e.Optional},{type:e.Inject,args:[Ft]}]}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(i.NG_VALIDATORS,8),e.ɵɵinject(i.NG_ASYNC_VALIDATORS,8),e.ɵɵinject(Ft,8))},token:t,providedIn:"root"}),t}();var Dt=new e.InjectionToken("DYNAMIC_FORM_CONTROL_MAP_FN"),Rt=function(){function t(t){this.DYNAMIC_FORM_CONTROL_MAP_FN=t,this.forms=[],this.formControls={},this.DYNAMIC_FORM_CONTROL_MAP_FN=t}return t.prototype.getForms=function(){return this.forms.values()},t.prototype.registerForm=function(t){this.forms.push(t)},t.prototype.unregisterForm=function(t){var e=this.forms.indexOf(t);-1!==e&&this.forms.splice(e,1)},t.prototype.getFormControlRef=function(t,e){var o=this.formControls[t];return g(e)?Array.isArray(o)?o[e]:void 0:o},t.prototype.registerFormControl=function(t,e,o){if(g(o)){var r=this.formControls[t.id]||[];Array.isArray(r)?(r.splice(o,0,e),this.formControls[t.id]=r):console.warn("registerFormControlRef is called with index for a non-array form control: "+t.id)}else this.formControls[t.id]=e},t.prototype.unregisterFormControl=function(t,e){var o=this.formControls[t];g(e)?Array.isArray(o)&&void 0!==o[e]&&o.splice(e,1):void 0!==o&&delete this.formControls[t]},t.prototype.getCustomComponentType=function(t){return m(this.DYNAMIC_FORM_CONTROL_MAP_FN)?this.DYNAMIC_FORM_CONTROL_MAP_FN(t):null},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[Dt]},{type:e.Optional}]}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(Dt,8))},token:t,providedIn:"root"}),t}();var Nt=function(){function t(t,e){this.componentService=t,this.validationService=e}return t.prototype.createAbstractControlOptions=function(t,e,o){return void 0===t&&(t=null),void 0===e&&(e=null),void 0===o&&(o=null),{asyncValidators:null!==e?this.validationService.getAsyncValidators(e):null,validators:null!==t?this.validationService.getValidators(t):null,updateOn:null!==o&&this.validationService.isFormHook(o)?o:"change"}},t.prototype.createFormArray=function(t){for(var e=[],o=this.createAbstractControlOptions(t.validators,t.asyncValidators,t.updateOn),r=0;r<t.size;r++){var n=t.get(r),a=this.createAbstractControlOptions(t.groupValidators,t.groupAsyncValidators,t.updateOn);e.push(this.createFormGroup(n.group,a,n))}return new i.FormArray(e,o)},t.prototype.createFormGroup=function(t,e,o){var r=this;void 0===e&&(e=null),void 0===o&&(o=null);var n={};return t.forEach(function(t){switch(t.parent=o,t.type){case M:n[t.id]=r.createFormArray(t);break;case tt:case ot:var e=t,a=r.createAbstractControlOptions(e.validators,e.asyncValidators,e.updateOn);n[t.id]=r.createFormGroup(e.group,a,e);break;default:var s=t,p={value:s.value,disabled:s.disabled},l=r.createAbstractControlOptions(s.validators,s.asyncValidators,s.updateOn);n[t.id]=new i.FormControl(p,l)}}),new i.FormGroup(n,e)},t.prototype.getPathSegment=function(t){return t instanceof S?t.index.toString():t.id},t.prototype.getPath=function(t,e){void 0===e&&(e=!1);for(var o=[this.getPathSegment(t)],r=t.parent;r;)o.unshift(this.getPathSegment(r)),r=r.parent;return e?o.join("."):o},t.prototype.addFormGroupControl=function(t,e){for(var o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];if(e instanceof et)this.insertFormGroupControl.apply(this,f([e.size(),t,e],o));else{var n=e;this.insertFormGroupControl.apply(this,f([n.length,t,n],o))}},t.prototype.moveFormGroupControl=function(t,e,o){if(o instanceof et)o.move(t,e);else{var r=o;r.splice.apply(r,f([t+e,0],r.splice(t,1)))}},t.prototype.insertFormGroupControl=function(t,e,o){for(var r=[],n=3;n<arguments.length;n++)r[n-3]=arguments[n];var i=o instanceof et?o:null,a=this.createFormGroup(r,null,i).controls;Object.keys(a).forEach(function(n,i){var s=r[i];o instanceof et?o.insert(t,s):o.splice(t,0,s),e.addControl(n,a[n])})},t.prototype.removeFormGroupControl=function(t,e,o){o instanceof et?(e.removeControl(o.get(t).id),o.remove(t)):(e.removeControl(o[t].id),o.splice(t,1))},t.prototype.addFormArrayGroup=function(t,e){var o=e.addGroup();t.push(this.createFormGroup(o.group,null,o))},t.prototype.insertFormArrayGroup=function(t,e,o){var r=o.insertGroup(t);e.insert(t,this.createFormGroup(r.group,null,r))},t.prototype.moveFormArrayGroup=function(t,e,o,r){var n=t+e,i=e>=0;if(!(t>=0&&t<r.size&&n>=0&&n<r.size))throw new Error("form array group cannot be moved due to index or new index being out of bounds");for(var a=[],s=i?t:n;s<=(i?n:t);s++)a.push(o.at(s));a.forEach(function(e,r){var s;s=i?0===r?n:t+r-1:r===a.length-1?n:n+r+1,o.setControl(s,e)}),r.moveGroup(t,e)},t.prototype.removeFormArrayGroup=function(t,e,o){e.removeAt(t),o.removeGroup(t)},t.prototype.clearFormArray=function(t,e){t.clear(),e.clear()},t.prototype.findById=function(t,e){var o=null,r=function(t,e){var n,i;try{for(var a=d(e),s=a.next();!s.done;s=a.next()){var p=s.value;if(p.id===t){o=p;break}p instanceof et&&r(t,p.group)}}catch(t){n={error:t}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}};return r(t,e),o},t.prototype.findModelById=function(t,e){return this.findById(t,e)},t.prototype.findControlByModel=function(t,e){return e.root.get(this.getPath(t,!0))},t.prototype.detectChanges=function(t){var e,o;if(t instanceof L)t.markForCheck(),t.detectChanges();else try{for(var r=d(this.componentService.getForms()),n=r.next();!n.done;n=r.next()){var i=n.value;i.markForCheck(),i.detectChanges()}}catch(t){e={error:t}}finally{try{n&&!n.done&&(o=r.return)&&o.call(r)}finally{if(e)throw e.error}}},t.prototype.fromJSON=function(t){var e=this,o=_(t)?JSON.parse(t,V):t,r=[];return o.forEach(function(t){var o=t.layout||null;switch(t.type){case M:var n=t;Array.isArray(n.groups)&&n.groups.forEach(function(t){t.group=e.fromJSON(t.group)}),n.groupFactory=function(){return e.fromJSON(n.groupPrototype)},r.push(new P(t,o));break;case U:r.push(new j(t,o));break;case ot:t.group=e.fromJSON(t.group),r.push(new rt(t,o));break;case nt:r.push(new it(t,o));break;case at:r.push(new st(t,o));break;case pt:r.push(new lt(t,o));break;case ut:t.value=null,r.push(new ct(t,o));break;case tt:t.group=e.fromJSON(t.group),r.push(new et(t,o));break;case B:var i=t;null!==i.mask&&(i.mask instanceof Function||(i.mask=Y(i.mask))),r.push(new H(t,o));break;case dt:r.push(new yt(t,o));break;case ft:r.push(new ht(t,o));break;case mt:r.push(new gt(t,o));break;case vt:r.push(new _t(t,o));break;case Ot:r.push(new At(t,o));break;case It:r.push(new Et(t,o));break;case Ct:r.push(new bt(t,o));break;default:throw new Error('unknown form control model type defined on JSON object with id "'+t.id+'"')}}),r},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Rt},{type:Tt}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(Rt),e.ɵɵinject(Tt))},token:t,providedIn:"root"}),t}();var St=function(){function t(){}return t.prototype.findById=function(t,e){var o,r;if(v(e))try{for(var n=d(Object.keys(e)),i=n.next();!i.done;i=n.next()){var a=i.value;if(a===t)return e[a]}}catch(t){o={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return null},t.prototype.findByModel=function(t,e){var o,r,n=null;if(v(e)){var i=function(o){o.split(",").forEach(function(r){var i=r.trim();i!==t.id&&i!==t.type||(n=e[o])})};try{for(var a=d(Object.keys(e)),s=a.next();!s.done;s=a.next()){i(s.value)}}catch(t){o={error:t}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}}return n},t.prototype.filterTemplatesByModel=function(t,o){var r=function(e){return e.modelId===t.id||e.modelType===t.type};return o instanceof e.QueryList?o.filter(r):Array.isArray(o)?o.filter(r):[]},t.prototype.getAlignedTemplate=function(t,e,o){return this.filterTemplatesByModel(t,e).find(function(t){return null===t.as&&t.align===o})},t.prototype.getStartTemplate=function(t,e){return this.getAlignedTemplate(t,e,W.Start)},t.prototype.getEndTemplate=function(t,e){return this.getAlignedTemplate(t,e,W.End)},t.prototype.getClass=function(t,e,o){if(v(t)&&t.hasOwnProperty(e)){var r=t[e];if(r.hasOwnProperty(o))return r[o]}return""},t.prototype.getHostClass=function(t){var e="";return v(t)&&["element","grid"].forEach(function(o){v(t[o])&&_(t[o].host)&&(e=e+" "+t[o].host)}),e},t.prototype.getElementId=function(t){for(var e=t.id,o=t.parent;null!==o;){if(o instanceof S){e=o.context.id+"-"+o.index+"-"+t.id;break}o=o.parent}return e},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();var Mt=new e.InjectionToken("DYNAMIC_MATCHERS"),Pt={match:"DISABLED",opposingMatch:"ENABLED",onChange:function(t,e){e.disabled=t}},xt={match:"HIDDEN",opposingMatch:"VISIBLE",onChange:function(t,e){e.hidden=t}},Ut={match:"REQUIRED",opposingMatch:"OPTIONAL",onChange:function(t,e,o,r){var n=null;t?n=v(e.validators)?l({},e.validators,{required:null}):{required:null}:v(e.validators)&&(delete e.validators.required,n=l({},e.validators)),r.get(Tt).updateValidators(n,o,e),r.get(Nt).detectChanges()}},jt={provide:Mt,useValue:Pt,multi:!0},wt={provide:Mt,useValue:xt,multi:!0},kt={provide:Mt,useValue:Ut,multi:!0},Yt=[jt,wt,kt],Vt=function(){function t(t,e){this.MATCHERS=t,this.injector=e}return t.prototype.getRelatedFormControls=function(t,e){var o=function(t,o){var r=o.rootPath||o.id;if(!t.hasOwnProperty(r)){var n=o.rootPath?e.root.get(o.rootPath):e.get(o.id);n instanceof i.FormControl?t[r]=n:console.warn("No related form control with id "+o.id+" could be found")}return t};return t.relations.reduce(function(t,e){return e.when.reduce(o,t)},{})},t.prototype.findRelationByMatcher=function(t,e){return t.find(function(t){return[e.match,e.opposingMatch].includes(t.match)})},t.prototype.matchesCondition=function(t,e,o){var r=t.operator||"OR";return t.when.reduce(function(n,i,a){var s,p,l,u=i.rootPath||i.id;try{for(var c=d(Object.entries(e)),f=c.next();!f.done;f=c.next()){var h=y(f.value,2),m=h[0],g=h[1];if(m===u){l=g;break}}}catch(t){s={error:t}}finally{try{f&&!f.done&&(p=c.return)&&p.call(c)}finally{if(s)throw s.error}}return l&&t.match===o.match?!(a>0&&"AND"===r&&!n)&&(!!(a>0&&"OR"===r&&n)||(i.value===l.value||i.status===l.status)):!(!l||t.match!==o.opposingMatch)&&(!!(a>0&&"AND"===r&&n)||!(a>0&&"OR"===r&&!n)&&!(i.value===l.value||i.status===l.status))},!1)},t.prototype.subscribeRelations=function(t,e,r){var i=this,a=this.getRelatedFormControls(t,e),s=[];return Object.values(a).forEach(function(e){var p=e.valueChanges.pipe(n.startWith(e.value)),l=e.statusChanges.pipe(n.startWith(e.status));s.push(o.merge(p,l).subscribe(function(){i.MATCHERS.forEach(function(e){var o=i.findRelationByMatcher(t.relations,e);if(void 0!==o){var n=i.matchesCondition(o,a,e);e.onChange(n,t,r,i.injector)}})}))}),s},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Inject,args:[Mt]}]},{type:e.Injector}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(Mt,8),e.ɵɵinject(e.INJECTOR))},token:t,providedIn:"root"}),t}();var Bt=["billing","shipping"],Gt=["fax","home","mobile","pager","work"],Ht=["street-address","address-line1","address-line2","address-line3","address-level4","address-level3","address-level2","address-level1","name","honorific-prefix","given-name","additional-name","family-name","honorific-suffix","nickname","username","new-password","current-password","organization-title","organization","country","country-name","postal-code","cc-name","cc-given-name","cc-additional-name","cc-family-name","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc","cc-type","transaction-currency","transaction-amount","language","bday","bday-day","bday-month","bday-year","sex","url","photo"],$t=["tel","tel-country-code","tel-national","tel-area-code","tel-local","tel-local-prefix","tel-local-suffix","tel-extension","email","impp"];var Kt=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[Nt,St,Tt,Rt,Vt]}},t.decorators=[{type:e.NgModule,args:[{imports:[a.CommonModule,i.ReactiveFormsModule],declarations:[z,X],exports:[z,X]}]}],t}();t.AND_OPERATOR="AND",t.AUTOCOMPLETE_OFF="off",t.AUTOCOMPLETE_ON="on",t.AUTOFILL_FIELDS=Ht,t.AUTOFILL_FIELDS_CONTACT=$t,t.AUTOFILL_FIELD_ADDITIONAL_NAME="additional-name",t.AUTOFILL_FIELD_ADDRESS_LEVEL_1="address-level1",t.AUTOFILL_FIELD_ADDRESS_LEVEL_2="address-level2",t.AUTOFILL_FIELD_ADDRESS_LEVEL_3="address-level3",t.AUTOFILL_FIELD_ADDRESS_LEVEL_4="address-level4",t.AUTOFILL_FIELD_ADDRESS_LINE_1="address-line1",t.AUTOFILL_FIELD_ADDRESS_LINE_2="address-line2",t.AUTOFILL_FIELD_ADDRESS_LINE_3="address-line3",t.AUTOFILL_FIELD_BDAY="bday",t.AUTOFILL_FIELD_BDAY_DAY="bday-day",t.AUTOFILL_FIELD_BDAY_MONTH="bday-month",t.AUTOFILL_FIELD_BDAY_YEAR="bday-year",t.AUTOFILL_FIELD_CC_ADDITIONAL_NAME="cc-additional-name",t.AUTOFILL_FIELD_CC_CSC="cc-csc",t.AUTOFILL_FIELD_CC_EXP="cc-exp",t.AUTOFILL_FIELD_CC_EXP_MONTH="cc-exp-month",t.AUTOFILL_FIELD_CC_EXP_YEAR="cc-exp-year",t.AUTOFILL_FIELD_CC_FAMILY_NAME="cc-family-name",t.AUTOFILL_FIELD_CC_GIVEN_NAME="cc-given-name",t.AUTOFILL_FIELD_CC_NAME="cc-name",t.AUTOFILL_FIELD_CC_NUMBER="cc-number",t.AUTOFILL_FIELD_CC_TYPE="cc-type",t.AUTOFILL_FIELD_COUNTRY="country",t.AUTOFILL_FIELD_COUNTRY_NAME="country-name",t.AUTOFILL_FIELD_CURRENT_PASSWORD="current-password",t.AUTOFILL_FIELD_EMAIL="email",t.AUTOFILL_FIELD_FAMILY_NAME="family-name",t.AUTOFILL_FIELD_GIVEN_NAME="given-name",t.AUTOFILL_FIELD_HONORIFIC_PREFIX="honorific-prefix",t.AUTOFILL_FIELD_HONORIFIC_SUFFIX="honorific-suffix",t.AUTOFILL_FIELD_IMPP="impp",t.AUTOFILL_FIELD_LANGUAGE="language",t.AUTOFILL_FIELD_NAME="name",t.AUTOFILL_FIELD_NEW_PASSWORD="new-password",t.AUTOFILL_FIELD_NICKNAME="nickname",t.AUTOFILL_FIELD_ORGANIZATION="organization",t.AUTOFILL_FIELD_ORGANIZATION_TITLE="organization-title",t.AUTOFILL_FIELD_PHOTO="photo",t.AUTOFILL_FIELD_POSTAL_CODE="postal-code",t.AUTOFILL_FIELD_SEX="sex",t.AUTOFILL_FIELD_STREET_ADDRESS="street-address",t.AUTOFILL_FIELD_TEL="tel",t.AUTOFILL_FIELD_TEL_AREA_CODE="tel-area-code",t.AUTOFILL_FIELD_TEL_COUNTRY_CODE="tel-country-code",t.AUTOFILL_FIELD_TEL_LOCAL="tel-local",t.AUTOFILL_FIELD_TEL_LOCAL_EXTENSION="tel-extension",t.AUTOFILL_FIELD_TEL_LOCAL_PREFIX="tel-local-prefix",t.AUTOFILL_FIELD_TEL_LOCAL_SUFFIX="tel-local-suffix",t.AUTOFILL_FIELD_TEL_NATIONAL="tel-national",t.AUTOFILL_FIELD_TRANSACTION_AMOUNT="transaction-amount",t.AUTOFILL_FIELD_TRANSACTION_CURRENCY="transaction-currency",t.AUTOFILL_FIELD_URL="url",t.AUTOFILL_FIELD_USERNAME="username",t.AUTOFILL_TOKENS_ADDRESS=Bt,t.AUTOFILL_TOKENS_CONTACT=Gt,t.AUTOFILL_TOKEN_BILLING="billing",t.AUTOFILL_TOKEN_FAX="fax",t.AUTOFILL_TOKEN_HOME="home",t.AUTOFILL_TOKEN_MOBILE="mobile",t.AUTOFILL_TOKEN_PAGER="pager",t.AUTOFILL_TOKEN_SHIPPING="shipping",t.AUTOFILL_TOKEN_WORK="work",t.DISABLED_MATCHER=Pt,t.DISABLED_MATCHER_PROVIDER=jt,t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR="color",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE="date",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL="datetime-local",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL="email",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE="file",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH="month",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER="number",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD="password",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE="range",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH="search",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL="tel",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT=G,t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME="time",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL="url",t.DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK="week",t.DYNAMIC_FORM_CONTROL_MAP_FN=Dt,t.DYNAMIC_FORM_CONTROL_TYPE_ARRAY=M,t.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX=U,t.DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP=ot,t.DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER=nt,t.DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER=at,t.DYNAMIC_FORM_CONTROL_TYPE_EDITOR=pt,t.DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD=ut,t.DYNAMIC_FORM_CONTROL_TYPE_GROUP=tt,t.DYNAMIC_FORM_CONTROL_TYPE_INPUT=B,t.DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP=dt,t.DYNAMIC_FORM_CONTROL_TYPE_RATING=ft,t.DYNAMIC_FORM_CONTROL_TYPE_SELECT=mt,t.DYNAMIC_FORM_CONTROL_TYPE_SLIDER=vt,t.DYNAMIC_FORM_CONTROL_TYPE_SWITCH=Ot,t.DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA=It,t.DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER=Ct,t.DYNAMIC_FORM_TEXTAREA_WRAP_HARD="hard",t.DYNAMIC_FORM_TEXTAREA_WRAP_SOFT=Lt,t.DYNAMIC_MATCHERS=Mt,t.DYNAMIC_MATCHER_PROVIDERS=Yt,t.DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT=W,t.DYNAMIC_VALIDATORS=Ft,t.DynamicCheckControlModel=x,t.DynamicCheckboxGroupModel=rt,t.DynamicCheckboxModel=j,t.DynamicColorPickerModel=it,t.DynamicDateControlModel=q,t.DynamicDatePickerModel=st,t.DynamicEditorModel=lt,t.DynamicFileControlModel=J,t.DynamicFileUploadModel=ct,t.DynamicFormArrayComponent=A,t.DynamicFormArrayGroupModel=S,t.DynamicFormArrayModel=P,t.DynamicFormComponent=L,t.DynamicFormComponentService=Rt,t.DynamicFormControlComponent=O,t.DynamicFormControlContainerComponent=$,t.DynamicFormControlEventType=E,t.DynamicFormControlModel=R,t.DynamicFormControlWithTemplateComponent=K,t.DynamicFormGroupComponent=I,t.DynamicFormGroupModel=et,t.DynamicFormLayoutService=St,t.DynamicFormOption=Q,t.DynamicFormRelationService=Vt,t.DynamicFormService=Nt,t.DynamicFormValidationService=Tt,t.DynamicFormValueControlModel=N,t.DynamicFormsCoreModule=Kt,t.DynamicInputControlModel=w,t.DynamicInputModel=H,t.DynamicListDirective=z,t.DynamicOptionControlModel=Z,t.DynamicRadioGroupModel=yt,t.DynamicRatingModel=ht,t.DynamicSelectModel=gt,t.DynamicSliderModel=_t,t.DynamicSwitchModel=At,t.DynamicTemplateDirective=X,t.DynamicTextAreaModel=Et,t.DynamicTimePickerModel=bt,t.HIDDEN_MATCHER=xt,t.HIDDEN_MATCHER_PROVIDER=wt,t.MATCH_DISABLED="DISABLED",t.MATCH_ENABLED="ENABLED",t.MATCH_HIDDEN="HIDDEN",t.MATCH_OPTIONAL="OPTIONAL",t.MATCH_REQUIRED="REQUIRED",t.MATCH_VISIBLE="VISIBLE",t.METADATA_KEY_SERIALIZABLE=b,t.OR_OPERATOR="OR",t.REQUIRED_MATCHER=Ut,t.REQUIRED_MATCHER_PROVIDER=kt,t.getSerializables=T,t.isAddressToken=function(t){return Bt.indexOf(t)>-1},t.isBoolean=h,t.isContactField=function(t){return $t.indexOf(t)>-1},t.isContactToken=function(t){return Gt.indexOf(t)>-1},t.isDynamicFormControlEvent=C,t.isField=function(t){return Ht.indexOf(t)>-1},t.isFunction=m,t.isNumber=g,t.isObject=v,t.isSectionToken=function(t){return t.startsWith("section-")},t.isString=_,t.maskFromString=Y,t.maskToString=k,t.parseReviver=V,t.serializable=F,t.serialize=D,t.validate=function(t){var e=function(t,e){return t+"|"+e},o=Bt.reduce(e),r=Gt.reduce(e),n=Ht.reduce(e),i=$t.reduce(e);return new RegExp("^(section-\\w+\\s{1})?(("+o+"){1}\\s)?(("+n+"){1}|(("+r+"){1}\\s{1}("+i+")))$").test(t)},Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=core.umd.min.js.map

@@ -8,3 +8,3 @@ /**

*/
export { DynamicFormArrayComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicTemplateableFormControlComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicIdDirective, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DisabledMatcher, HiddenMatcher, RequiredMatcher, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJjb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwraUpBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
export { DynamicFormArrayComponent, DynamicFormGroupComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicFormControlWithTemplateComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DISABLED_MATCHER_PROVIDER, HIDDEN_MATCHER_PROVIDER, REQUIRED_MATCHER_PROVIDER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJjb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvbEpBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19

@@ -5,2 +5,3 @@ /**

*/
import { QueryList } from "@angular/core";
import { DynamicFormControlComponent } from "./dynamic-form-control.component";

@@ -29,5 +30,19 @@ /**

}
/**
* @return {?}
*/
markForCheck() {
if (this.components instanceof QueryList) {
this.components.forEach((/**
* @param {?} component
* @return {?}
*/
component => component.markForCheck()));
}
}
}
if (false) {
/** @type {?} */
DynamicFormArrayComponent.prototype.components;
/** @type {?} */
DynamicFormArrayComponent.prototype.model;

@@ -37,2 +52,2 @@ /** @type {?} */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWFycmF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1hcnJheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBSS9FLE1BQU0sT0FBZ0IseUJBQTBCLFNBQVEsMkJBQTJCOzs7O0lBSy9FLElBQUksS0FBSztRQUNMLE9BQU8sbUJBQUEsSUFBSSxDQUFDLE9BQU8sRUFBYSxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7OztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNKOzs7SUFkRywwQ0FBNkI7O0lBQzdCLDhDQUEyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5TGlzdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1BcnJheU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUFycmF5Q29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0Zvcm1Db250cm9sQ29tcG9uZW50IHtcblxuICAgIG1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWw7XG4gICAgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcblxuICAgIGdldCBhcnJheSgpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFN0YXJ0VGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xuICAgIH1cblxuICAgIGdldCBlbmRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVuZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWFycmF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1hcnJheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFLL0UsTUFBTSxPQUFnQix5QkFBMEIsU0FBUSwyQkFBMkI7Ozs7SUFNL0UsSUFBSSxLQUFLO1FBQ0wsT0FBTyxtQkFBQSxJQUFJLENBQUMsT0FBTyxFQUFhLENBQUM7SUFDckMsQ0FBQzs7OztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRSxDQUFDOzs7O0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7O0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSxTQUFTLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPOzs7O1lBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUMsQ0FBQztTQUNsRTtJQUNMLENBQUM7Q0FDSjs7O0lBckJHLCtDQUE0RDs7SUFDNUQsMENBQTZCOztJQUM3Qiw4Q0FBMkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC5jb21wb25lbnRcIjtcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQXJyYXlNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9mb3JtLWFycmF5L2R5bmFtaWMtZm9ybS1hcnJheS5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0Zvcm1BcnJheUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCB7XG5cbiAgICBjb21wb25lbnRzOiBRdWVyeUxpc3Q8RHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsO1xuICAgIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgYXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbCBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXJ0VGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRTdGFydFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKTtcbiAgICB9XG5cbiAgICBnZXQgZW5kVGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRFbmRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcyk7XG4gICAgfVxuXG4gICAgbWFya0ZvckNoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRzIGluc3RhbmNlb2YgUXVlcnlMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4gY29tcG9uZW50Lm1hcmtGb3JDaGVjaygpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==

@@ -5,3 +5,3 @@ /**

*/
import { DynamicFormControlEventType, isDynamicFormControlEvent } from "./dynamic-form-control.event";
import { DynamicFormControlEventType, isDynamicFormControlEvent } from "./dynamic-form-control-event";
import { DynamicFormValueControlModel } from "../model/dynamic-form-value-control.model";

@@ -12,2 +12,4 @@ import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayGroupModel } from "../model/form-array/dynamic-form-array.model";

import { isString } from "../utils/core.utils";
import { DynamicFormGroupComponent } from "./dynamic-form-group.component";
import { DynamicFormArrayComponent } from "./dynamic-form-array.component";
/**

@@ -19,2 +21,3 @@ * @abstract

* @protected
* @param {?} changeDetectorRef
* @param {?} componentFactoryResolver

@@ -26,3 +29,4 @@ * @param {?} layoutService

*/
constructor(componentFactoryResolver, layoutService, validationService, componentService, relationService) {
constructor(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
this.changeDetectorRef = changeDetectorRef;
this.componentFactoryResolver = componentFactoryResolver;

@@ -45,36 +49,13 @@ this.layoutService = layoutService;

/** @type {?} */
const layoutChange = ((/** @type {?} */ (changes))).layout;
/** @type {?} */
const modelChange = ((/** @type {?} */ (changes))).model;
if (layoutChange || modelChange) {
this.onLayoutOrModelChange();
}
if (modelChange) {
this.destroyFormControlComponent();
this.createFormControlComponent();
this.onModelChange();
}
if (groupChange || modelChange) {
if (this.model) {
this.unsubscribe();
if (this.group) {
this.control = (/** @type {?} */ (this.group.get(this.model.id)));
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
value => this.onControlValueChanges(value))));
}
this.subscriptions.push(this.model.disabledChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
value => this.onModelDisabledUpdates(value))));
if (this.model instanceof DynamicFormValueControlModel) {
/** @type {?} */
const model = (/** @type {?} */ (this.model));
this.subscriptions.push(model.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
value => this.onModelValueUpdates(value))));
}
if (this.model.relations.length > 0) {
this.subscriptions.push(...this.relationService.subscribeRelations(this.model, this.group, this.control));
}
}
this.onGroupOrModelChange();
}

@@ -92,4 +73,4 @@ }

*/
get errorMessages() {
return this.validationService.createErrorMessages(this.control, this.model);
get id() {
return this.layoutService.getElementId(this.model);
}

@@ -99,2 +80,8 @@ /**

*/
get hasLabel() {
return isString(this.model.label);
}
/**
* @return {?}
*/
get hasHint() {

@@ -112,4 +99,4 @@ return isString(((/** @type {?} */ (this.model))).hint);

*/
get hasLabel() {
return isString(this.model.label);
get errorMessages() {
return this.validationService.createErrorMessages(this.control, this.model);
}

@@ -119,4 +106,4 @@ /**

*/
get isCheckbox() {
return this.model.type === DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX;
get showErrorMessages() {
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
}

@@ -126,4 +113,4 @@ /**

*/
get elementId() {
return this.layoutService.getElementId(this.model);
get isCheckbox() {
return this.model.type === DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX;
}

@@ -145,8 +132,2 @@ /**

*/
get showErrorMessages() {
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
}
/**
* @return {?}
*/
get templates() {

@@ -172,9 +153,17 @@ return this.inputTemplateList !== undefined ? this.inputTemplateList : this.contentTemplateList;

* @param {?} place
* @param {?=} model
* @return {?}
*/
getClass(context, place, model = this.model) {
getClass(context, place) {
return this.layoutService.getClass(this.controlLayout, context, place);
}
/**
* @return {?}
*/
markForCheck() {
this.changeDetectorRef.markForCheck();
/** @type {?} */
const controlLayout = this.layoutService.findByModel(model, this.layout) || (/** @type {?} */ (model.layout));
return this.layoutService.getClass(controlLayout, context, place);
const component = this.componentRef.instance;
if (component && (component instanceof DynamicFormGroupComponent || component instanceof DynamicFormArrayComponent)) {
component.markForCheck();
}
}

@@ -194,10 +183,11 @@ /**

/** @type {?} */
const instance = this.componentRef.instance;
instance.group = this.group;
instance.layout = this.layout;
instance.model = (/** @type {?} */ (this.model));
const component = this.componentRef.instance;
component.formLayout = this.layout;
component.group = this.group;
component.layout = this.controlLayout;
component.model = this.model;
if (this.templates) {
instance.templates = this.templates;
component.templates = this.templates;
}
this.componentSubscriptions.push(instance.blur.subscribe((/**
this.componentSubscriptions.push(component.blur.subscribe((/**
* @param {?} $event

@@ -207,3 +197,3 @@ * @return {?}

($event) => this.onBlur($event))));
this.componentSubscriptions.push(instance.change.subscribe((/**
this.componentSubscriptions.push(component.change.subscribe((/**
* @param {?} $event

@@ -213,3 +203,3 @@ * @return {?}

($event) => this.onChange($event))));
this.componentSubscriptions.push(instance.focus.subscribe((/**
this.componentSubscriptions.push(component.focus.subscribe((/**
* @param {?} $event

@@ -219,4 +209,4 @@ * @return {?}

($event) => this.onFocus($event))));
if (instance.customEvent !== undefined) {
this.componentSubscriptions.push(instance.customEvent.subscribe((/**
if (component.customEvent !== undefined) {
this.componentSubscriptions.push(component.customEvent.subscribe((/**
* @param {?} $event

@@ -227,3 +217,3 @@ * @return {?}

}
this.registerComponentRef(this.componentRef);
this.registerFormControlComponentRef(this.componentRef);
}

@@ -243,3 +233,3 @@ }

this.componentSubscriptions = [];
this.unregisterComponentRef();
this.unregisterFormControlComponentRef();
this.componentRef.destroy();

@@ -296,2 +286,49 @@ }

/**
* @return {?}
*/
onLayoutOrModelChange() {
this.controlLayout = this.layoutService.findByModel(this.model, this.layout) || (/** @type {?} */ (this.model.layout));
this.klass = `${Array.isArray(this.hostClass) ? this.hostClass.join(" ") : ""} ${this.layoutService.getHostClass(this.controlLayout)}`;
}
/**
* @return {?}
*/
onModelChange() {
this.destroyFormControlComponent();
this.createFormControlComponent();
}
/**
* @return {?}
*/
onGroupOrModelChange() {
if (this.model) {
this.unsubscribe();
if (this.group) {
this.control = (/** @type {?} */ (this.group.get(this.model.id)));
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
value => this.onControlValueChanges(value))));
}
this.subscriptions.push(this.model.disabledChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
value => this.onModelDisabledUpdates(value))));
if (this.model instanceof DynamicFormValueControlModel) {
/** @type {?} */
const model = (/** @type {?} */ (this.model));
this.subscriptions.push(model.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
value => this.onModelValueUpdates(value))));
}
if (this.model.relations.length > 0) {
this.subscriptions.push(...this.relationService.subscribeRelations(this.model, this.group, this.control));
}
}
}
/**
* @param {?} $event

@@ -362,12 +399,12 @@ * @return {?}

* @private
* @param {?} instanceRef
* @param {?} ref
* @return {?}
*/
registerComponentRef(instanceRef) {
/** @type {?} */
let index;
registerFormControlComponentRef(ref) {
if (this.context instanceof DynamicFormArrayGroupModel) {
index = this.context.index;
this.componentService.registerFormControl(this.model, ref, this.context.index);
}
this.componentService.registerFormControlRef(this.model, instanceRef, index);
else {
this.componentService.registerFormControl(this.model, ref);
}
}

@@ -378,9 +415,9 @@ /**

*/
unregisterComponentRef() {
/** @type {?} */
let index;
unregisterFormControlComponentRef() {
if (this.context instanceof DynamicFormArrayGroupModel) {
index = this.context.index;
this.componentService.unregisterFormControl(this.model.id, this.context.index);
}
this.componentService.unregisterFormControlRef(this.model.id, index);
else {
this.componentService.unregisterFormControl(this.model.id);
}
}

@@ -398,2 +435,6 @@ }

/** @type {?} */
DynamicFormControlContainerComponent.prototype.hostClass;
/** @type {?} */
DynamicFormControlContainerComponent.prototype.klass;
/** @type {?} */
DynamicFormControlContainerComponent.prototype.layout;

@@ -430,2 +471,7 @@ /** @type {?} */

*/
DynamicFormControlContainerComponent.prototype.controlLayout;
/**
* @type {?}
* @protected
*/
DynamicFormControlContainerComponent.prototype.subscriptions;

@@ -436,2 +482,7 @@ /**

*/
DynamicFormControlContainerComponent.prototype.changeDetectorRef;
/**
* @type {?}
* @protected
*/
DynamicFormControlContainerComponent.prototype.componentFactoryResolver;

@@ -464,2 +515,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWFBLE9BQU8sRUFHSCwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQzVCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUNILCtCQUErQixFQUMvQiwwQkFBMEIsRUFDN0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQ0gsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUVsQyxNQUFNLG9DQUFvQyxDQUFDO0FBVzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUcvQyxNQUFNLE9BQWdCLG9DQUFvQzs7Ozs7Ozs7O0lBdUJ0RCxZQUFnQyx3QkFBa0QsRUFDbEQsYUFBdUMsRUFDdkMsaUJBQStDLEVBQy9DLGdCQUE2QyxFQUM3QyxlQUEyQztRQUozQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBQy9DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkI7UUFDN0Msb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBekIzRSxZQUFPLEdBQXNDLElBQUksQ0FBQztRQWtCeEMsMkJBQXNCLEdBQW1CLEVBQUUsQ0FBQztRQUM1QyxrQkFBYSxHQUFtQixFQUFFLENBQUM7SUFPN0MsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7O2NB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d0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0o7OztJQTVTRyx1REFBa0Q7O0lBQ2xELHVEQUFxQjs7SUFDckIscURBQWlCOztJQUNqQix3REFBa0I7O0lBQ2xCLHNEQUEwQjs7SUFDMUIscURBQStCOztJQUUvQixtRUFBcUU7O0lBQ3JFLGlFQUFtRTs7SUFFbkUsb0RBQTRDOztJQUM1QyxzREFBOEM7O0lBQzlDLDJEQUErRDs7SUFDL0QscURBQTZDOztJQUU3Qyx5RUFBNEM7Ozs7O0lBRTVDLDREQUF5RDs7Ozs7SUFDekQsc0VBQXNEOzs7OztJQUN0RCw2REFBNkM7Ozs7O0lBRXZCLHdFQUE0RDs7Ozs7SUFDNUQsNkRBQWlEOzs7OztJQUNqRCxpRUFBeUQ7Ozs7O0lBQ3pELGdFQUF1RDs7Ozs7SUFDdkQsK0RBQXFEOzs7OztJQWlEM0UsK0VBQThEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFR5cGUsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLFxuICAgIGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnRcbn0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wuZXZlbnRcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS12YWx1ZS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVksXG4gICAgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YIH0gZnJvbSBcIi4uL21vZGVsL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfSU5QVVRfVFlQRV9GSUxFLFxuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfSU5QVVQsXG4gICAgRHluYW1pY0lucHV0TW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL2lucHV0L2R5bmFtaWMtaW5wdXQubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2Vcbn0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtTGF5b3V0LCBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tY29tcG9uZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2VcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICAgIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XG4gICAgY29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBoYXNGb2N1czogYm9vbGVhbjtcbiAgICBsYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xuICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbDtcblxuICAgIGNvbnRlbnRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+IHwgdW5kZWZpbmVkO1xuICAgIGlucHV0VGVtcGxhdGVMaXN0OiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcblxuICAgIGJsdXI6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD47XG4gICAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuICAgIGN1c3RvbUV2ZW50OiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+IHwgdW5kZWZpbmVkO1xuICAgIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuXG4gICAgY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHByb3RlY3RlZCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxEeW5hbWljRm9ybUNvbnRyb2w+O1xuICAgIHByb3RlY3RlZCBjb21wb25lbnRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIGxheW91dFNlcnZpY2U6IER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29tcG9uZW50U2VydmljZTogRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcmVsYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSkge1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblxuICAgICAgICBjb25zdCBncm91cENoYW5nZSA9IChjaGFuZ2VzIGFzIFBpY2s8U2ltcGxlQ2hhbmdlcywgXCJncm91cFwiPikuZ3JvdXA7XG4gICAgICAgIGNvbnN0IG1vZGVsQ2hhbmdlID0gKGNoYW5nZXMgYXMgUGljazxTaW1wbGVDaGFuZ2VzLCBcIm1vZGVsXCI+KS5tb2RlbDtcblxuICAgICAgICBpZiAobW9kZWxDaGFuZ2UpIHtcblxuICAgICAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncm91cENoYW5nZSB8fCBtb2RlbENoYW5nZSkge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ3JvdXApIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm1vZGVsLmlkKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5vbkNvbnRyb2xWYWx1ZUNoYW5nZXModmFsdWUpKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tb2RlbC5kaXNhYmxlZENoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMub25Nb2RlbERpc2FibGVkVXBkYXRlcyh2YWx1ZSkpKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbCBhcyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPGFueT47XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobW9kZWwudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLm9uTW9kZWxWYWx1ZVVwZGF0ZXModmFsdWUpKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVsYXRpb25zLmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCguLi50aGlzLnJlbGF0aW9uU2VydmljZS5zdWJzY3JpYmVSZWxhdGlvbnModGhpcy5tb2RlbCwgdGhpcy5ncm91cCwgdGhpcy5jb250cm9sKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xDb21wb25lbnQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGdldCBjb21wb25lbnRUeXBlKCk6IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGw7XG5cbiAgICBnZXQgZXJyb3JNZXNzYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNyZWF0ZUVycm9yTWVzc2FnZXModGhpcy5jb250cm9sLCB0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzSGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzU3RyaW5nKCh0aGlzLm1vZGVsIGFzIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWw8YW55PikuaGludCk7XG4gICAgfVxuXG4gICAgZ2V0IGhpbnQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbCBhcyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPGFueT4pLmhpbnQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyh0aGlzLm1vZGVsLmxhYmVsKTtcbiAgICB9XG5cbiAgICBnZXQgaXNDaGVja2JveCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwudHlwZSA9PT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWDtcbiAgICB9XG5cbiAgICBnZXQgZWxlbWVudElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RWxlbWVudElkKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWxpZDtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0Vycm9yTWVzc2FnZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLmhhc0Vycm9yTWVzc2FnZXMgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgIXRoaXMuaGFzRm9jdXMgJiYgdGhpcy5pc0ludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IHRlbXBsYXRlcygpOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0VGVtcGxhdGVMaXN0ICE9PSB1bmRlZmluZWQgPyB0aGlzLmlucHV0VGVtcGxhdGVMaXN0IDogdGhpcy5jb250ZW50VGVtcGxhdGVMaXN0O1xuICAgIH1cblxuICAgIGdldCBzdGFydFRlbXBsYXRlKCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLnR5cGUgIT09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkgP1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFN0YXJ0VGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldCBlbmRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC50eXBlICE9PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZID9cbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5nZXRFbmRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcykgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3MoY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCwgcGxhY2U6IER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLFxuICAgICAgICAgICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCA9IHRoaXMubW9kZWwpOiBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xMYXlvdXQgPSB0aGlzLmxheW91dFNlcnZpY2UuZmluZEJ5TW9kZWwobW9kZWwsIHRoaXMubGF5b3V0KSB8fCBtb2RlbC5sYXlvdXQgYXMgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0Q2xhc3MoY29udHJvbExheW91dCwgY29udGV4dCwgcGxhY2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5jb21wb25lbnRUeXBlO1xuXG4gICAgICAgIGlmIChjb21wb25lbnRUeXBlICE9PSBudWxsKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRUeXBlKTtcblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRWaWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICAgICAgICAgIGluc3RhbmNlLmdyb3VwID0gdGhpcy5ncm91cDtcbiAgICAgICAgICAgIGluc3RhbmNlLmxheW91dCA9IHRoaXMubGF5b3V0O1xuICAgICAgICAgICAgaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsIGFzIGFueTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudGVtcGxhdGVzKSB7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UudGVtcGxhdGVzID0gdGhpcy50ZW1wbGF0ZXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5wdXNoKGluc3RhbmNlLmJsdXIuc3Vic2NyaWJlKCgkZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkJsdXIoJGV2ZW50KSkpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLnB1c2goaW5zdGFuY2UuY2hhbmdlLnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25DaGFuZ2UoJGV2ZW50KSkpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLnB1c2goaW5zdGFuY2UuZm9jdXMuc3Vic2NyaWJlKCgkZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkZvY3VzKCRldmVudCkpKTtcblxuICAgICAgICAgICAgaWYgKGluc3RhbmNlLmN1c3RvbUV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY3VzdG9tRXZlbnQuc3Vic2NyaWJlKCgkZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkN1c3RvbUV2ZW50KCRldmVudCkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudFJlZih0aGlzLmNvbXBvbmVudFJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveUZvcm1Db250cm9sQ29tcG9uZW50KCk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zID0gW107XG5cbiAgICAgICAgICAgIHRoaXMudW5yZWdpc3RlckNvbXBvbmVudFJlZigpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudDogYW55LCB0eXBlOiBzdHJpbmcpOiBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCB7XG4gICAgICAgIHJldHVybiB7JGV2ZW50LCBjb250ZXh0OiB0aGlzLmNvbnRleHQsIGNvbnRyb2w6IHRoaXMuY29udHJvbCwgZ3JvdXA6IHRoaXMuZ3JvdXAsIG1vZGVsOiB0aGlzLm1vZGVsLCB0eXBlfTtcbiAgICB9XG5cbiAgICB1bnN1YnNjcmliZSgpOiB2b2lkIHtcblxuICAgICAgICAvLyB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAvLyB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMgPSBbXTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBvbkNvbnRyb2xWYWx1ZUNoYW5nZXModmFsdWU6IGFueSk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCAmJiB0aGlzLm1vZGVsLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbFZhbHVlVXBkYXRlcyh2YWx1ZTogYW55KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsRGlzYWJsZWRVcGRhdGVzKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGRpc2FibGVkID8gdGhpcy5jb250cm9sLmRpc2FibGUoKSA6IHRoaXMuY29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZSgkZXZlbnQ6IEV2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQgfCBhbnkpOiB2b2lkIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHsgLy8gbmF0aXZlIEhUTUw1IGNoYW5nZSBldmVudFxuXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC50eXBlID09PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVUKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWwgYXMgRHluYW1pY0lucHV0TW9kZWw7XG5cbiAgICAgICAgICAgICAgICBpZiAobW9kZWwuaW5wdXRUeXBlID09PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9JTlBVVF9UWVBFX0ZJTEUpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQ6IGFueSA9ICRldmVudC50YXJnZXQgfHwgJGV2ZW50LnNyY0VsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZmlsZXMgPSBpbnB1dEVsZW1lbnQuZmlsZXMgYXMgRmlsZUxpc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50LCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudFR5cGUuQ2hhbmdlKSk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCkpIHsgLy8gZXZlbnQgYnlwYXNzXG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBjdXN0b20gbGlicmFyeSB2YWx1ZSBjaGFuZ2UgZXZlbnRcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLkNoYW5nZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKCRldmVudDogRm9jdXNFdmVudCB8IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHwgYW55KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50KSkgeyAvLyBldmVudCBieXBhc3NcblxuICAgICAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBuYXRpdmUgSFRNTCA1IG9yIFVJIGxpYnJhcnkgYmx1ciBldmVudFxuXG4gICAgICAgICAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmJsdXIuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLkJsdXIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50OiBGb2N1c0V2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQgfCBhbnkpOiB2b2lkIHtcblxuICAgICAgICBpZiAoaXNEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQpKSB7IC8vIGV2ZW50IGJ5cGFzc1xuXG4gICAgICAgICAgICB0aGlzLmZvY3VzLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBuYXRpdmUgSFRNTCA1IG9yIFVJIGxpYnJhcnkgZm9jdXMgZXZlbnRcblxuICAgICAgICAgICAgdGhpcy5oYXNGb2N1cyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmZvY3VzLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQsIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZS5Gb2N1cykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DdXN0b21FdmVudCgkZXZlbnQ6IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBlbWl0dGVyID0gdGhpcy5jdXN0b21FdmVudCBhcyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuXG4gICAgICAgIGlmIChpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCkpIHsgLy8gY2hpbGQgZXZlbnQgYnlwYXNzXG5cbiAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSB7IC8vIG5hdGl2ZSBVSSBsaWJyYXJ5IGN1c3RvbSBldmVudFxuXG4gICAgICAgICAgICBlbWl0dGVyLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQuY3VzdG9tRXZlbnQsICRldmVudC5jdXN0b21FdmVudFR5cGUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJDb21wb25lbnRSZWYoaW5zdGFuY2VSZWY6IENvbXBvbmVudFJlZjxEeW5hbWljRm9ybUNvbnRyb2w+KTogdm9pZCB7XG5cbiAgICAgICAgbGV0IGluZGV4O1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNvbnRleHQuaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UucmVnaXN0ZXJGb3JtQ29udHJvbFJlZih0aGlzLm1vZGVsLCBpbnN0YW5jZVJlZiwgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5yZWdpc3RlckNvbXBvbmVudFJlZigpOiB2b2lkIHtcblxuICAgICAgICBsZXQgaW5kZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsKSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuY29udGV4dC5pbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tcG9uZW50U2VydmljZS51bnJlZ2lzdGVyRm9ybUNvbnRyb2xSZWYodGhpcy5tb2RlbC5pZCwgaW5kZXgpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWNBLE9BQU8sRUFHSCwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQzVCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUNILCtCQUErQixFQUMvQiwwQkFBMEIsRUFDN0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQ0gsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUVsQyxNQUFNLG9DQUFvQyxDQUFDO0FBVzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUUzRSxNQUFNLE9BQWdCLG9DQUFvQzs7Ozs7Ozs7OztJQTBCdEQsWUFBZ0MsaUJBQW9DLEVBQ3BDLHdCQUFrRCxFQUNsRCxhQUF1QyxFQUN2QyxpQkFBK0MsRUFDL0MsZ0JBQTZDLEVBQzdDLGVBQTJDO1FBTDNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE4QjtRQUMvQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTZCO1FBQzdDLG9CQUFlLEdBQWYs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QUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUVsRjthQUFNO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0NBQ0o7OztJQXZVRyx1REFBa0Q7O0lBQ2xELHVEQUFxQjs7SUFDckIscURBQWlCOztJQUNqQix3REFBa0I7O0lBQ2xCLHlEQUFvQjs7SUFDcEIscURBQWM7O0lBQ2Qsc0RBQTBCOztJQUMxQixxREFBK0I7O0lBRS9CLG1FQUFxRTs7SUFDckUsaUVBQW1FOztJQUVuRSxvREFBNEM7O0lBQzVDLHNEQUE4Qzs7SUFDOUMsMkRBQStEOztJQUMvRCxxREFBNkM7O0lBRTdDLHlFQUE0Qzs7Ozs7SUFFNUMsNERBQXlEOzs7OztJQUN6RCxzRUFBc0Q7Ozs7O0lBQ3RELDZEQUFrRDs7Ozs7SUFDbEQsNkRBQTZDOzs7OztJQUV2QixpRUFBOEM7Ozs7O0lBQzlDLHdFQUE0RDs7Ozs7SUFDNUQsNkRBQWlEOzs7OztJQUNqRCxpRUFBeUQ7Ozs7O0lBQ3pELGdFQUF1RDs7Ozs7SUFDdkQsK0RBQXFEOzs7OztJQTRCM0UsK0VBQThEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFR5cGUsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLFxuICAgIGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnRcbn0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wtZXZlbnRcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS12YWx1ZS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVksXG4gICAgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YIH0gZnJvbSBcIi4uL21vZGVsL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfSU5QVVRfVFlQRV9GSUxFLFxuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfSU5QVVQsXG4gICAgRHluYW1pY0lucHV0TW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL2lucHV0L2R5bmFtaWMtaW5wdXQubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2Vcbn0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC1pbnRlcmZhY2VcIjtcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtTGF5b3V0LCBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tY29tcG9uZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtR3JvdXBDb21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tZ3JvdXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUFycmF5Q29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWFycmF5LmNvbXBvbmVudFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gICAgY29udGV4dDogRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwgfCBudWxsID0gbnVsbDtcbiAgICBjb250cm9sOiBGb3JtQ29udHJvbDtcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGhhc0ZvY3VzOiBib29sZWFuO1xuICAgIGhvc3RDbGFzczogc3RyaW5nW107XG4gICAga2xhc3M6IHN0cmluZztcbiAgICBsYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0O1xuICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbDtcblxuICAgIGNvbnRlbnRUZW1wbGF0ZUxpc3Q6IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+IHwgdW5kZWZpbmVkO1xuICAgIGlucHV0VGVtcGxhdGVMaXN0OiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcblxuICAgIGJsdXI6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD47XG4gICAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuICAgIGN1c3RvbUV2ZW50OiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+IHwgdW5kZWZpbmVkO1xuICAgIGZvY3VzOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuXG4gICAgY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHByb3RlY3RlZCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxEeW5hbWljRm9ybUNvbnRyb2w+O1xuICAgIHByb3RlY3RlZCBjb21wb25lbnRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBjb250cm9sTGF5b3V0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQ7XG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBjb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXG4gICAgICAgIGNvbnN0IGdyb3VwQ2hhbmdlID0gKGNoYW5nZXMgYXMgUGljazxTaW1wbGVDaGFuZ2VzLCBcImdyb3VwXCI+KS5ncm91cDtcbiAgICAgICAgY29uc3QgbGF5b3V0Q2hhbmdlID0gKGNoYW5nZXMgYXMgUGljazxTaW1wbGVDaGFuZ2VzLCBcImxheW91dFwiPikubGF5b3V0O1xuICAgICAgICBjb25zdCBtb2RlbENoYW5nZSA9IChjaGFuZ2VzIGFzIFBpY2s8U2ltcGxlQ2hhbmdlcywgXCJtb2RlbFwiPikubW9kZWw7XG5cbiAgICAgICAgaWYgKGxheW91dENoYW5nZSB8fCBtb2RlbENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5vbkxheW91dE9yTW9kZWxDaGFuZ2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb2RlbENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBDaGFuZ2UgfHwgbW9kZWxDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMub25Hcm91cE9yTW9kZWxDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuXG4gICAgICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXQgY29tcG9uZW50VHlwZSgpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsO1xuXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RWxlbWVudElkKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIGdldCBoYXNMYWJlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzU3RyaW5nKHRoaXMubW9kZWwubGFiZWwpO1xuICAgIH1cblxuICAgIGdldCBoYXNIaW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcoKHRoaXMubW9kZWwgYXMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+KS5oaW50KTtcbiAgICB9XG5cbiAgICBnZXQgaGludCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsIGFzIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWw8YW55PikuaGludCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBlcnJvck1lc3NhZ2VzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY3JlYXRlRXJyb3JNZXNzYWdlcyh0aGlzLmNvbnRyb2wsIHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIGdldCBzaG93RXJyb3JNZXNzYWdlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaGFzRXJyb3JNZXNzYWdlcyAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCAmJiAhdGhpcy5oYXNGb2N1cyAmJiB0aGlzLmlzSW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXQgaXNDaGVja2JveCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwudHlwZSA9PT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWDtcbiAgICB9XG5cbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wudmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IHRlbXBsYXRlcygpOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0VGVtcGxhdGVMaXN0ICE9PSB1bmRlZmluZWQgPyB0aGlzLmlucHV0VGVtcGxhdGVMaXN0IDogdGhpcy5jb250ZW50VGVtcGxhdGVMaXN0O1xuICAgIH1cblxuICAgIGdldCBzdGFydFRlbXBsYXRlKCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLnR5cGUgIT09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVkgP1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFN0YXJ0VGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldCBlbmRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC50eXBlICE9PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZID9cbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5nZXRFbmRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcykgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3MoY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCwgcGxhY2U6IER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRDbGFzcyh0aGlzLmNvbnRyb2xMYXlvdXQsIGNvbnRleHQsIHBsYWNlKTtcbiAgICB9XG5cbiAgICBtYXJrRm9yQ2hlY2soKTogdm9pZCB7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcblxuICAgICAgICBpZiAoY29tcG9uZW50ICYmIChjb21wb25lbnQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwQ29tcG9uZW50IHx8IGNvbXBvbmVudCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQXJyYXlDb21wb25lbnQpKSB7XG4gICAgICAgICAgICBjb21wb25lbnQubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuY29tcG9uZW50VHlwZTtcblxuICAgICAgICBpZiAoY29tcG9uZW50VHlwZSAhPT0gbnVsbCkge1xuXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50VHlwZSk7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcblxuICAgICAgICAgICAgY29tcG9uZW50LmZvcm1MYXlvdXQgPSB0aGlzLmxheW91dDtcbiAgICAgICAgICAgIGNvbXBvbmVudC5ncm91cCA9IHRoaXMuZ3JvdXA7XG4gICAgICAgICAgICBjb21wb25lbnQubGF5b3V0ID0gdGhpcy5jb250cm9sTGF5b3V0O1xuICAgICAgICAgICAgY29tcG9uZW50Lm1vZGVsID0gdGhpcy5tb2RlbDtcblxuICAgICAgICAgICAgaWYgKHRoaXMudGVtcGxhdGVzKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnRlbXBsYXRlcyA9IHRoaXMudGVtcGxhdGVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMucHVzaChjb21wb25lbnQuYmx1ci5zdWJzY3JpYmUoKCRldmVudDogYW55KSA9PiB0aGlzLm9uQmx1cigkZXZlbnQpKSk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMucHVzaChjb21wb25lbnQuY2hhbmdlLnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25DaGFuZ2UoJGV2ZW50KSkpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLnB1c2goY29tcG9uZW50LmZvY3VzLnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25Gb2N1cygkZXZlbnQpKSk7XG5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnQuY3VzdG9tRXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuY3VzdG9tRXZlbnQuc3Vic2NyaWJlKCgkZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkN1c3RvbUV2ZW50KCRldmVudCkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckZvcm1Db250cm9sQ29tcG9uZW50UmVmKHRoaXMuY29tcG9uZW50UmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXN0cm95Rm9ybUNvbnRyb2xDb21wb25lbnQoKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMgPSBbXTtcblxuICAgICAgICAgICAgdGhpcy51bnJlZ2lzdGVyRm9ybUNvbnRyb2xDb21wb25lbnRSZWYoKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nKTogRHluYW1pY0Zvcm1Db250cm9sRXZlbnQge1xuICAgICAgICByZXR1cm4geyRldmVudCwgY29udGV4dDogdGhpcy5jb250ZXh0LCBjb250cm9sOiB0aGlzLmNvbnRyb2wsIGdyb3VwOiB0aGlzLmdyb3VwLCBtb2RlbDogdGhpcy5tb2RlbCwgdHlwZX07XG4gICAgfVxuXG4gICAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG5cbiAgICAgICAgLy8gdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgLy8gdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zID0gW107XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgb25Db250cm9sVmFsdWVDaGFuZ2VzKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsICYmIHRoaXMubW9kZWwudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsVmFsdWVVcGRhdGVzKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsRGlzYWJsZWRVcGRhdGVzKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGRpc2FibGVkID8gdGhpcy5jb250cm9sLmRpc2FibGUoKSA6IHRoaXMuY29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBvbkxheW91dE9yTW9kZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udHJvbExheW91dCA9IHRoaXMubGF5b3V0U2VydmljZS5maW5kQnlNb2RlbCh0aGlzLm1vZGVsLCB0aGlzLmxheW91dCkgfHwgdGhpcy5tb2RlbC5sYXlvdXQgYXMgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xuICAgICAgICB0aGlzLmtsYXNzID0gYCR7QXJyYXkuaXNBcnJheSh0aGlzLmhvc3RDbGFzcykgPyB0aGlzLmhvc3RDbGFzcy5qb2luKFwiIFwiKSA6IFwiXCJ9ICR7dGhpcy5sYXlvdXRTZXJ2aWNlLmdldEhvc3RDbGFzcyh0aGlzLmNvbnRyb2xMYXlvdXQpfWA7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xDb21wb25lbnQoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtQ29udHJvbENvbXBvbmVudCgpO1xuICAgIH1cblxuICAgIG9uR3JvdXBPck1vZGVsQ2hhbmdlKCk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKSB7XG5cbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZ3JvdXApIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMubW9kZWwuaWQpIGFzIEZvcm1Db250cm9sO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMub25Db250cm9sVmFsdWVDaGFuZ2VzKHZhbHVlKSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1vZGVsLmRpc2FibGVkQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5vbk1vZGVsRGlzYWJsZWRVcGRhdGVzKHZhbHVlKSkpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwpIHtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbCBhcyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPGFueT47XG5cbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChtb2RlbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMub25Nb2RlbFZhbHVlVXBkYXRlcyh2YWx1ZSkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVsYXRpb25zLmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKC4uLnRoaXMucmVsYXRpb25TZXJ2aWNlLnN1YnNjcmliZVJlbGF0aW9ucyh0aGlzLm1vZGVsLCB0aGlzLmdyb3VwLCB0aGlzLmNvbnRyb2wpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlKCRldmVudDogRXZlbnQgfCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCB8IGFueSk6IHZvaWQge1xuXG4gICAgICAgIGlmICgkZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkgeyAvLyBuYXRpdmUgSFRNTDUgY2hhbmdlIGV2ZW50XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnR5cGUgPT09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfSU5QVVQpIHtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbCBhcyBEeW5hbWljSW5wdXRNb2RlbDtcblxuICAgICAgICAgICAgICAgIGlmIChtb2RlbC5pbnB1dFR5cGUgPT09IERZTkFNSUNfRk9STV9DT05UUk9MX0lOUFVUX1RZUEVfRklMRSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0RWxlbWVudDogYW55ID0gJGV2ZW50LnRhcmdldCB8fCAkZXZlbnQuc3JjRWxlbWVudDtcblxuICAgICAgICAgICAgICAgICAgICBtb2RlbC5maWxlcyA9IGlucHV0RWxlbWVudC5maWxlcyBhcyBGaWxlTGlzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQsIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZS5DaGFuZ2UpKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50KSkgeyAvLyBldmVudCBieXBhc3NcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSB7IC8vIGN1c3RvbSBsaWJyYXJ5IHZhbHVlIGNoYW5nZSBldmVudFxuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50LCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudFR5cGUuQ2hhbmdlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoJGV2ZW50OiBGb2N1c0V2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQgfCBhbnkpOiB2b2lkIHtcblxuICAgICAgICBpZiAoaXNEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQpKSB7IC8vIGV2ZW50IGJ5cGFzc1xuXG4gICAgICAgICAgICB0aGlzLmJsdXIuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSB7IC8vIG5hdGl2ZSBIVE1MIDUgb3IgVUkgbGlicmFyeSBibHVyIGV2ZW50XG5cbiAgICAgICAgICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYmx1ci5lbWl0KHRoaXMuY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50LCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudFR5cGUuQmx1cikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cygkZXZlbnQ6IEZvY3VzRXZlbnQgfCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCB8IGFueSk6IHZvaWQge1xuXG4gICAgICAgIGlmIChpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCkpIHsgLy8gZXZlbnQgYnlwYXNzXG5cbiAgICAgICAgICAgIHRoaXMuZm9jdXMuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSB7IC8vIG5hdGl2ZSBIVE1MIDUgb3IgVUkgbGlicmFyeSBmb2N1cyBldmVudFxuXG4gICAgICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLkZvY3VzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkN1c3RvbUV2ZW50KCRldmVudDogRHluYW1pY0Zvcm1Db250cm9sRXZlbnQgfCBEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IGVtaXR0ZXIgPSB0aGlzLmN1c3RvbUV2ZW50IGFzIEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xFdmVudD47XG5cbiAgICAgICAgaWYgKGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50KSkgeyAvLyBjaGlsZCBldmVudCBieXBhc3NcblxuICAgICAgICAgICAgZW1pdHRlci5lbWl0KCRldmVudCk7XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gbmF0aXZlIFVJIGxpYnJhcnkgY3VzdG9tIGV2ZW50XG5cbiAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudC5jdXN0b21FdmVudCwgJGV2ZW50LmN1c3RvbUV2ZW50VHlwZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckZvcm1Db250cm9sQ29tcG9uZW50UmVmKHJlZjogQ29tcG9uZW50UmVmPER5bmFtaWNGb3JtQ29udHJvbD4pOiB2b2lkIHtcblxuICAgICAgICBpZiAodGhpcy5jb250ZXh0IGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyRm9ybUNvbnRyb2wodGhpcy5tb2RlbCwgcmVmLCB0aGlzLmNvbnRleHQuaW5kZXgpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UucmVnaXN0ZXJGb3JtQ29udHJvbCh0aGlzLm1vZGVsLCByZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnJlZ2lzdGVyRm9ybUNvbnRyb2xDb21wb25lbnRSZWYoKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U2VydmljZS51bnJlZ2lzdGVyRm9ybUNvbnRyb2wodGhpcy5tb2RlbC5pZCwgdGhpcy5jb250ZXh0LmluZGV4KTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLnVucmVnaXN0ZXJGb3JtQ29udHJvbCh0aGlzLm1vZGVsLmlkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==

@@ -34,3 +34,3 @@ /**

*/
get elementId() {
get id() {
return this.layoutService.getElementId(this.model);

@@ -47,2 +47,8 @@ }

*/
get showErrorMessages() {
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
}
/**
* @return {?}
*/
get hasFocus() {

@@ -64,8 +70,2 @@ return this._hasFocus;

/**
* @return {?}
*/
get showErrorMessages() {
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
}
/**
* @param {?} context

@@ -78,3 +78,4 @@ * @param {?} place

/** @type {?} */
const controlLayout = this.layoutService.findByModel(model, this.layout) || (/** @type {?} */ (model.layout));
const controlLayout = model === this.model ? this.layout :
this.layoutService.findByModel(model, this.formLayout) || (/** @type {?} */ (model.layout));
return this.layoutService.getClass(controlLayout, context, place);

@@ -105,11 +106,2 @@ }

* @param {?} $event
* @param {?} model
* @return {?}
*/
onEmbeddedCheckboxChange($event, model) {
this.onChange($event);
model.value = ((/** @type {?} */ ($event.target))).checked;
}
/**
* @param {?} $event
* @param {?=} type

@@ -120,9 +112,7 @@ * @param {?=} bypass

onCustomEvent($event, type = null, bypass = false) {
/** @type {?} */
const emitter = (/** @type {?} */ (this.customEvent));
if (bypass) {
emitter.emit($event);
this.customEvent.emit($event);
}
else if (isString(type)) {
emitter.emit({ customEvent: $event, customEventType: type });
this.customEvent.emit({ customEvent: $event, customEventType: type });
}

@@ -149,2 +139,4 @@ }

/** @type {?} */
DynamicFormControlComponent.prototype.formLayout;
/** @type {?} */
DynamicFormControlComponent.prototype.group;

@@ -176,2 +168,2 @@ /** @type {?} */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFpQkEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRS9DLE1BQU0sT0FBZ0IsMkJBQTJCOzs7Ozs7SUFjN0MsWUFBZ0MsYUFBdUMsRUFDdkMsaUJBQStDO1FBRC9DLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBYnZFLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFjbkMsQ0FBQzs7OztJQUVELElBQUksT0FBTzs7Y0FFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMvRjtRQUVELE9BQU8sbUJBQUEsT0FBTyxFQUFtQixDQUFDO0lBQ3RDLENBQUM7Ozs7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7O0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7OztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDOzs7O0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDOzs7O0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDOzs7O0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ25HLENBQUM7Ozs7Ozs7SUFFRCxRQUFRLENBQUMsT0FBd0MsRUFBRSxLQUFvQyxFQUM5RSxRQUFpQyxJQUFJLENBQUMsS0FBSzs7Y0FFMUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksbUJBQUEsS0FBSyxDQUFDLE1BQU0sRUFBNEI7UUFFcEgsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFFZCxJQUFJLE1BQU0sWUFBWSxLQUFLLEVBQUU7WUFDekIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFRCxRQUFRLENBQUMsTUFBVztRQUVoQixJQUFJLE1BQU0sWUFBWSxLQUFLLEVBQUU7WUFDekIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7Ozs7O0lBRUQsd0JBQXdCLENBQUMsTUFBYSxFQUFFLEtBQTJCO1FBRS9ELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLG1CQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDOUQsQ0FBQzs7Ozs7OztJQUVELGFBQWEsQ0FBQyxNQUFXLEVBQUUsT0FBc0IsSUFBSSxFQUFFLFNBQWtCLEtBQUs7O2NBRXBFLE9BQU8sR0FBRyxtQkFBQSxJQUFJLENBQUMsV0FBVyxFQUErQztRQUUvRSxJQUFJLE1BQU0sRUFBRTtZQUVSLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FFeEI7YUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUV2QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztTQUM5RDtJQUNMLENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLE1BQVc7UUFFZixJQUFJLE1BQU0sWUFBWSxLQUFLLEVBQUU7WUFDekIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNKOzs7Ozs7SUE1R0csZ0RBQW1DOztJQUVuQyw0Q0FBaUI7O0lBQ2pCLDZDQUEwQjs7SUFDMUIsNENBQStCOztJQUMvQixnREFBdUM7O0lBRXZDLDJDQUF3Qjs7SUFDeEIsNkNBQTBCOztJQUMxQixrREFBcUU7O0lBQ3JFLDRDQUF5Qjs7Ozs7SUFFSCxvREFBaUQ7Ozs7O0lBQ2pELHdEQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudCB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLmV2ZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0NoZWNrYm94TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZVxufSBmcm9tIFwiLi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXNcbn0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBEeW5hbWljRm9ybUNvbnRyb2wge1xuXG4gICAgcHJpdmF0ZSBfaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG4gICAgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXM7XG5cbiAgICBibHVyOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGN1c3RvbUV2ZW50OiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQ+IHwgdW5kZWZpbmVkO1xuICAgIGZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBuZXZlciB7XG5cbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMubW9kZWwuaWQpO1xuXG4gICAgICAgIGlmIChjb250cm9sID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGZvcm0gZ3JvdXAgZG9lcyBub3QgY29udGFpbiBhbiBhYnN0cmFjdCBjb250cm9sIHdpdGggaWQgJHt0aGlzLm1vZGVsLmlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2wgYXMgQWJzdHJhY3RDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBlbGVtZW50SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRFbGVtZW50SWQodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGVycm9yTWVzc2FnZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU2VydmljZS5jcmVhdGVFcnJvck1lc3NhZ2VzKHRoaXMuY29udHJvbCwgdGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRm9jdXM7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIGdldCBzaG93RXJyb3JNZXNzYWdlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaGFzRXJyb3JNZXNzYWdlcyAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCAmJiAhdGhpcy5oYXNGb2N1cyAmJiB0aGlzLmlzSW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXRDbGFzcyhjb250ZXh0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LCBwbGFjZTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2UsXG4gICAgICAgICAgICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsID0gdGhpcy5tb2RlbCk6IHN0cmluZyB7XG5cbiAgICAgICAgY29uc3QgY29udHJvbExheW91dCA9IHRoaXMubGF5b3V0U2VydmljZS5maW5kQnlNb2RlbChtb2RlbCwgdGhpcy5sYXlvdXQpIHx8IG1vZGVsLmxheW91dCBhcyBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRDbGFzcyhjb250cm9sTGF5b3V0LCBjb250ZXh0LCBwbGFjZSk7XG4gICAgfVxuXG4gICAgb25CbHVyKCRldmVudDogYW55KSB7XG5cbiAgICAgICAgaWYgKCRldmVudCBpbnN0YW5jZW9mIEV2ZW50KSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oYXNGb2N1cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlKCRldmVudDogYW55KSB7XG5cbiAgICAgICAgaWYgKCRldmVudCBpbnN0YW5jZW9mIEV2ZW50KSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgb25FbWJlZGRlZENoZWNrYm94Q2hhbmdlKCRldmVudDogRXZlbnQsIG1vZGVsOiBEeW5hbWljQ2hlY2tib3hNb2RlbCkge1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UoJGV2ZW50KTtcblxuICAgICAgICBtb2RlbC52YWx1ZSA9ICgkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgb25DdXN0b21FdmVudCgkZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJ5cGFzczogYm9vbGVhbiA9IGZhbHNlKSB7XG5cbiAgICAgICAgY29uc3QgZW1pdHRlciA9IHRoaXMuY3VzdG9tRXZlbnQgYXMgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50PjtcblxuICAgICAgICBpZiAoYnlwYXNzKSB7XG5cbiAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodHlwZSkpIHtcblxuICAgICAgICAgICAgZW1pdHRlci5lbWl0KHtjdXN0b21FdmVudDogJGV2ZW50LCBjdXN0b21FdmVudFR5cGU6IHR5cGV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50OiBhbnkpIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1cy5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFnQkEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRS9DLE1BQU0sT0FBZ0IsMkJBQTJCOzs7Ozs7SUFlN0MsWUFBZ0MsYUFBdUMsRUFDdkMsaUJBQStDO1FBRC9DLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBZHZFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFlMUIsQ0FBQzs7OztJQUVELElBQUksT0FBTzs7Y0FFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFFN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMvRjtRQUVELE9BQU8sbUJBQUEsT0FBTyxFQUFtQixDQUFDO0lBQ3RDLENBQUM7Ozs7SUFFRCxJQUFJLEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7O0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7OztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRyxDQUFDOzs7O0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLENBQUM7Ozs7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7Ozs7Ozs7SUFFRCxRQUFRLENBQUMsT0FBd0MsRUFBRSxLQUFvQyxFQUM5RSxRQUFpQyxJQUFJLENBQUMsS0FBSzs7Y0FFMUMsYUFBYSxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxtQkFBQSxLQUFLLENBQUMsTUFBTSxFQUE0QjtRQUV0RyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsTUFBVztRQUVkLElBQUksTUFBTSxZQUFZLEtBQUssRUFBRTtZQUN6QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBRWhCLElBQUksTUFBTSxZQUFZLEtBQUssRUFBRTtZQUN6QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7Ozs7O0lBRUQsYUFBYSxDQUFDLE1BQVcsRUFBRSxPQUFzQixJQUFJLEVBQUUsU0FBa0IsS0FBSztRQUUxRSxJQUFJLE1BQU0sRUFBRTtZQUVSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBRWpDO2FBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFFdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsTUFBVztRQUVmLElBQUksTUFBTSxZQUFZLEtBQUssRUFBRTtZQUN6QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0o7Ozs7OztJQXJHRyxnREFBMEI7O0lBRTFCLGlEQUE4Qjs7SUFDOUIsNENBQWlCOztJQUNqQiw2Q0FBaUM7O0lBQ2pDLDRDQUErQjs7SUFDL0IsZ0RBQXVDOztJQUV2QywyQ0FBd0I7O0lBQ3hCLDZDQUEwQjs7SUFDMUIsa0RBQXlEOztJQUN6RCw0Q0FBeUI7Ozs7O0lBRUgsb0RBQWlEOzs7OztJQUNqRCx3REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbCB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLWludGVyZmFjZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC1ldmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2Vcbn0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUxheW91dCxcbiAgICBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzXG59IGZyb20gXCIuLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZVwiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0Zvcm1Db250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgRHluYW1pY0Zvcm1Db250cm9sIHtcblxuICAgIHByaXZhdGUgX2hhc0ZvY3VzID0gZmFsc2U7XG5cbiAgICBmb3JtTGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xuICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbDtcbiAgICB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcztcblxuICAgIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XG4gICAgY3VzdG9tRXZlbnQ6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudD47XG4gICAgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSkge1xuICAgIH1cblxuICAgIGdldCBjb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB8IG5ldmVyIHtcblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5ncm91cC5nZXQodGhpcy5tb2RlbC5pZCk7XG5cbiAgICAgICAgaWYgKGNvbnRyb2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZm9ybSBncm91cCBkb2VzIG5vdCBjb250YWluIGFuIGFic3RyYWN0IGNvbnRyb2wgd2l0aCBpZCAke3RoaXMubW9kZWwuaWR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udHJvbCBhcyBBYnN0cmFjdENvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RWxlbWVudElkKHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIGdldCBlcnJvck1lc3NhZ2VzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY3JlYXRlRXJyb3JNZXNzYWdlcyh0aGlzLmNvbnRyb2wsIHRoaXMubW9kZWwpO1xuICAgIH1cblxuICAgIGdldCBzaG93RXJyb3JNZXNzYWdlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaGFzRXJyb3JNZXNzYWdlcyAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCAmJiAhdGhpcy5oYXNGb2N1cyAmJiB0aGlzLmlzSW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNGb2N1cztcbiAgICB9XG5cbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wudmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3MoY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCwgcGxhY2U6IER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlLFxuICAgICAgICAgICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCA9IHRoaXMubW9kZWwpOiBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xMYXlvdXQgPSBtb2RlbCA9PT0gdGhpcy5tb2RlbCA/IHRoaXMubGF5b3V0IDpcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5maW5kQnlNb2RlbChtb2RlbCwgdGhpcy5mb3JtTGF5b3V0KSB8fCBtb2RlbC5sYXlvdXQgYXMgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0Q2xhc3MoY29udHJvbExheW91dCwgY29udGV4dCwgcGxhY2UpO1xuICAgIH1cblxuICAgIG9uQmx1cigkZXZlbnQ6IGFueSkge1xuXG4gICAgICAgIGlmICgkZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faGFzRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZSgkZXZlbnQ6IGFueSkge1xuXG4gICAgICAgIGlmICgkZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uQ3VzdG9tRXZlbnQoJGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBieXBhc3M6IGJvb2xlYW4gPSBmYWxzZSkge1xuXG4gICAgICAgIGlmIChieXBhc3MpIHtcblxuICAgICAgICAgICAgdGhpcy5jdXN0b21FdmVudC5lbWl0KCRldmVudCk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChpc1N0cmluZyh0eXBlKSkge1xuXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUV2ZW50LmVtaXQoe2N1c3RvbUV2ZW50OiAkZXZlbnQsIGN1c3RvbUV2ZW50VHlwZTogdHlwZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cygkZXZlbnQ6IGFueSkge1xuXG4gICAgICAgIGlmICgkZXZlbnQgaW5zdGFuY2VvZiBFdmVudCkge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faGFzRm9jdXMgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzLmVtaXQoJGV2ZW50KTtcbiAgICB9XG59XG4iXX0=

@@ -6,11 +6,11 @@ /**

export { DynamicFormArrayComponent } from "./component/dynamic-form-array.component";
export { DynamicFormComponent } from "./component/dynamic-form-component";
export { DynamicFormGroupComponent } from "./component/dynamic-form-group.component";
export { DynamicFormComponent } from "./component/dynamic-form.component";
export { DynamicFormControlContainerComponent } from "./component/dynamic-form-control-container.component";
export { isDynamicFormControlEvent, DynamicFormControlEventType } from "./component/dynamic-form-control.event";
export { isDynamicFormControlEvent, DynamicFormControlEventType } from "./component/dynamic-form-control-event";
export { DynamicFormControlComponent } from "./component/dynamic-form-control.component";
export {} from "./component/dynamic-form-control.interface";
export { DynamicTemplateableFormControlComponent } from "./component/dynamic-templateable-form-control.component";
export {} from "./component/dynamic-templateable-form-control.interface";
export {} from "./component/dynamic-form-control-interface";
export { DynamicFormControlWithTemplateComponent } from "./component/dynamic-form-control-with-template.component";
export {} from "./component/dynamic-form-control-with-template-interface";
export { serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE } from "./decorator/serializable.decorator";
export { DynamicIdDirective } from "./directive/dynamic-id.directive";
export { DynamicListDirective } from "./directive/dynamic-list.directive";

@@ -51,4 +51,4 @@ export { DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective } from "./directive/dynamic-template.directive";

export { DynamicFormValidationService } from "./service/dynamic-form-validation.service";
export { MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DisabledMatcher, HiddenMatcher, RequiredMatcher, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DYNAMIC_MATCHER_PROVIDERS } from "./service/dynamic-form-relation.matchers";
export { DYNAMIC_VALIDATORS } from "./service/dynamic-form.validators";
export { MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DISABLED_MATCHER_PROVIDER, HIDDEN_MATCHER_PROVIDER, REQUIRED_MATCHER_PROVIDER, DYNAMIC_MATCHER_PROVIDERS } from "./service/dynamic-form-relation-matchers";
export { DYNAMIC_VALIDATORS } from "./service/dynamic-form-validators";
export { isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT } from "./utils/autofill.utils";

@@ -58,2 +58,2 @@ export { isBoolean, isFunction, isNumber, isObject, isString } from "./utils/core.utils";

export { DynamicFormsCoreModule } from "./core.module";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMENBQWMsMENBQTBDLENBQUM7QUFDekQscUNBQWMsb0NBQW9DLENBQUM7QUFDbkQscURBQWMsc0RBQXNELENBQUM7QUFDckUsdUVBQWMsd0NBQXdDLENBQUM7QUFDdkQsNENBQWMsNENBQTRDLENBQUM7QUFDM0QsZUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCx3REFBYyx5REFBeUQsQ0FBQztBQUN4RSxlQUFjLHlEQUF5RCxDQUFDO0FBRXhFLHFGQUFjLG9DQUFvQyxDQUFDO0FBRW5ELG1DQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHFDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELCtFQUFjLHdDQUF3QyxDQUFDO0FBRXZELHdDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNEJBQTRCLENBQUM7QUFDM0MsNkNBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsNkRBQWMsc0NBQXNDLENBQUM7QUFFckQseUVBQWMseUNBQXlDLENBQUM7QUFDeEQsb0ZBQWMsK0NBQStDLENBQUM7QUFDOUQsK0VBQWMsK0NBQStDLENBQUM7QUFDOUQsNkVBQWMsNkNBQTZDLENBQUM7QUFDNUQscUVBQWMscUNBQXFDLENBQUM7QUFDcEQsOEVBQWMsK0NBQStDLENBQUM7QUFDOUQsdUVBQWMsNkNBQTZDLENBQUM7QUFDNUQsbUdBQWMsNkNBQTZDLENBQUM7QUFDNUQsaXBCQUFjLG1DQUFtQyxDQUFDO0FBQ2xELDhFQUFjLHlDQUF5QyxDQUFDO0FBQ3hELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELDJJQUFjLHlDQUF5QyxDQUFDO0FBQ3hELDZFQUFjLDZDQUE2QyxDQUFDO0FBRTVELGVBQWMsZ0RBQWdELENBQUM7QUFDL0QsZUFBYyw4Q0FBOEMsQ0FBQztBQUM3RCxlQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGVBQWMsb0RBQW9ELENBQUM7QUFFbkUsbUNBQWMsZ0NBQWdDLENBQUM7QUFDL0MseUVBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMsdUNBQXVDLENBQUM7QUFDdEQsMkNBQWMseUNBQXlDLENBQUM7QUFDeEQsNkNBQWMsMkNBQTJDLENBQUM7QUFFMUQsd1JBQWMsMENBQTBDLENBQUM7QUFDekQsbUNBQWMsbUNBQW1DLENBQUM7QUFFbEQsczFEQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLG9FQUFjLG9CQUFvQixDQUFDO0FBQ25DLDJEQUFjLG9CQUFvQixDQUFDO0FBRW5DLHVDQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tYXJyYXkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC5ldmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLmludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtdGVtcGxhdGVhYmxlLWZvcm0tY29udHJvbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLXRlbXBsYXRlYWJsZS1mb3JtLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvci9zZXJpYWxpemFibGUuZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLWlkLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlL2R5bmFtaWMtbGlzdC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1mb3JtLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1jaGVjay1jb250cm9sLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWRhdGUtY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1maWxlLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtaW5wdXQtY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1vcHRpb24tY29udHJvbC5tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9jaGVja2JveC9keW5hbWljLWNoZWNrYm94Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9jaGVja2JveC9keW5hbWljLWNoZWNrYm94LWdyb3VwLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9jb2xvcnBpY2tlci9keW5hbWljLWNvbG9ycGlja2VyLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9kYXRlcGlja2VyL2R5bmFtaWMtZGF0ZXBpY2tlci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZWRpdG9yL2R5bmFtaWMtZWRpdG9yLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9maWxlLXVwbG9hZC9keW5hbWljLWZpbGUtdXBsb2FkLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9mb3JtLWdyb3VwL2R5bmFtaWMtZm9ybS1ncm91cC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZm9ybS1hcnJheS9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2lucHV0L2R5bmFtaWMtaW5wdXQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3JhZGlvL2R5bmFtaWMtcmFkaW8tZ3JvdXAubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3JhdGluZy9keW5hbWljLXJhdGluZy5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9zbGlkZXIvZHluYW1pYy1zbGlkZXIubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3N3aXRjaC9keW5hbWljLXN3aXRjaC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvdGltZXBpY2tlci9keW5hbWljLXRpbWVwaWNrZXIubW9kZWxcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcGF0aC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1yZWxhdGlvbi5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC12YWxpZGF0aW9uLm1vZGVsXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tcmVsYXRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLm1hdGNoZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS52YWxpZGF0b3JzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL2F1dG9maWxsLnV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9jb3JlLnV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9qc29uLnV0aWxzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUubW9kdWxlXCI7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMENBQWMsMENBQTBDLENBQUM7QUFDekQsMENBQWMsMENBQTBDLENBQUM7QUFDekQscUNBQWMsb0NBQW9DLENBQUM7QUFDbkQscURBQWMsc0RBQXNELENBQUM7QUFDckUsdUVBQWMsd0NBQXdDLENBQUM7QUFDdkQsNENBQWMsNENBQTRDLENBQUM7QUFDM0QsZUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCx3REFBYywwREFBMEQsQ0FBQztBQUN6RSxlQUFjLDBEQUEwRCxDQUFDO0FBRXpFLHFGQUFjLG9DQUFvQyxDQUFDO0FBRW5ELHFDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELCtFQUFjLHdDQUF3QyxDQUFDO0FBRXZELHdDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNEJBQTRCLENBQUM7QUFDM0MsNkNBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsNkRBQWMsc0NBQXNDLENBQUM7QUFFckQseUVBQWMseUNBQXlDLENBQUM7QUFDeEQsb0ZBQWMsK0NBQStDLENBQUM7QUFDOUQsK0VBQWMsK0NBQStDLENBQUM7QUFDOUQsNkVBQWMsNkNBQTZDLENBQUM7QUFDNUQscUVBQWMscUNBQXFDLENBQUM7QUFDcEQsOEVBQWMsK0NBQStDLENBQUM7QUFDOUQsdUVBQWMsNkNBQTZDLENBQUM7QUFDNUQsbUdBQWMsNkNBQTZDLENBQUM7QUFDNUQsaXBCQUFjLG1DQUFtQyxDQUFDO0FBQ2xELDhFQUFjLHlDQUF5QyxDQUFDO0FBQ3hELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELDJJQUFjLHlDQUF5QyxDQUFDO0FBQ3hELDZFQUFjLDZDQUE2QyxDQUFDO0FBRTVELGVBQWMsZ0RBQWdELENBQUM7QUFDL0QsZUFBYyw4Q0FBOEMsQ0FBQztBQUM3RCxlQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGVBQWMsb0RBQW9ELENBQUM7QUFFbkUsbUNBQWMsZ0NBQWdDLENBQUM7QUFDL0MseUVBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMsdUNBQXVDLENBQUM7QUFDdEQsMkNBQWMseUNBQXlDLENBQUM7QUFDeEQsNkNBQWMsMkNBQTJDLENBQUM7QUFFMUQsc1RBQWMsMENBQTBDLENBQUM7QUFDekQsbUNBQWMsbUNBQW1DLENBQUM7QUFFbEQsczFEQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLG9FQUFjLG9CQUFvQixDQUFDO0FBQ25DLDJEQUFjLG9CQUFvQixDQUFDO0FBRW5DLHVDQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tYXJyYXkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wtZXZlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC1pbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC13aXRoLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLXdpdGgtdGVtcGxhdGUtaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvci9zZXJpYWxpemFibGUuZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLWxpc3QuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmUvZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtZm9ybS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1mb3JtLXZhbHVlLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtY2hlY2stY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1kYXRlLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtZmlsZS1jb250cm9sLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWlucHV0LWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtb3B0aW9uLWNvbnRyb2wubW9kZWxcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC1ncm91cC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvY29sb3JwaWNrZXIvZHluYW1pYy1jb2xvcnBpY2tlci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZGF0ZXBpY2tlci9keW5hbWljLWRhdGVwaWNrZXIubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2VkaXRvci9keW5hbWljLWVkaXRvci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZmlsZS11cGxvYWQvZHluYW1pYy1maWxlLXVwbG9hZC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZm9ybS1ncm91cC9keW5hbWljLWZvcm0tZ3JvdXAubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9pbnB1dC9keW5hbWljLWlucHV0Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9yYWRpby9keW5hbWljLXJhZGlvLWdyb3VwLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9yYXRpbmcvZHluYW1pYy1yYXRpbmcubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3NlbGVjdC9keW5hbWljLXNlbGVjdC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvc2xpZGVyL2R5bmFtaWMtc2xpZGVyLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9zd2l0Y2gvZHluYW1pYy1zd2l0Y2gubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3RpbWVwaWNrZXIvZHluYW1pYy10aW1lcGlja2VyLm1vZGVsXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXBhdGgubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcmVsYXRpb24ubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbi5tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1jb21wb25lbnQuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1yZWxhdGlvbi1tYXRjaGVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdG9yc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9hdXRvZmlsbC51dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvY29yZS51dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvanNvbi51dGlsc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlLm1vZHVsZVwiO1xuIl19

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

import { ReactiveFormsModule } from "@angular/forms";
import { DynamicIdDirective } from "./directive/dynamic-id.directive";
import { DynamicListDirective } from "./directive/dynamic-list.directive";

@@ -42,3 +41,2 @@ import { DynamicTemplateDirective } from "./directive/dynamic-template.directive";

declarations: [
DynamicIdDirective,
DynamicListDirective,

@@ -48,3 +46,2 @@ DynamicTemplateDirective

exports: [
DynamicIdDirective,
DynamicListDirective,

@@ -55,2 +52,2 @@ DynamicTemplateDirective

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFrQnJGLE1BQU0sT0FBTyxzQkFBc0I7Ozs7O0lBRy9CLE1BQU0sQ0FBQyxPQUFPO1FBRVYsT0FBTztZQUNILFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEIsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2FBQzdCO1NBQ0osQ0FBQztJQUNOLENBQUM7OztZQS9CSixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osbUJBQW1CO2lCQUN0QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1Ysa0JBQWtCO29CQUNsQixvQkFBb0I7b0JBQ3BCLHdCQUF3QjtpQkFDM0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGtCQUFrQjtvQkFDbEIsb0JBQW9CO29CQUNwQix3QkFBd0I7aUJBQzNCO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljSWREaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmUvZHluYW1pYy1pZC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNMaXN0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlL2R5bmFtaWMtbGlzdC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS12YWxpZGF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2VcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIER5bmFtaWNJZERpcmVjdGl2ZSxcbiAgICAgICAgRHluYW1pY0xpc3REaXJlY3RpdmUsXG4gICAgICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBEeW5hbWljSWREaXJlY3RpdmUsXG4gICAgICAgIER5bmFtaWNMaXN0RGlyZWN0aXZlLFxuICAgICAgICBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3Jtc0NvcmVNb2R1bGUge1xuXG4gICAgLypAZGVwcmVjYXRlZCovXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBEeW5hbWljRm9ybXNDb3JlTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFnQnJGLE1BQU0sT0FBTyxzQkFBc0I7Ozs7O0lBRy9CLE1BQU0sQ0FBQyxPQUFPO1FBRVYsT0FBTztZQUNILFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEIsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2FBQzdCO1NBQ0osQ0FBQztJQUNOLENBQUM7OztZQTdCSixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osbUJBQW1CO2lCQUN0QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1Ysb0JBQW9CO29CQUNwQix3QkFBd0I7aUJBQzNCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxvQkFBb0I7b0JBQ3BCLHdCQUF3QjtpQkFDM0I7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNMaXN0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlL2R5bmFtaWMtbGlzdC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS12YWxpZGF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2VcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIER5bmFtaWNMaXN0RGlyZWN0aXZlLFxuICAgICAgICBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRHluYW1pY0xpc3REaXJlY3RpdmUsXG4gICAgICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1zQ29yZU1vZHVsZSB7XG5cbiAgICAvKkBkZXByZWNhdGVkKi9cbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IER5bmFtaWNGb3Jtc0NvcmVNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBEeW5hbWljRm9ybVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19

@@ -8,3 +8,4 @@ /**

const DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT = {
Start: "START", End: "END",
Start: "START",
End: "END",
};

@@ -52,2 +53,2 @@ export { DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFFWCxPQUFRLE9BQU8sRUFBRSxLQUFNLEtBQUs7OztBQUsvRSxNQUFNLE9BQU8sd0JBQXdCOzs7O0lBUWpDLFlBQW1CLFdBQTZCO1FBQTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQU52QyxVQUFLLEdBQVcsb0NBQW9DLENBQUMsR0FBRyxDQUFDO1FBQ3pELE9BQUUsR0FBa0IsSUFBSSxDQUFDO0lBS2lCLENBQUM7OztZQVh2RCxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDZDQUE2QzthQUMxRDs7OztZQU4wQixXQUFXOzs7b0JBU2pDLEtBQUs7aUJBQ0wsS0FBSztvQkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSzs7OztJQUpOLHlDQUFrRTs7SUFDbEUsc0NBQWtDOztJQUNsQyx5Q0FBbUM7O0lBQ25DLDJDQUF5Qjs7SUFDekIsNkNBQTJCOztJQUVmLCtDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGVudW0gRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5UIHsgU3RhcnQgPSBcIlNUQVJUXCIsIEVuZCA9IFwiRU5EXCJ9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIm5nLXRlbXBsYXRlW21vZGVsSWRdLG5nLXRlbXBsYXRlW21vZGVsVHlwZV1cIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gICAgQElucHV0KCkgYWxpZ246IHN0cmluZyA9IERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVC5FbmQ7XG4gICAgQElucHV0KCkgYXM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbW9kZWxJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1vZGVsVHlwZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFHMUQsT0FBUSxPQUFPO0lBQ2YsS0FBTSxLQUFLOzs7QUFNZixNQUFNLE9BQU8sd0JBQXdCOzs7O0lBUWpDLFlBQW1CLFdBQTZCO1FBQTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQU52QyxVQUFLLEdBQVcsb0NBQW9DLENBQUMsR0FBRyxDQUFDO1FBQ3pELE9BQUUsR0FBa0IsSUFBSSxDQUFDO0lBTWxDLENBQUM7OztZQVpKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsNkNBQTZDO2FBQzFEOzs7O1lBVDBCLFdBQVc7OztvQkFZakMsS0FBSztpQkFDTCxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLOzs7O0lBSk4seUNBQWtFOztJQUNsRSxzQ0FBa0M7O0lBQ2xDLHlDQUFtQzs7SUFDbkMsMkNBQXlCOztJQUN6Qiw2Q0FBMkI7O0lBRWYsK0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgZW51bSBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlQge1xuICAgIFN0YXJ0ID0gXCJTVEFSVFwiLFxuICAgIEVuZCA9IFwiRU5EXCJcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwibmctdGVtcGxhdGVbbW9kZWxJZF0sbmctdGVtcGxhdGVbbW9kZWxUeXBlXVwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBASW5wdXQoKSBhbGlnbjogc3RyaW5nID0gRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5ULkVuZDtcbiAgICBASW5wdXQoKSBhczogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBtb2RlbElkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbW9kZWxUeXBlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB9XG59XG4iXX0=

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

import { serializable } from "../decorator/serializable.decorator";
import { AUTOCOMPLETE_ON } from "../utils/autofill.utils";
import { isBoolean, isNumber } from "../utils/core.utils";

@@ -48,3 +47,3 @@ /**

super(config, layout);
this.autoComplete = config.autoComplete || AUTOCOMPLETE_ON;
this.autoComplete = config.autoComplete || "on";
this.autoFocus = isBoolean(config.autoFocus) ? config.autoFocus : false;

@@ -116,2 +115,2 @@ this.maxLength = isNumber(config.maxLength) ? config.maxLength : null;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC1jb250cm9sLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbC9keW5hbWljLWlucHV0LWNvbnRyb2wubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQXNDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUUxRCxvREFXQzs7O0lBVEcsc0RBQXNCOztJQUN0QixtREFBb0I7O0lBQ3BCLG1EQUFtQjs7SUFDbkIsbURBQW1COztJQUNuQixxREFBcUI7O0lBQ3JCLGdEQUFnQjs7SUFDaEIsa0RBQW1COztJQUNuQixvREFBcUI7O0lBQ3JCLGdEQUFnQjs7Ozs7O0FBR3BCLE1BQU0sT0FBZ0Isd0JBQTRCLFNBQVEsNEJBQStCOzs7Ozs7SUFZckYsWUFBc0IsTUFBeUMsRUFBRSxNQUFpQztRQUU5RixLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxlQUFlLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEMsQ0FBQztDQUNKO0FBeEJtQjtJQUFmLFlBQVksRUFBRTs7OERBQXNCO0FBQ3JCO0lBQWYsWUFBWSxFQUFFOzsyREFBb0I7QUFDbkI7SUFBZixZQUFZLEVBQUU7OzJEQUEwQjtBQUN6QjtJQUFmLFlBQVksRUFBRTs7MkRBQTBCO0FBQ3pCO0lBQWYsWUFBWSxFQUFFOzs2REFBcUI7QUFDcEI7SUFBZixZQUFZLEVBQUU7O3dEQUF1QjtBQUN0QjtJQUFmLFlBQVksRUFBRTs7MERBQW1CO0FBQ2xCO0lBQWYsWUFBWSxFQUFFOzs0REFBcUI7QUFDcEI7SUFBZixZQUFZLEVBQUU7O3dEQUF1Qjs7O0lBUnRDLGdEQUFxQzs7SUFDckMsNkNBQW1DOztJQUNuQyw2Q0FBeUM7O0lBQ3pDLDZDQUF5Qzs7SUFDekMsK0NBQW9DOztJQUNwQywwQ0FBc0M7O0lBQ3RDLDRDQUFrQzs7SUFDbEMsOENBQW9DOztJQUNwQywwQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsLCBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsQ29uZmlnIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXZhbHVlLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB9IGZyb20gXCIuL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBzZXJpYWxpemFibGUgfSBmcm9tIFwiLi4vZGVjb3JhdG9yL3NlcmlhbGl6YWJsZS5kZWNvcmF0b3JcIjtcbmltcG9ydCB7IEFVVE9DT01QTEVURV9PTiB9IGZyb20gXCIuLi91dGlscy9hdXRvZmlsbC51dGlsc1wiO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc051bWJlciB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsQ29uZmlnPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbENvbmZpZzxUPiB7XG5cbiAgICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gICAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICByZWFkT25seT86IGJvb2xlYW47XG4gICAgc3BlbGxDaGVjaz86IGJvb2xlYW47XG4gICAgc3VmZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxUPiB7XG5cbiAgICBAc2VyaWFsaXphYmxlKCkgYXV0b0NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICBAc2VyaWFsaXphYmxlKCkgbWF4TGVuZ3RoOiBudW1iZXIgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoKSBtaW5MZW5ndGg6IG51bWJlciB8IG51bGw7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgcmVhZE9ubHk6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHNwZWxsQ2hlY2s6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHN1ZmZpeDogc3RyaW5nIHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNJbnB1dENvbnRyb2xNb2RlbENvbmZpZzxUPiwgbGF5b3V0PzogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0KSB7XG5cbiAgICAgICAgc3VwZXIoY29uZmlnLCBsYXlvdXQpO1xuXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlID0gY29uZmlnLmF1dG9Db21wbGV0ZSB8fCBBVVRPQ09NUExFVEVfT047XG4gICAgICAgIHRoaXMuYXV0b0ZvY3VzID0gaXNCb29sZWFuKGNvbmZpZy5hdXRvRm9jdXMpID8gY29uZmlnLmF1dG9Gb2N1cyA6IGZhbHNlO1xuICAgICAgICB0aGlzLm1heExlbmd0aCA9IGlzTnVtYmVyKGNvbmZpZy5tYXhMZW5ndGgpID8gY29uZmlnLm1heExlbmd0aCA6IG51bGw7XG4gICAgICAgIHRoaXMubWluTGVuZ3RoID0gaXNOdW1iZXIoY29uZmlnLm1pbkxlbmd0aCkgPyBjb25maWcubWluTGVuZ3RoIDogbnVsbDtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGNvbmZpZy5wbGFjZWhvbGRlciB8fCBcIlwiO1xuICAgICAgICB0aGlzLnByZWZpeCA9IGNvbmZpZy5wcmVmaXggfHwgbnVsbDtcbiAgICAgICAgdGhpcy5yZWFkT25seSA9IGlzQm9vbGVhbihjb25maWcucmVhZE9ubHkpID8gY29uZmlnLnJlYWRPbmx5IDogZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlbGxDaGVjayA9IGlzQm9vbGVhbihjb25maWcuc3BlbGxDaGVjaykgPyBjb25maWcuc3BlbGxDaGVjayA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN1ZmZpeCA9IGNvbmZpZy5zdWZmaXggfHwgbnVsbDtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC1jb250cm9sLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbC9keW5hbWljLWlucHV0LWNvbnRyb2wubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQXNDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBRTFELG9EQVdDOzs7SUFURyxzREFBc0I7O0lBQ3RCLG1EQUFvQjs7SUFDcEIsbURBQW1COztJQUNuQixtREFBbUI7O0lBQ25CLHFEQUFxQjs7SUFDckIsZ0RBQWdCOztJQUNoQixrREFBbUI7O0lBQ25CLG9EQUFxQjs7SUFDckIsZ0RBQWdCOzs7Ozs7QUFHcEIsTUFBTSxPQUFnQix3QkFBNEIsU0FBUSw0QkFBK0I7Ozs7OztJQVlyRixZQUFzQixNQUF5QyxFQUFFLE1BQWlDO1FBRTlGLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RSxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztJQUN4QyxDQUFDO0NBQ0o7QUF4Qm1CO0lBQWYsWUFBWSxFQUFFOzs4REFBc0I7QUFDckI7SUFBZixZQUFZLEVBQUU7OzJEQUFvQjtBQUNuQjtJQUFmLFlBQVksRUFBRTs7MkRBQTBCO0FBQ3pCO0lBQWYsWUFBWSxFQUFFOzsyREFBMEI7QUFDekI7SUFBZixZQUFZLEVBQUU7OzZEQUFxQjtBQUNwQjtJQUFmLFlBQVksRUFBRTs7d0RBQXVCO0FBQ3RCO0lBQWYsWUFBWSxFQUFFOzswREFBbUI7QUFDbEI7SUFBZixZQUFZLEVBQUU7OzREQUFxQjtBQUNwQjtJQUFmLFlBQVksRUFBRTs7d0RBQXVCOzs7SUFSdEMsZ0RBQXFDOztJQUNyQyw2Q0FBbUM7O0lBQ25DLDZDQUF5Qzs7SUFDekMsNkNBQXlDOztJQUN6QywrQ0FBb0M7O0lBQ3BDLDBDQUFzQzs7SUFDdEMsNENBQWtDOztJQUNsQyw4Q0FBb0M7O0lBQ3BDLDBDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwsIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWxDb25maWcgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IH0gZnJvbSBcIi4vbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmltcG9ydCB7IHNlcmlhbGl6YWJsZSB9IGZyb20gXCIuLi9kZWNvcmF0b3Ivc2VyaWFsaXphYmxlLmRlY29yYXRvclwiO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc051bWJlciB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsQ29uZmlnPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbENvbmZpZzxUPiB7XG5cbiAgICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gICAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICByZWFkT25seT86IGJvb2xlYW47XG4gICAgc3BlbGxDaGVjaz86IGJvb2xlYW47XG4gICAgc3VmZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxUPiB7XG5cbiAgICBAc2VyaWFsaXphYmxlKCkgYXV0b0NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICBAc2VyaWFsaXphYmxlKCkgbWF4TGVuZ3RoOiBudW1iZXIgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoKSBtaW5MZW5ndGg6IG51bWJlciB8IG51bGw7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgcmVhZE9ubHk6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHNwZWxsQ2hlY2s6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHN1ZmZpeDogc3RyaW5nIHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNJbnB1dENvbnRyb2xNb2RlbENvbmZpZzxUPiwgbGF5b3V0PzogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0KSB7XG5cbiAgICAgICAgc3VwZXIoY29uZmlnLCBsYXlvdXQpO1xuXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlID0gY29uZmlnLmF1dG9Db21wbGV0ZSB8fCBcIm9uXCI7XG4gICAgICAgIHRoaXMuYXV0b0ZvY3VzID0gaXNCb29sZWFuKGNvbmZpZy5hdXRvRm9jdXMpID8gY29uZmlnLmF1dG9Gb2N1cyA6IGZhbHNlO1xuICAgICAgICB0aGlzLm1heExlbmd0aCA9IGlzTnVtYmVyKGNvbmZpZy5tYXhMZW5ndGgpID8gY29uZmlnLm1heExlbmd0aCA6IG51bGw7XG4gICAgICAgIHRoaXMubWluTGVuZ3RoID0gaXNOdW1iZXIoY29uZmlnLm1pbkxlbmd0aCkgPyBjb25maWcubWluTGVuZ3RoIDogbnVsbDtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGNvbmZpZy5wbGFjZWhvbGRlciB8fCBcIlwiO1xuICAgICAgICB0aGlzLnByZWZpeCA9IGNvbmZpZy5wcmVmaXggfHwgbnVsbDtcbiAgICAgICAgdGhpcy5yZWFkT25seSA9IGlzQm9vbGVhbihjb25maWcucmVhZE9ubHkpID8gY29uZmlnLnJlYWRPbmx5IDogZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlbGxDaGVjayA9IGlzQm9vbGVhbihjb25maWcuc3BlbGxDaGVjaykgPyBjb25maWcuc3BlbGxDaGVjayA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN1ZmZpeCA9IGNvbmZpZy5zdWZmaXggfHwgbnVsbDtcbiAgICB9XG59XG4iXX0=

@@ -16,6 +16,31 @@ /**

this.DYNAMIC_FORM_CONTROL_MAP_FN = DYNAMIC_FORM_CONTROL_MAP_FN;
this.componentRefs = {};
this.forms = [];
this.formControls = {};
this.DYNAMIC_FORM_CONTROL_MAP_FN = (/** @type {?} */ (DYNAMIC_FORM_CONTROL_MAP_FN));
}
/**
* @return {?}
*/
getForms() {
return this.forms.values();
}
/**
* @param {?} component
* @return {?}
*/
registerForm(component) {
this.forms.push(component);
}
/**
* @param {?} component
* @return {?}
*/
unregisterForm(component) {
/** @type {?} */
const indexOf = this.forms.indexOf(component);
if (indexOf !== -1) {
this.forms.splice(indexOf, 1);
}
}
/**
* @param {?} modelId

@@ -27,3 +52,3 @@ * @param {?=} index

/** @type {?} */
const ref = this.componentRefs[modelId];
const ref = this.formControls[modelId];
if (isNumber(index)) {

@@ -38,13 +63,14 @@ return Array.isArray(ref) ? ref[index] : undefined;

* @param {?} model
* @param {?} instance
* @param {?} ref
* @param {?=} index
* @return {?}
*/
registerFormControlRef(model, instance, index) {
if (isNumber(index)) {
registerFormControl(model, ref, index) {
if (isNumber(index)) { // threat model as array child
// threat model as array child
/** @type {?} */
const arrayRef = (/** @type {?} */ (this.componentRefs[model.id])) || [];
const arrayRef = (/** @type {?} */ (this.formControls[model.id])) || [];
if (Array.isArray(arrayRef)) {
arrayRef.splice(index, 0, instance);
this.componentRefs[model.id] = arrayRef;
arrayRef.splice(index, 0, ref);
this.formControls[model.id] = arrayRef;
}

@@ -56,3 +82,3 @@ else {

else {
this.componentRefs[model.id] = instance;
this.formControls[model.id] = ref;
}

@@ -65,5 +91,5 @@ }

*/
unregisterFormControlRef(modelId, index) {
unregisterFormControl(modelId, index) {
/** @type {?} */
const componentRef = this.componentRefs[modelId];
const componentRef = this.formControls[modelId];
if (isNumber(index)) {

@@ -75,3 +101,3 @@ if (Array.isArray(componentRef) && componentRef[index] !== undefined) {

else if (componentRef !== undefined) {
delete this.componentRefs[modelId];
delete this.formControls[modelId];
}

@@ -102,3 +128,3 @@ }

*/
DynamicFormComponentService.prototype.componentRefs;
DynamicFormComponentService.prototype.forms;
/**

@@ -108,4 +134,9 @@ * @type {?}

*/
DynamicFormComponentService.prototype.formControls;
/**
* @type {?}
* @private
*/
DynamicFormComponentService.prototype.DYNAMIC_FORM_CONTROL_MAP_FN;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTTNELE1BQU0sT0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBMEIsNkJBQTZCLENBQUM7QUFLckgsTUFBTSxPQUFPLDJCQUEyQjs7OztJQUlwQyxZQUE4RSwyQkFBZ0M7UUFBaEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFLO1FBRnRHLGtCQUFhLEdBQXVFLEVBQUUsQ0FBQztRQUczRixJQUFJLENBQUMsMkJBQTJCLEdBQUcsbUJBQUEsMkJBQTJCLEVBQTJCLENBQUM7SUFDOUYsQ0FBQzs7Ozs7O0lBRUQsaUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQWM7O2NBRXZDLEdBQUcsR0FBb0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFFeEYsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFFakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUV0RDthQUFNO1lBQ0gsT0FBTyxtQkFBQSxHQUFHLEVBQXlCLENBQUM7U0FDdkM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsc0JBQXNCLENBQUMsS0FBOEIsRUFBRSxRQUErQixFQUFFLEtBQWM7UUFFbEcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7O2tCQUVYLFFBQVEsR0FBNEIsbUJBQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQTJCLElBQUksRUFBRTtZQUV2RyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBRXpCLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO2FBRTNDO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsNkVBQTZFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3pHO1NBRUo7YUFBTTtZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUMzQztJQUVMLENBQUM7Ozs7OztJQUVELHdCQUF3QixDQUFDLE9BQWUsRUFBRSxLQUFjOztjQUU5QyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFFaEQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFFakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQ2xFLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1NBRUo7YUFBTSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7Ozs7SUFFRCxzQkFBc0IsQ0FBQyxLQUE4QjtRQUNqRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekcsQ0FBQzs7O1lBOURKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7Ozs0Q0FLZ0IsTUFBTSxTQUFDLDJCQUEyQixjQUFHLFFBQVE7Ozs7Ozs7O0lBRjFELG9EQUErRjs7Ozs7SUFFbkYsa0VBQWtHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVtYmVyIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Db250cm9sUmVmID0gQ29tcG9uZW50UmVmPER5bmFtaWNGb3JtQ29udHJvbD47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtQ29udHJvbE1hcEZuID0gKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCkgPT4gVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbDtcblxuZXhwb3J0IGNvbnN0IERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEeW5hbWljRm9ybUNvbnRyb2xNYXBGbj4oXCJEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk5cIik7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnRSZWZzOiB7IFtrZXk6IHN0cmluZ106IER5bmFtaWNGb3JtQ29udHJvbFJlZiB8IER5bmFtaWNGb3JtQ29udHJvbFJlZltdIH0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTjogYW55KSB7XG4gICAgICAgIHRoaXMuRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOID0gRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOIGFzIER5bmFtaWNGb3JtQ29udHJvbE1hcEZuO1xuICAgIH1cblxuICAgIGdldEZvcm1Db250cm9sUmVmKG1vZGVsSWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpOiBEeW5hbWljRm9ybUNvbnRyb2xSZWYgfCB1bmRlZmluZWQge1xuXG4gICAgICAgIGNvbnN0IHJlZjogRHluYW1pY0Zvcm1Db250cm9sUmVmIHwgRHluYW1pY0Zvcm1Db250cm9sUmVmW10gPSB0aGlzLmNvbXBvbmVudFJlZnNbbW9kZWxJZF07XG5cbiAgICAgICAgaWYgKGlzTnVtYmVyKGluZGV4KSkge1xuXG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZWYpID8gcmVmW2luZGV4XSA6IHVuZGVmaW5lZDtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlZiBhcyBEeW5hbWljRm9ybUNvbnRyb2xSZWY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3RlckZvcm1Db250cm9sUmVmKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgaW5zdGFuY2U6IER5bmFtaWNGb3JtQ29udHJvbFJlZiwgaW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcblxuICAgICAgICBpZiAoaXNOdW1iZXIoaW5kZXgpKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGFycmF5UmVmOiBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSA9IHRoaXMuY29tcG9uZW50UmVmc1ttb2RlbC5pZF0gYXMgRHluYW1pY0Zvcm1Db250cm9sUmVmW10gfHwgW107XG5cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFycmF5UmVmKSkge1xuXG4gICAgICAgICAgICAgICAgYXJyYXlSZWYuc3BsaWNlKGluZGV4LCAwLCBpbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWZzW21vZGVsLmlkXSA9IGFycmF5UmVmO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgcmVnaXN0ZXJGb3JtQ29udHJvbFJlZiBpcyBjYWxsZWQgd2l0aCBpbmRleCBmb3IgYSBub24tYXJyYXkgZm9ybSBjb250cm9sOiAke21vZGVsLmlkfWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZnNbbW9kZWwuaWRdID0gaW5zdGFuY2U7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHVucmVnaXN0ZXJGb3JtQ29udHJvbFJlZihtb2RlbElkOiBzdHJpbmcsIGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRSZWZzW21vZGVsSWRdO1xuXG4gICAgICAgIGlmIChpc051bWJlcihpbmRleCkpIHtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29tcG9uZW50UmVmKSAmJiBjb21wb25lbnRSZWZbaW5kZXhdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5jb21wb25lbnRSZWZzW21vZGVsSWRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VzdG9tQ29tcG9uZW50VHlwZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24odGhpcy5EWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4pID8gdGhpcy5EWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4obW9kZWwpIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFJakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBSzNELE1BQU0sT0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBMEIsNkJBQTZCLENBQUM7QUFLckgsTUFBTSxPQUFPLDJCQUEyQjs7OztJQUtwQyxZQUE4RSwyQkFBZ0M7UUFBaEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFLO1FBSHRHLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBQ25DLGlCQUFZLEdBQXVFLEVBQUUsQ0FBQztRQUcxRixJQUFJLENBQUMsMkJBQTJCLEdBQUcsbUJBQUEsMkJBQTJCLEVBQTJCLENBQUM7SUFDOUYsQ0FBQzs7OztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsU0FBK0I7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsU0FBK0I7O2NBRXBDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFN0MsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsaUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQWM7O2NBRXZDLEdBQUcsR0FBb0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFFdkYsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFFakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUV0RDthQUFNO1lBQ0gsT0FBTyxtQkFBQSxHQUFHLEVBQXlCLENBQUM7U0FDdkM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsbUJBQW1CLENBQUMsS0FBOEIsRUFBRSxHQUEwQixFQUFFLEtBQWM7UUFFMUYsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSw4QkFBOEI7OztrQkFFM0MsUUFBUSxHQUE0QixtQkFBQSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBMkIsSUFBSSxFQUFFO1lBRXRHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFFekIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7YUFFMUM7aUJBQU07Z0JBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyw2RUFBNkUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDekc7U0FFSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQscUJBQXFCLENBQUMsT0FBZSxFQUFFLEtBQWM7O2NBRTNDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUUvQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUVqQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDbEUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDakM7U0FFSjthQUFNLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDOzs7OztJQUVELHNCQUFzQixDQUFDLEtBQThCO1FBQ2pELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RyxDQUFDOzs7WUEvRUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7OzRDQU1nQixNQUFNLFNBQUMsMkJBQTJCLGNBQUcsUUFBUTs7Ozs7Ozs7SUFIMUQsNENBQTJDOzs7OztJQUMzQyxtREFBOEY7Ozs7O0lBRWxGLGtFQUFrRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sIH0gZnJvbSBcIi4uL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC1pbnRlcmZhY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudC9keW5hbWljLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOdW1iZXIgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUNvbnRyb2xSZWYgPSBDb21wb25lbnRSZWY8RHluYW1pY0Zvcm1Db250cm9sPjtcbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtQ29udHJvbE1hcEZuID0gKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCkgPT4gVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbDtcblxuZXhwb3J0IGNvbnN0IERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEeW5hbWljRm9ybUNvbnRyb2xNYXBGbj4oXCJEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk5cIik7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBmb3JtczogRHluYW1pY0Zvcm1Db21wb25lbnRbXSA9IFtdO1xuICAgIHByaXZhdGUgZm9ybUNvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IER5bmFtaWNGb3JtQ29udHJvbFJlZiB8IER5bmFtaWNGb3JtQ29udHJvbFJlZltdIH0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTjogYW55KSB7XG4gICAgICAgIHRoaXMuRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOID0gRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOIGFzIER5bmFtaWNGb3JtQ29udHJvbE1hcEZuO1xuICAgIH1cblxuICAgIGdldEZvcm1zKCk6IEl0ZXJhYmxlSXRlcmF0b3I8RHluYW1pY0Zvcm1Db21wb25lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXMudmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJGb3JtKGNvbXBvbmVudDogRHluYW1pY0Zvcm1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3Jtcy5wdXNoKGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgdW5yZWdpc3RlckZvcm0oY29tcG9uZW50OiBEeW5hbWljRm9ybUNvbXBvbmVudCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IGluZGV4T2YgPSB0aGlzLmZvcm1zLmluZGV4T2YoY29tcG9uZW50KTtcblxuICAgICAgICBpZiAoaW5kZXhPZiAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybXMuc3BsaWNlKGluZGV4T2YsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Rm9ybUNvbnRyb2xSZWYobW9kZWxJZDogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IER5bmFtaWNGb3JtQ29udHJvbFJlZiB8IHVuZGVmaW5lZCB7XG5cbiAgICAgICAgY29uc3QgcmVmOiBEeW5hbWljRm9ybUNvbnRyb2xSZWYgfCBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSA9IHRoaXMuZm9ybUNvbnRyb2xzW21vZGVsSWRdO1xuXG4gICAgICAgIGlmIChpc051bWJlcihpbmRleCkpIHtcblxuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVmKSA/IHJlZltpbmRleF0gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByZWYgYXMgRHluYW1pY0Zvcm1Db250cm9sUmVmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJGb3JtQ29udHJvbChtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIHJlZjogRHluYW1pY0Zvcm1Db250cm9sUmVmLCBpbmRleD86IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIGlmIChpc051bWJlcihpbmRleCkpIHsgLy8gdGhyZWF0IG1vZGVsIGFzIGFycmF5IGNoaWxkXG5cbiAgICAgICAgICAgIGNvbnN0IGFycmF5UmVmOiBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSA9IHRoaXMuZm9ybUNvbnRyb2xzW21vZGVsLmlkXSBhcyBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSB8fCBbXTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXlSZWYpKSB7XG5cbiAgICAgICAgICAgICAgICBhcnJheVJlZi5zcGxpY2UoaW5kZXgsIDAsIHJlZik7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbHNbbW9kZWwuaWRdID0gYXJyYXlSZWY7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGByZWdpc3RlckZvcm1Db250cm9sUmVmIGlzIGNhbGxlZCB3aXRoIGluZGV4IGZvciBhIG5vbi1hcnJheSBmb3JtIGNvbnRyb2w6ICR7bW9kZWwuaWR9YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW21vZGVsLmlkXSA9IHJlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVucmVnaXN0ZXJGb3JtQ29udHJvbChtb2RlbElkOiBzdHJpbmcsIGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5mb3JtQ29udHJvbHNbbW9kZWxJZF07XG5cbiAgICAgICAgaWYgKGlzTnVtYmVyKGluZGV4KSkge1xuXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnRSZWYpICYmIGNvbXBvbmVudFJlZltpbmRleF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50UmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmZvcm1Db250cm9sc1ttb2RlbElkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEN1c3RvbUNvbXBvbmVudFR5cGUobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKHRoaXMuRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOKSA/IHRoaXMuRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOKG1vZGVsKSA6IG51bGw7XG4gICAgfVxufVxuIl19

@@ -8,3 +8,3 @@ /**

import { DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT } from "../directive/dynamic-template.directive";
import { isObject } from "../utils/core.utils";
import { isObject, isString } from "../utils/core.utils";
import * as i0 from "@angular/core";

@@ -116,3 +116,3 @@ export class DynamicFormLayoutService {

getClass(layout, context, place) {
if (layout !== null && layout.hasOwnProperty(context)) {
if (isObject(layout) && layout.hasOwnProperty(context)) {
/** @type {?} */

@@ -127,2 +127,24 @@ const config = (/** @type {?} */ (layout[context]));

/**
* @param {?} layout
* @return {?}
*/
getHostClass(layout) {
/** @type {?} */
const keys = ["element", "grid"];
/** @type {?} */
let cls = "";
if (isObject(layout)) {
keys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (isObject(layout[key]) && isString(layout[key].host)) {
cls = cls + ` ${layout[key].host}`;
}
}));
}
return cls;
}
/**
* @param {?} model

@@ -152,2 +174,2 @@ * @return {?}

/** @nocollapse */ DynamicFormLayoutService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DynamicFormLayoutService_Factory() { return new DynamicFormLayoutService(); }, token: DynamicFormLayoutService, providedIn: "root" });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUYsT0FBTyxFQUVILG9DQUFvQyxFQUN2QyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFTL0MsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7O0lBRWpDLFFBQVEsQ0FBQyxFQUFVLEVBQUUsVUFBb0M7UUFFckQsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFFdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUV2QyxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7b0JBQ1osT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzFCO2FBQ0o7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVELFdBQVcsQ0FBQyxLQUE4QixFQUFFLFVBQW9DOztZQUV4RSxhQUFhLEdBQTZCLElBQUk7UUFFbEQsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFFdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUV2QyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU87Ozs7Z0JBQUMsU0FBUyxDQUFDLEVBQUU7OzBCQUV6QixRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUks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fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29uZmlnLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2Vcbn0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZm9ybS1hcnJheS9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVFxufSBmcm9tIFwiLi4vZGlyZWN0aXZlL2R5bmFtaWMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtTGF5b3V0ID0geyBbaWQ6IHN0cmluZ106IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB9O1xuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMgPSBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVtdIHwgdW5kZWZpbmVkO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlIHtcblxuICAgIGZpbmRCeUlkKGlkOiBzdHJpbmcsIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0IHwgbnVsbCk6IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB8IG51bGwge1xuXG4gICAgICAgIGlmIChpc09iamVjdChmb3JtTGF5b3V0KSkge1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtTGF5b3V0KSkge1xuXG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1MYXlvdXRba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmaW5kQnlNb2RlbChtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGZvcm1MYXlvdXQ6IER5bmFtaWNGb3JtTGF5b3V0IHwgbnVsbCk6IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB8IG51bGwge1xuXG4gICAgICAgIGxldCBjb250cm9sTGF5b3V0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgPSBudWxsO1xuXG4gICAgICAgIGlmIChpc09iamVjdChmb3JtTGF5b3V0KSkge1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtTGF5b3V0KSkge1xuXG4gICAgICAgICAgICAgICAga2V5LnNwbGl0KFwiLFwiKS5mb3JFYWNoKHN1YnN0cmluZyA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBzdWJzdHJpbmcudHJpbSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RvciA9PT0gbW9kZWwuaWQgfHwgc2VsZWN0b3IgPT09IG1vZGVsLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xMYXlvdXQgPSBmb3JtTGF5b3V0W2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250cm9sTGF5b3V0O1xuICAgIH1cblxuICAgIGZpbHRlclRlbXBsYXRlc0J5TW9kZWwobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVtdIHtcblxuICAgICAgICBjb25zdCBmaWx0ZXJDYWxsYmFjazogKHRlbXBsYXRlOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpID0+IGJvb2xlYW4gPSAodGVtcGxhdGU6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlLm1vZGVsSWQgPT09IG1vZGVsLmlkIHx8IHRlbXBsYXRlLm1vZGVsVHlwZSA9PT0gbW9kZWwudHlwZTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGVtcGxhdGVzIGluc3RhbmNlb2YgUXVlcnlMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVzLmZpbHRlcihmaWx0ZXJDYWxsYmFjayk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRlbXBsYXRlcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZXMuZmlsdGVyKGZpbHRlckNhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBnZXRBbGlnbmVkVGVtcGxhdGUobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcywgYWxpZ25tZW50OiBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlQpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlclRlbXBsYXRlc0J5TW9kZWwobW9kZWwsIHRlbXBsYXRlcylcbiAgICAgICAgICAgIC5maW5kKHRlbXBsYXRlID0+IHRlbXBsYXRlLmFzID09PSBudWxsICYmIHRlbXBsYXRlLmFsaWduID09PSBhbGlnbm1lbnQpO1xuICAgIH1cblxuICAgIC8qXG4gICAgZ2V0SW5kZXhlZFRlbXBsYXRlcyhtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIHRlbXBsYXRlczogRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlW10gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJUZW1wbGF0ZXNCeU1vZGVsKG1vZGVsLCB0ZW1wbGF0ZXMpLmZpbHRlcih0ZW1wbGF0ZSA9PiB0ZW1wbGF0ZS5hcyA9PT0gbnVsbCk7XG4gICAgfVxuICAgICovXG4gICAgZ2V0U3RhcnRUZW1wbGF0ZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIHRlbXBsYXRlczogRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxpZ25lZFRlbXBsYXRlKG1vZGVsLCB0ZW1wbGF0ZXMsIERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVC5TdGFydCk7XG4gICAgfVxuXG4gICAgZ2V0RW5kVGVtcGxhdGUobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsaWduZWRUZW1wbGF0ZShtb2RlbCwgdGVtcGxhdGVzLCBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlQuRW5kKTtcbiAgICB9XG5cbiAgICBnZXRDbGFzcyhsYXlvdXQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB8IG51bGwsIGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSk6IHN0cmluZyB7XG5cbiAgICAgICAgaWYgKGxheW91dCAhPT0gbnVsbCAmJiBsYXlvdXQuaGFzT3duUHJvcGVydHkoY29udGV4dCkpIHtcblxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gbGF5b3V0W2NvbnRleHRdIGFzIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbmZpZztcblxuICAgICAgICAgICAgaWYgKGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShwbGFjZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnW3BsYWNlXSBhcyBzdHJpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBnZXRFbGVtZW50SWQobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcblxuICAgICAgICBsZXQgaWQgPSBtb2RlbC5pZDtcbiAgICAgICAgbGV0IHBhcmVudCA9IG1vZGVsLnBhcmVudDtcblxuICAgICAgICB3aGlsZSAocGFyZW50ICE9PSBudWxsKSB7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgaWQgPSBgJHtwYXJlbnQuY29udGV4dC5pZH0tJHtwYXJlbnQuaW5kZXh9LSR7bW9kZWwuaWR9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUYsT0FBTyxFQUVILG9DQUFvQyxFQUN2QyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7Ozs7OztJQUVqQyxRQUFRLENBQUMsRUFBVSxFQUFFLFVBQW9DO1FBRXJELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBRXRCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFFdkMsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO29CQUNaLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUMxQjthQUNKO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7Ozs7SUFFRCxXQUFXLENBQUMsS0FBOEIsRUFBRSxVQUFvQzs7WUFFeEUsYUFBYSxHQUE2QixJQUFJO1FBRWxELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBRXRCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFFdkMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O2dCQUFDLFNBQVMsQ0FBQyxFQUFFOzswQkFFekIsUUFBUSxHQUFHLFNBQVMs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WSxDQUFDLEtBQThCOztZQUVuQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUU7O1lBQ2IsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNO1FBRXpCLE9BQU8sTUFBTSxLQUFLLElBQUksRUFBRTtZQUVwQixJQUFJLE1BQU0sWUFBWSwwQkFBMEIsRUFBRTtnQkFFOUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hELE1BQU07YUFDVDtZQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDOzs7WUE5SEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUXVlcnlMaXN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbmZpZyxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLWxheW91dC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlRcbn0gZnJvbSBcIi4uL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1MYXlvdXQgPSB7IFtpZDogc3RyaW5nXTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IH07XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyA9IFF1ZXJ5TGlzdDxEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmU+IHwgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlW10gfCB1bmRlZmluZWQ7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUxheW91dFNlcnZpY2Uge1xuXG4gICAgZmluZEJ5SWQoaWQ6IHN0cmluZywgZm9ybUxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQgfCBudWxsKTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IHwgbnVsbCB7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KGZvcm1MYXlvdXQpKSB7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZvcm1MYXlvdXQpKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBpZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUxheW91dFtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZpbmRCeU1vZGVsKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgZm9ybUxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQgfCBudWxsKTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IHwgbnVsbCB7XG5cbiAgICAgICAgbGV0IGNvbnRyb2xMYXlvdXQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dCA9IG51bGw7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KGZvcm1MYXlvdXQpKSB7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZvcm1MYXlvdXQpKSB7XG5cbiAgICAgICAgICAgICAgICBrZXkuc3BsaXQoXCIsXCIpLmZvckVhY2goc3Vic3RyaW5nID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RvciA9IHN1YnN0cmluZy50cmltKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yID09PSBtb2RlbC5pZCB8fCBzZWxlY3RvciA9PT0gbW9kZWwudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbExheW91dCA9IGZvcm1MYXlvdXRba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2xMYXlvdXQ7XG4gICAgfVxuXG4gICAgZmlsdGVyVGVtcGxhdGVzQnlNb2RlbChtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIHRlbXBsYXRlczogRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlW10ge1xuXG4gICAgICAgIGNvbnN0IGZpbHRlckNhbGxiYWNrOiAodGVtcGxhdGU6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSkgPT4gYm9vbGVhbiA9ICh0ZW1wbGF0ZTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGVtcGxhdGUubW9kZWxJZCA9PT0gbW9kZWwuaWQgfHwgdGVtcGxhdGUubW9kZWxUeXBlID09PSBtb2RlbC50eXBlO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0ZW1wbGF0ZXMgaW5zdGFuY2VvZiBRdWVyeUxpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZXMuZmlsdGVyKGZpbHRlckNhbGxiYWNrKTtcblxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGVtcGxhdGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlcy5maWx0ZXIoZmlsdGVyQ2FsbGJhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGdldEFsaWduZWRUZW1wbGF0ZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIHRlbXBsYXRlczogRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzLFxuICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6IERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVCk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyVGVtcGxhdGVzQnlNb2RlbChtb2RlbCwgdGVtcGxhdGVzKVxuICAgICAgICAgICAgLmZpbmQodGVtcGxhdGUgPT4gdGVtcGxhdGUuYXMgPT09IG51bGwgJiYgdGVtcGxhdGUuYWxpZ24gPT09IGFsaWdubWVudCk7XG4gICAgfVxuXG4gICAgLypcbiAgICBnZXRJbmRleGVkVGVtcGxhdGVzKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlclRlbXBsYXRlc0J5TW9kZWwobW9kZWwsIHRlbXBsYXRlcykuZmlsdGVyKHRlbXBsYXRlID0+IHRlbXBsYXRlLmFzID09PSBudWxsKTtcbiAgICB9XG4gICAgKi9cbiAgICBnZXRTdGFydFRlbXBsYXRlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGlnbmVkVGVtcGxhdGUobW9kZWwsIHRlbXBsYXRlcywgRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5ULlN0YXJ0KTtcbiAgICB9XG5cbiAgICBnZXRFbmRUZW1wbGF0ZShtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIHRlbXBsYXRlczogRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxpZ25lZFRlbXBsYXRlKG1vZGVsLCB0ZW1wbGF0ZXMsIERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVC5FbmQpO1xuICAgIH1cblxuICAgIGdldENsYXNzKGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCxcbiAgICAgICAgICAgICBwbGFjZTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2UpOiBzdHJpbmcge1xuXG4gICAgICAgIGlmIChpc09iamVjdChsYXlvdXQpICYmIGxheW91dC5oYXNPd25Qcm9wZXJ0eShjb250ZXh0KSkge1xuXG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBsYXlvdXRbY29udGV4dF0gYXMgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29uZmlnO1xuXG4gICAgICAgICAgICBpZiAoY29uZmlnLmhhc093blByb3BlcnR5KHBsYWNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWdbcGxhY2VdIGFzIHN0cmluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIGdldEhvc3RDbGFzcyhsYXlvdXQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IGtleXM6IChrZXlvZiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQpW10gPSBbXCJlbGVtZW50XCIsIFwiZ3JpZFwiXTtcbiAgICAgICAgbGV0IGNscyA9IFwiXCI7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChsYXlvdXRba2V5XSkgJiYgaXNTdHJpbmcobGF5b3V0W2tleV0uaG9zdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzID0gY2xzICsgYCAke2xheW91dFtrZXldLmhvc3R9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbHM7XG4gICAgfVxuXG4gICAgZ2V0RWxlbWVudElkKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XG5cbiAgICAgICAgbGV0IGlkID0gbW9kZWwuaWQ7XG4gICAgICAgIGxldCBwYXJlbnQgPSBtb2RlbC5wYXJlbnQ7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuXG4gICAgICAgICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgICAgIGlkID0gYCR7cGFyZW50LmNvbnRleHQuaWR9LSR7cGFyZW50LmluZGV4fS0ke21vZGVsLmlkfWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxufVxuIl19

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

import { FormControl } from "@angular/forms";
import { AND_OPERATOR, DYNAMIC_MATCHERS, OR_OPERATOR } from "./dynamic-form-relation.matchers";
import { AND_OPERATOR, DYNAMIC_MATCHERS, OR_OPERATOR } from "./dynamic-form-relation-matchers";
import { startWith } from "rxjs/operators";
import { merge } from "rxjs";
import * as i0 from "@angular/core";
import * as i1 from "./dynamic-form-relation.matchers";
import * as i1 from "./dynamic-form-relation-matchers";
export class DynamicFormRelationService {

@@ -177,2 +177,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFDSCxZQUFZLEVBQ1osZ0JBQWdCLEVBRWhCLFdBQVcsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7O0FBTzNDLE1BQU0sT0FBTywwQkFBMEI7Ozs7O0lBRW5DLFlBQTBELFFBQXFDLEVBQzNFLFFBQWtCO1FBRG9CLGFBQVEsR0FBUixRQUFRLENBQTZCO1FBQzNFLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDdEMsQ0FBQzs7Ozs7O0lBRUQsc0JBQXNCLENBQUMsS0FBOEIsRUFBRSxLQUFnQjs7Y0FFN0QsZ0JBQWdCOzs7OztRQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFOztrQkFFdkMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLEVBQUU7WUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7O3NCQUUxQixPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFD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Ozt3Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxnQkFBZ0I7WUFwQnZCLFFBQVE7Ozs7Ozs7O0lBb0JyQiw4Q0FBbUY7Ozs7O0lBQ25GLDhDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIEFORF9PUEVSQVRPUixcbiAgICBEWU5BTUlDX01BVENIRVJTLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1hdGNoZXIsXG4gICAgT1JfT1BFUkFUT1Jcbn0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXJlbGF0aW9uLm1hdGNoZXJzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xSZWxhdGlvbiB9IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXJlbGF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG1lcmdlLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljUmVsYXRlZEZvcm1Db250cm9scyA9IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRFlOQU1JQ19NQVRDSEVSUykgcHJpdmF0ZSBNQVRDSEVSUzogRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcltdLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgfVxuXG4gICAgZ2V0UmVsYXRlZEZvcm1Db250cm9scyhtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGdyb3VwOiBGb3JtR3JvdXApOiBEeW5hbWljUmVsYXRlZEZvcm1Db250cm9scyB7XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9uUmVkdWNlciA9IChjb250cm9scywgY29uZGl0aW9uKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBjb25kaXRpb24ucm9vdFBhdGggfHwgY29uZGl0aW9uLmlkO1xuXG4gICAgICAgICAgICBpZiAoIWNvbnRyb2xzLmhhc093blByb3BlcnR5KHBhdGgpKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gY29uZGl0aW9uLnJvb3RQYXRoID8gZ3JvdXAucm9vdC5nZXQoY29uZGl0aW9uLnJvb3RQYXRoKSA6IGdyb3VwLmdldChjb25kaXRpb24uaWQpO1xuXG4gICAgICAgICAgICAgICAgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gY29udHJvbHNbcGF0aF0gPSBjb250cm9sIDogY29uc29sZS53YXJuKGBObyByZWxhdGVkIGZvcm0gY29udHJvbCB3aXRoIGlkICR7Y29uZGl0aW9uLmlkfSBjb3VsZCBiZSBmb3VuZGApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY29udHJvbHM7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVsYXRpb25SZWR1Y2VyID0gKGNvbnRyb2xzLCByZWxhdGlvbikgPT4gcmVsYXRpb24ud2hlbi5yZWR1Y2UoY29uZGl0aW9uUmVkdWNlciwgY29udHJvbHMpO1xuXG4gICAgICAgIHJldHVybiBtb2RlbC5yZWxhdGlvbnMucmVkdWNlKHJlbGF0aW9uUmVkdWNlciwge30pO1xuICAgIH1cblxuICAgIGZpbmRSZWxhdGlvbkJ5TWF0Y2hlcihyZWxhdGlvbnM6IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uW10sIG1hdGNoZXI6IER5bmFtaWNGb3JtQ29udHJvbE1hdGNoZXIpOiBEeW5hbWljRm9ybUNvbnRyb2xSZWxhdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiByZWxhdGlvbnMuZmluZChyZWxhdGlvbiA9PiBbbWF0Y2hlci5tYXRjaCwgbWF0Y2hlci5vcHBvc2luZ01hdGNoXS5pbmNsdWRlcyhyZWxhdGlvbi5tYXRjaCkpO1xuICAgIH1cblxuICAgIG1hdGNoZXNDb25kaXRpb24ocmVsYXRpb246IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uLCByZWxhdGVkRm9ybUNvbnRyb2xzOiBEeW5hbWljUmVsYXRlZEZvcm1Db250cm9scywgbWF0Y2hlcjogRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcik6IGJvb2xlYW4ge1xuXG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gcmVsYXRpb24ub3BlcmF0b3IgfHwgT1JfT1BFUkFUT1I7XG5cbiAgICAgICAgcmV0dXJuIHJlbGF0aW9uLndoZW4ucmVkdWNlKChoYXNBbHJlYWR5TWF0Y2hlZCwgY29uZGl0aW9uLCBpbmRleCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBwYXRoID0gY29uZGl0aW9uLnJvb3RQYXRoIHx8IGNvbmRpdGlvbi5pZDtcblxuICAgICAgICAgICAgbGV0IHJlbGF0ZWRGb3JtQ29udHJvbDtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhyZWxhdGVkRm9ybUNvbnRyb2xzKSkge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZEZvcm1Db250cm9sID0gY29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZEZvcm1Db250cm9sICYmIHJlbGF0aW9uLm1hdGNoID09PSBtYXRjaGVyLm1hdGNoKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBBTkRfT1BFUkFUT1IgJiYgIWhhc0FscmVhZHlNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBPUl9PUEVSQVRPUiAmJiBoYXNBbHJlYWR5TWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uLnZhbHVlID09PSByZWxhdGVkRm9ybUNvbnRyb2wudmFsdWUgfHwgY29uZGl0aW9uLnN0YXR1cyA9PT0gcmVsYXRlZEZvcm1Db250cm9sLnN0YXR1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlbGF0ZWRGb3JtQ29udHJvbCAmJiByZWxhdGlvbi5tYXRjaCA9PT0gbWF0Y2hlci5vcHBvc2luZ01hdGNoKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBBTkRfT1BFUkFUT1IgJiYgaGFzQWxyZWFkeU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCAmJiBvcGVyYXRvciA9PT0gT1JfT1BFUkFUT1IgJiYgIWhhc0FscmVhZHlNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gIShjb25kaXRpb24udmFsdWUgPT09IHJlbGF0ZWRGb3JtQ29udHJvbC52YWx1ZSB8fCBjb25kaXRpb24uc3RhdHVzID09PSByZWxhdGVkRm9ybUNvbnRyb2wuc3RhdHVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBzdWJzY3JpYmVSZWxhdGlvbnMobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBncm91cDogRm9ybUdyb3VwLCBjb250cm9sOiBGb3JtQ29udHJvbCk6IFN1YnNjcmlwdGlvbltdIHtcblxuICAgICAgICBjb25zdCByZWxhdGVkRm9ybUNvbnRyb2xzID0gdGhpcy5nZXRSZWxhdGVkRm9ybUNvbnRyb2xzKG1vZGVsLCBncm91cCk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICAgICAgT2JqZWN0LnZhbHVlcyhyZWxhdGVkRm9ybUNvbnRyb2xzKS5mb3JFYWNoKHJlbGF0ZWRDb250cm9sID0+IHtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzID0gcmVsYXRlZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHJlbGF0ZWRDb250cm9sLnZhbHVlKSk7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNDaGFuZ2VzID0gcmVsYXRlZENvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChyZWxhdGVkQ29udHJvbC5zdGF0dXMpKTtcblxuICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKG1lcmdlKHZhbHVlQ2hhbmdlcywgc3RhdHVzQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAgICAgICAgIHRoaXMuTUFUQ0hFUlMuZm9yRWFjaChtYXRjaGVyID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGlvbiA9IHRoaXMuZmluZFJlbGF0aW9uQnlNYXRjaGVyKG1vZGVsLnJlbGF0aW9ucywgbWF0Y2hlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzTWF0Y2ggPSB0aGlzLm1hdGNoZXNDb25kaXRpb24ocmVsYXRpb24sIHJlbGF0ZWRGb3JtQ29udHJvbHMsIG1hdGNoZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlci5vbkNoYW5nZShoYXNNYXRjaCwgbW9kZWwsIGNvbnRyb2wsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdWJzY3JpcHRpb25zO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFDSCxZQUFZLEVBQ1osZ0JBQWdCLEVBRWhCLFdBQVcsRUFDZCxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7O0FBTzNDLE1BQU0sT0FBTywwQkFBMEI7Ozs7O0lBRW5DLFlBQTBELFFBQXFDLEVBQzNFLFFBQWtCO1FBRG9CLGFBQVEsR0FBUixRQUFRLENBQTZCO1FBQzNFLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDdEMsQ0FBQzs7Ozs7O0lBRUQsc0JBQXNCLENBQUMsS0FBOEIsRUFBRSxLQUFnQjs7Y0FFN0QsZ0JBQWdCOzs7OztRQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFOztrQkFFdkMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLEVBQUU7WUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7O3NCQUUxQixPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFD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Ozt3Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxnQkFBZ0I7WUFwQnZCLFFBQVE7Ozs7Ozs7O0lBb0JyQiw4Q0FBbUY7Ozs7O0lBQ25GLDhDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIEFORF9PUEVSQVRPUixcbiAgICBEWU5BTUlDX01BVENIRVJTLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbE1hdGNoZXIsXG4gICAgT1JfT1BFUkFUT1Jcbn0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXJlbGF0aW9uLW1hdGNoZXJzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xSZWxhdGlvbiB9IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXJlbGF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG1lcmdlLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljUmVsYXRlZEZvcm1Db250cm9scyA9IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRFlOQU1JQ19NQVRDSEVSUykgcHJpdmF0ZSBNQVRDSEVSUzogRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcltdLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgfVxuXG4gICAgZ2V0UmVsYXRlZEZvcm1Db250cm9scyhtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGdyb3VwOiBGb3JtR3JvdXApOiBEeW5hbWljUmVsYXRlZEZvcm1Db250cm9scyB7XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9uUmVkdWNlciA9IChjb250cm9scywgY29uZGl0aW9uKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBjb25kaXRpb24ucm9vdFBhdGggfHwgY29uZGl0aW9uLmlkO1xuXG4gICAgICAgICAgICBpZiAoIWNvbnRyb2xzLmhhc093blByb3BlcnR5KHBhdGgpKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gY29uZGl0aW9uLnJvb3RQYXRoID8gZ3JvdXAucm9vdC5nZXQoY29uZGl0aW9uLnJvb3RQYXRoKSA6IGdyb3VwLmdldChjb25kaXRpb24uaWQpO1xuXG4gICAgICAgICAgICAgICAgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gY29udHJvbHNbcGF0aF0gPSBjb250cm9sIDogY29uc29sZS53YXJuKGBObyByZWxhdGVkIGZvcm0gY29udHJvbCB3aXRoIGlkICR7Y29uZGl0aW9uLmlkfSBjb3VsZCBiZSBmb3VuZGApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY29udHJvbHM7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVsYXRpb25SZWR1Y2VyID0gKGNvbnRyb2xzLCByZWxhdGlvbikgPT4gcmVsYXRpb24ud2hlbi5yZWR1Y2UoY29uZGl0aW9uUmVkdWNlciwgY29udHJvbHMpO1xuXG4gICAgICAgIHJldHVybiBtb2RlbC5yZWxhdGlvbnMucmVkdWNlKHJlbGF0aW9uUmVkdWNlciwge30pO1xuICAgIH1cblxuICAgIGZpbmRSZWxhdGlvbkJ5TWF0Y2hlcihyZWxhdGlvbnM6IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uW10sIG1hdGNoZXI6IER5bmFtaWNGb3JtQ29udHJvbE1hdGNoZXIpOiBEeW5hbWljRm9ybUNvbnRyb2xSZWxhdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiByZWxhdGlvbnMuZmluZChyZWxhdGlvbiA9PiBbbWF0Y2hlci5tYXRjaCwgbWF0Y2hlci5vcHBvc2luZ01hdGNoXS5pbmNsdWRlcyhyZWxhdGlvbi5tYXRjaCkpO1xuICAgIH1cblxuICAgIG1hdGNoZXNDb25kaXRpb24ocmVsYXRpb246IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uLCByZWxhdGVkRm9ybUNvbnRyb2xzOiBEeW5hbWljUmVsYXRlZEZvcm1Db250cm9scywgbWF0Y2hlcjogRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcik6IGJvb2xlYW4ge1xuXG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gcmVsYXRpb24ub3BlcmF0b3IgfHwgT1JfT1BFUkFUT1I7XG5cbiAgICAgICAgcmV0dXJuIHJlbGF0aW9uLndoZW4ucmVkdWNlKChoYXNBbHJlYWR5TWF0Y2hlZCwgY29uZGl0aW9uLCBpbmRleCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBwYXRoID0gY29uZGl0aW9uLnJvb3RQYXRoIHx8IGNvbmRpdGlvbi5pZDtcblxuICAgICAgICAgICAgbGV0IHJlbGF0ZWRGb3JtQ29udHJvbDtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhyZWxhdGVkRm9ybUNvbnRyb2xzKSkge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZEZvcm1Db250cm9sID0gY29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZEZvcm1Db250cm9sICYmIHJlbGF0aW9uLm1hdGNoID09PSBtYXRjaGVyLm1hdGNoKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBBTkRfT1BFUkFUT1IgJiYgIWhhc0FscmVhZHlNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBPUl9PUEVSQVRPUiAmJiBoYXNBbHJlYWR5TWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uLnZhbHVlID09PSByZWxhdGVkRm9ybUNvbnRyb2wudmFsdWUgfHwgY29uZGl0aW9uLnN0YXR1cyA9PT0gcmVsYXRlZEZvcm1Db250cm9sLnN0YXR1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlbGF0ZWRGb3JtQ29udHJvbCAmJiByZWxhdGlvbi5tYXRjaCA9PT0gbWF0Y2hlci5vcHBvc2luZ01hdGNoKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBBTkRfT1BFUkFUT1IgJiYgaGFzQWxyZWFkeU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCAmJiBvcGVyYXRvciA9PT0gT1JfT1BFUkFUT1IgJiYgIWhhc0FscmVhZHlNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gIShjb25kaXRpb24udmFsdWUgPT09IHJlbGF0ZWRGb3JtQ29udHJvbC52YWx1ZSB8fCBjb25kaXRpb24uc3RhdHVzID09PSByZWxhdGVkRm9ybUNvbnRyb2wuc3RhdHVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBzdWJzY3JpYmVSZWxhdGlvbnMobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBncm91cDogRm9ybUdyb3VwLCBjb250cm9sOiBGb3JtQ29udHJvbCk6IFN1YnNjcmlwdGlvbltdIHtcblxuICAgICAgICBjb25zdCByZWxhdGVkRm9ybUNvbnRyb2xzID0gdGhpcy5nZXRSZWxhdGVkRm9ybUNvbnRyb2xzKG1vZGVsLCBncm91cCk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICAgICAgT2JqZWN0LnZhbHVlcyhyZWxhdGVkRm9ybUNvbnRyb2xzKS5mb3JFYWNoKHJlbGF0ZWRDb250cm9sID0+IHtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzID0gcmVsYXRlZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHJlbGF0ZWRDb250cm9sLnZhbHVlKSk7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNDaGFuZ2VzID0gcmVsYXRlZENvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChyZWxhdGVkQ29udHJvbC5zdGF0dXMpKTtcblxuICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKG1lcmdlKHZhbHVlQ2hhbmdlcywgc3RhdHVzQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAgICAgICAgIHRoaXMuTUFUQ0hFUlMuZm9yRWFjaChtYXRjaGVyID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGlvbiA9IHRoaXMuZmluZFJlbGF0aW9uQnlNYXRjaGVyKG1vZGVsLnJlbGF0aW9ucywgbWF0Y2hlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzTWF0Y2ggPSB0aGlzLm1hdGNoZXNDb25kaXRpb24ocmVsYXRpb24sIHJlbGF0ZWRGb3JtQ29udHJvbHMsIG1hdGNoZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlci5vbkNoYW5nZShoYXNNYXRjaCwgbW9kZWwsIGNvbnRyb2wsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdWJzY3JpcHRpb25zO1xuICAgIH1cbn1cbiJdfQ==

@@ -8,6 +8,6 @@ /**

import { isObject, isString } from "../utils/core.utils";
import { DYNAMIC_VALIDATORS } from "./dynamic-form.validators";
import { DYNAMIC_VALIDATORS } from "./dynamic-form-validators";
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "./dynamic-form.validators";
import * as i2 from "./dynamic-form-validators";
export class DynamicFormValidationService {

@@ -251,2 +251,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUlILFVBQVUsRUFDVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdELE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFLN0csTUFBTSxPQUFPLDRCQUE0Qjs7Ozs7O0lBRXJDLFlBQXVELFVBQXlCLEVBQ25CLGdCQUFvQyxFQUNyQyxzQkFBaUU7UUFGdEUsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQ3JDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMkM7SUFDN0gsQ0FBQzs7Ozs7Ozs7SUFHTyxjQUFjLENBQUMsYUFBcUIsRUFBRSxnQkFBcUIsSUFBSSxFQUNoRCxrQkFBbUMsSUFBSSxDQUFDLFVBQVU7O1lBRWpFLFdBQXFEO1FBRXpELElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLDhCQUE4QjtZQUUxRSxXQUFXLEdBQUcsQ0FBQyxtQkFBQSxVQUFVLEVBQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBRXBEO2FBQU0sRUFBRSxvQkFBb0I7WUFFekIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtn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QkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7Ozt3Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO3dDQUNoQyxRQUFRLFlBQUksTUFBTSxTQUFDLG1CQUFtQjtZQUNpQyxHQUFHLHVCQUExRSxRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7Ozs7Ozs7SUFGdEMsa0RBQW9FOzs7OztJQUNwRSx3REFBcUY7Ozs7O0lBQ3JGLDhEQUFpSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgQXN5bmNWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JzLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTkdfQVNZTkNfVkFMSURBVE9SU1xufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNWYWxpZGF0b3JEZXNjcmlwdG9yLFxuICAgIER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXZhbGlkYXRpb24ubW9kZWxcIjtcbmltcG9ydCB7IGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5pbXBvcnQgeyBEWU5BTUlDX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgVmFsaWRhdG9yRmFjdG9yeSwgVmFsaWRhdG9yc1Rva2VuIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLnZhbGlkYXRvcnNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBwcml2YXRlIFZBTElEQVRPUlM6IFZhbGlkYXRvckZuW10sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOR19BU1lOQ19WQUxJREFUT1JTKSBwcml2YXRlIEFTWU5DX1ZBTElEQVRPUlM6IEFzeW5jVmFsaWRhdG9yRm5bXSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERZTkFNSUNfVkFMSURBVE9SUykgcHJpdmF0ZSBEWU5BTUlDX1ZBTElEQVRPUlNfTUFQOiBNYXA8c3RyaW5nLCBWYWxpZGF0b3IgfCBWYWxpZGF0b3JGYWN0b3J5Pikge1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JGbih2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHZhbGlkYXRvckFyZ3M6IGFueSA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzVG9rZW46IFZhbGlkYXRvcnNUb2tlbiA9IHRoaXMuVkFMSURBVE9SUyk6IFZhbGlkYXRvciB8IG5ldmVyIHtcblxuICAgICAgICBsZXQgdmFsaWRhdG9yRm46IFZhbGlkYXRvckZhY3RvcnkgfCBWYWxpZGF0b3IgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKFZhbGlkYXRvcnMuaGFzT3duUHJvcGVydHkodmFsaWRhdG9yTmFtZSkpIHsgLy8gQnVpbHQtaW4gQW5ndWxhciBWYWxpZGF0b3JzXG5cbiAgICAgICAgICAgIHZhbGlkYXRvckZuID0gKFZhbGlkYXRvcnMgYXMgYW55KVt2YWxpZGF0b3JOYW1lXTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBDdXN0b20gVmFsaWRhdG9yc1xuXG4gICAgICAgICAgICBpZiAodGhpcy5EWU5BTUlDX1ZBTElEQVRPUlNfTUFQICYmIHRoaXMuRFlOQU1JQ19WQUxJREFUT1JTX01BUC5oYXModmFsaWRhdG9yTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JGbiA9IHRoaXMuRFlOQU1JQ19WQUxJREFUT1JTX01BUC5nZXQodmFsaWRhdG9yTmFtZSk7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yRm4gPSB2YWxpZGF0b3JzVG9rZW4uZmluZCh2YWxpZGF0b3IgPT4gdmFsaWRhdG9yLm5hbWUgPT09IHZhbGlkYXRvck5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRvckZuID09PSB1bmRlZmluZWQpIHsgLy8gdGhyb3cgd2hlbiBubyB2YWxpZGF0b3IgY291bGQgYmUgcmVzb2x2ZWRcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgdmFsaWRhdG9yIFwiJHt2YWxpZGF0b3JOYW1lfVwiIGlzIG5vdCBwcm92aWRlZCB2aWEgTkdfVkFMSURBVE9SUywgTkdfQVNZTkNfVkFMSURBVE9SUyBvciBEWU5BTUlDX0ZPUk1fVkFMSURBVE9SU2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRvckFyZ3MgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAodmFsaWRhdG9yRm4gYXMgVmFsaWRhdG9yRmFjdG9yeSkodmFsaWRhdG9yQXJncyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yRm4gYXMgVmFsaWRhdG9yO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JGbnModmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yc1Rva2VuOiBWYWxpZGF0b3JzVG9rZW4gPSB0aGlzLlZBTElEQVRPUlMpOiBWYWxpZGF0b3JbXSB7XG5cbiAgICAgICAgbGV0IHZhbGlkYXRvckZuczogVmFsaWRhdG9yW10gPSBbXTtcblxuICAgICAgICBpZiAoaXNPYmplY3QodmFsaWRhdG9yc0NvbmZpZykpIHtcblxuICAgICAgICAgICAgdmFsaWRhdG9yRm5zID0gT2JqZWN0LmtleXModmFsaWRhdG9yc0NvbmZpZykubWFwKHZhbGlkYXRvckNvbmZpZ0tleSA9PiB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JDb25maWdWYWx1ZSA9ICh2YWxpZGF0b3JzQ29uZmlnIGFzIER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnKVt2YWxpZGF0b3JDb25maWdLZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZGF0b3JEZXNjcmlwdG9yKHZhbGlkYXRvckNvbmZpZ1ZhbHVlKSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB2YWxpZGF0b3JDb25maWdWYWx1ZSBhcyBEeW5hbWljVmFsaWRhdG9yRGVzY3JpcHRvcjtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JGbihkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3IuYXJncywgdmFsaWRhdG9yc1Rva2VuKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JGbih2YWxpZGF0b3JDb25maWdLZXksIHZhbGlkYXRvckNvbmZpZ1ZhbHVlLCB2YWxpZGF0b3JzVG9rZW4pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yRm5zO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBwYXJzZUVycm9yTWVzc2FnZUNvbmZpZyh0ZW1wbGF0ZTogc3RyaW5nLCBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGVycm9yOiBhbnkgPSBudWxsKTogc3RyaW5nIHtcblxuICAgICAgICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZSgve3tcXHMqKC4rPylcXHMqfX0vbWcsIChfbWF0Y2g6IHN0cmluZywgZXhwcmVzc2lvbjogc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCBwcm9wZXJ0eVNvdXJjZTogYW55ID0gbW9kZWw7XG4gICAgICAgICAgICBsZXQgcHJvcGVydHlOYW1lOiBzdHJpbmcgPSBleHByZXNzaW9uO1xuXG4gICAgICAgICAgICBpZiAoZXhwcmVzc2lvbi5pbmRleE9mKFwidmFsaWRhdG9yLlwiKSA+PSAwICYmIGVycm9yKSB7XG5cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVNvdXJjZSA9IGVycm9yO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IGV4cHJlc3Npb24ucmVwbGFjZShcInZhbGlkYXRvci5cIiwgXCJcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVNvdXJjZVtwcm9wZXJ0eU5hbWVdICE9PSBudWxsICYmIHByb3BlcnR5U291cmNlW3Byb3BlcnR5TmFtZV0gIT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgICAgICAgcHJvcGVydHlTb3VyY2VbcHJvcGVydHlOYW1lXSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZ2V0VmFsaWRhdG9yKHZhbGlkYXRvck5hbWU6IHN0cmluZywgdmFsaWRhdG9yQXJnczogYW55ID0gbnVsbCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yTmFtZSwgdmFsaWRhdG9yQXJncykgYXMgVmFsaWRhdG9yRm47XG4gICAgfVxuXG5cbiAgICBnZXRBc3luY1ZhbGlkYXRvcih2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHZhbGlkYXRvckFyZ3M6IGFueSA9IG51bGwpOiBBc3luY1ZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yTmFtZSwgdmFsaWRhdG9yQXJncywgdGhpcy5BU1lOQ19WQUxJREFUT1JTKSBhcyBBc3luY1ZhbGlkYXRvckZuO1xuICAgIH1cblxuXG4gICAgZ2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JGbnModmFsaWRhdG9yc0NvbmZpZykgYXMgVmFsaWRhdG9yRm5bXTtcbiAgICB9XG5cblxuICAgIGdldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnKTogQXN5bmNWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm5zKGFzeW5jVmFsaWRhdG9yc0NvbmZpZywgdGhpcy5BU1lOQ19WQUxJREFUT1JTKSBhcyBBc3luY1ZhbGlkYXRvckZuW107XG4gICAgfVxuXG5cbiAgICB1cGRhdGVWYWxpZGF0b3JzKHZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgbW9kZWwudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnNDb25maWc7XG5cbiAgICAgICAgaWYgKHZhbGlkYXRvcnNDb25maWcgPT09IG51bGwpIHtcblxuICAgICAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuZ2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cblxuICAgIHVwZGF0ZUFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBtb2RlbC5hc3luY1ZhbGlkYXRvcnMgPSBhc3luY1ZhbGlkYXRvcnNDb25maWc7XG5cbiAgICAgICAgaWYgKGFzeW5jVmFsaWRhdG9yc0NvbmZpZyA9PT0gbnVsbCkge1xuXG4gICAgICAgICAgICBjb250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuZ2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9yc0NvbmZpZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG5cbiAgICBjcmVhdGVFcnJvck1lc3NhZ2VzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nW10ge1xuXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChtb2RlbC5oYXNFcnJvck1lc3NhZ2VzKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzQ29uZmlnID0gbW9kZWwuZXJyb3JNZXNzYWdlcyBhcyBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZztcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMoY29udHJvbC5lcnJvcnMgfHwge30pLmZvckVhY2godmFsaWRhdGlvbkVycm9yS2V5ID0+IHtcblxuICAgICAgICAgICAgICAgIGxldCBtZXNzYWdlS2V5ID0gdmFsaWRhdGlvbkVycm9yS2V5O1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25FcnJvcktleSA9PT0gXCJtaW5sZW5ndGhcIiB8fCB2YWxpZGF0aW9uRXJyb3JLZXkgPT09IFwibWF4bGVuZ3RoXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUtleSA9IG1lc3NhZ2VLZXkucmVwbGFjZShcImxlbmd0aFwiLCBcIkxlbmd0aFwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXNDb25maWcuaGFzT3duUHJvcGVydHkobWVzc2FnZUtleSkpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSBjb250cm9sLmdldEVycm9yKHZhbGlkYXRpb25FcnJvcktleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUZW1wbGF0ZSA9IG1lc3NhZ2VzQ29uZmlnW21lc3NhZ2VLZXldIGFzIHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHRoaXMucGFyc2VFcnJvck1lc3NhZ2VDb25maWcobWVzc2FnZVRlbXBsYXRlLCBtb2RlbCwgdmFsaWRhdGlvbkVycm9yKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWVzc2FnZXM7XG4gICAgfVxuXG5cbiAgICBpc0Zvcm1Ib29rKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlKSAmJiBbXCJibHVyXCIsIFwiY2hhbmdlXCIsIFwic3VibWl0XCJdLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgICB9XG5cblxuICAgIGlzVmFsaWRhdG9yRGVzY3JpcHRvcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmhhc093blByb3BlcnR5KFwibmFtZVwiKSAmJiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eShcImFyZ3NcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUlILFVBQVUsRUFDVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdELE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFLN0csTUFBTSxPQUFPLDRCQUE0Qjs7Ozs7O0lBRXJDLFlBQXVELFVBQXlCLEVBQ25CLGdCQUFvQyxFQUNyQyxzQkFBaUU7UUFGdEUsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQ3JDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMkM7SUFDN0gsQ0FBQzs7Ozs7Ozs7SUFHTyxjQUFjLENBQUMsYUFBcUIsRUFBRSxnQkFBcUIsSUFBSSxFQUNoRCxrQkFBbUMsSUFBSSxDQUFDLFVBQVU7O1lBRWpFLFdBQXFEO1FBRXpELElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLDhCQUE4QjtZQUUxRSxXQUFXLEdBQUcsQ0FBQyxtQkFBQSxVQUFVLEVBQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBRXBEO2FBQU0sRUFBRSxvQkFBb0I7WUFFekIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtn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QkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7Ozt3Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO3dDQUNoQyxRQUFRLFlBQUksTUFBTSxTQUFDLG1CQUFtQjtZQUNpQyxHQUFHLHVCQUExRSxRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7Ozs7Ozs7SUFGdEMsa0RBQW9FOzs7OztJQUNwRSx3REFBcUY7Ozs7O0lBQ3JGLDhEQUFpSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgQXN5bmNWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JzLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTkdfQVNZTkNfVkFMSURBVE9SU1xufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNWYWxpZGF0b3JEZXNjcmlwdG9yLFxuICAgIER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXZhbGlkYXRpb24ubW9kZWxcIjtcbmltcG9ydCB7IGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5pbXBvcnQgeyBEWU5BTUlDX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgVmFsaWRhdG9yRmFjdG9yeSwgVmFsaWRhdG9yc1Rva2VuIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXZhbGlkYXRvcnNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBwcml2YXRlIFZBTElEQVRPUlM6IFZhbGlkYXRvckZuW10sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOR19BU1lOQ19WQUxJREFUT1JTKSBwcml2YXRlIEFTWU5DX1ZBTElEQVRPUlM6IEFzeW5jVmFsaWRhdG9yRm5bXSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERZTkFNSUNfVkFMSURBVE9SUykgcHJpdmF0ZSBEWU5BTUlDX1ZBTElEQVRPUlNfTUFQOiBNYXA8c3RyaW5nLCBWYWxpZGF0b3IgfCBWYWxpZGF0b3JGYWN0b3J5Pikge1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JGbih2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHZhbGlkYXRvckFyZ3M6IGFueSA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzVG9rZW46IFZhbGlkYXRvcnNUb2tlbiA9IHRoaXMuVkFMSURBVE9SUyk6IFZhbGlkYXRvciB8IG5ldmVyIHtcblxuICAgICAgICBsZXQgdmFsaWRhdG9yRm46IFZhbGlkYXRvckZhY3RvcnkgfCBWYWxpZGF0b3IgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKFZhbGlkYXRvcnMuaGFzT3duUHJvcGVydHkodmFsaWRhdG9yTmFtZSkpIHsgLy8gQnVpbHQtaW4gQW5ndWxhciBWYWxpZGF0b3JzXG5cbiAgICAgICAgICAgIHZhbGlkYXRvckZuID0gKFZhbGlkYXRvcnMgYXMgYW55KVt2YWxpZGF0b3JOYW1lXTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBDdXN0b20gVmFsaWRhdG9yc1xuXG4gICAgICAgICAgICBpZiAodGhpcy5EWU5BTUlDX1ZBTElEQVRPUlNfTUFQICYmIHRoaXMuRFlOQU1JQ19WQUxJREFUT1JTX01BUC5oYXModmFsaWRhdG9yTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JGbiA9IHRoaXMuRFlOQU1JQ19WQUxJREFUT1JTX01BUC5nZXQodmFsaWRhdG9yTmFtZSk7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yRm4gPSB2YWxpZGF0b3JzVG9rZW4uZmluZCh2YWxpZGF0b3IgPT4gdmFsaWRhdG9yLm5hbWUgPT09IHZhbGlkYXRvck5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRvckZuID09PSB1bmRlZmluZWQpIHsgLy8gdGhyb3cgd2hlbiBubyB2YWxpZGF0b3IgY291bGQgYmUgcmVzb2x2ZWRcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgdmFsaWRhdG9yIFwiJHt2YWxpZGF0b3JOYW1lfVwiIGlzIG5vdCBwcm92aWRlZCB2aWEgTkdfVkFMSURBVE9SUywgTkdfQVNZTkNfVkFMSURBVE9SUyBvciBEWU5BTUlDX0ZPUk1fVkFMSURBVE9SU2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRvckFyZ3MgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAodmFsaWRhdG9yRm4gYXMgVmFsaWRhdG9yRmFjdG9yeSkodmFsaWRhdG9yQXJncyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yRm4gYXMgVmFsaWRhdG9yO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JGbnModmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yc1Rva2VuOiBWYWxpZGF0b3JzVG9rZW4gPSB0aGlzLlZBTElEQVRPUlMpOiBWYWxpZGF0b3JbXSB7XG5cbiAgICAgICAgbGV0IHZhbGlkYXRvckZuczogVmFsaWRhdG9yW10gPSBbXTtcblxuICAgICAgICBpZiAoaXNPYmplY3QodmFsaWRhdG9yc0NvbmZpZykpIHtcblxuICAgICAgICAgICAgdmFsaWRhdG9yRm5zID0gT2JqZWN0LmtleXModmFsaWRhdG9yc0NvbmZpZykubWFwKHZhbGlkYXRvckNvbmZpZ0tleSA9PiB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JDb25maWdWYWx1ZSA9ICh2YWxpZGF0b3JzQ29uZmlnIGFzIER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnKVt2YWxpZGF0b3JDb25maWdLZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZGF0b3JEZXNjcmlwdG9yKHZhbGlkYXRvckNvbmZpZ1ZhbHVlKSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB2YWxpZGF0b3JDb25maWdWYWx1ZSBhcyBEeW5hbWljVmFsaWRhdG9yRGVzY3JpcHRvcjtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JGbihkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3IuYXJncywgdmFsaWRhdG9yc1Rva2VuKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JGbih2YWxpZGF0b3JDb25maWdLZXksIHZhbGlkYXRvckNvbmZpZ1ZhbHVlLCB2YWxpZGF0b3JzVG9rZW4pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yRm5zO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBwYXJzZUVycm9yTWVzc2FnZUNvbmZpZyh0ZW1wbGF0ZTogc3RyaW5nLCBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGVycm9yOiBhbnkgPSBudWxsKTogc3RyaW5nIHtcblxuICAgICAgICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZSgve3tcXHMqKC4rPylcXHMqfX0vbWcsIChfbWF0Y2g6IHN0cmluZywgZXhwcmVzc2lvbjogc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCBwcm9wZXJ0eVNvdXJjZTogYW55ID0gbW9kZWw7XG4gICAgICAgICAgICBsZXQgcHJvcGVydHlOYW1lOiBzdHJpbmcgPSBleHByZXNzaW9uO1xuXG4gICAgICAgICAgICBpZiAoZXhwcmVzc2lvbi5pbmRleE9mKFwidmFsaWRhdG9yLlwiKSA+PSAwICYmIGVycm9yKSB7XG5cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVNvdXJjZSA9IGVycm9yO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IGV4cHJlc3Npb24ucmVwbGFjZShcInZhbGlkYXRvci5cIiwgXCJcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVNvdXJjZVtwcm9wZXJ0eU5hbWVdICE9PSBudWxsICYmIHByb3BlcnR5U291cmNlW3Byb3BlcnR5TmFtZV0gIT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgICAgICAgcHJvcGVydHlTb3VyY2VbcHJvcGVydHlOYW1lXSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZ2V0VmFsaWRhdG9yKHZhbGlkYXRvck5hbWU6IHN0cmluZywgdmFsaWRhdG9yQXJnczogYW55ID0gbnVsbCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yTmFtZSwgdmFsaWRhdG9yQXJncykgYXMgVmFsaWRhdG9yRm47XG4gICAgfVxuXG5cbiAgICBnZXRBc3luY1ZhbGlkYXRvcih2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHZhbGlkYXRvckFyZ3M6IGFueSA9IG51bGwpOiBBc3luY1ZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yTmFtZSwgdmFsaWRhdG9yQXJncywgdGhpcy5BU1lOQ19WQUxJREFUT1JTKSBhcyBBc3luY1ZhbGlkYXRvckZuO1xuICAgIH1cblxuXG4gICAgZ2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JGbnModmFsaWRhdG9yc0NvbmZpZykgYXMgVmFsaWRhdG9yRm5bXTtcbiAgICB9XG5cblxuICAgIGdldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnKTogQXN5bmNWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm5zKGFzeW5jVmFsaWRhdG9yc0NvbmZpZywgdGhpcy5BU1lOQ19WQUxJREFUT1JTKSBhcyBBc3luY1ZhbGlkYXRvckZuW107XG4gICAgfVxuXG5cbiAgICB1cGRhdGVWYWxpZGF0b3JzKHZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgbW9kZWwudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnNDb25maWc7XG5cbiAgICAgICAgaWYgKHZhbGlkYXRvcnNDb25maWcgPT09IG51bGwpIHtcblxuICAgICAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuZ2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cblxuICAgIHVwZGF0ZUFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBtb2RlbC5hc3luY1ZhbGlkYXRvcnMgPSBhc3luY1ZhbGlkYXRvcnNDb25maWc7XG5cbiAgICAgICAgaWYgKGFzeW5jVmFsaWRhdG9yc0NvbmZpZyA9PT0gbnVsbCkge1xuXG4gICAgICAgICAgICBjb250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuZ2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9yc0NvbmZpZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG5cbiAgICBjcmVhdGVFcnJvck1lc3NhZ2VzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nW10ge1xuXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChtb2RlbC5oYXNFcnJvck1lc3NhZ2VzKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzQ29uZmlnID0gbW9kZWwuZXJyb3JNZXNzYWdlcyBhcyBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZztcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMoY29udHJvbC5lcnJvcnMgfHwge30pLmZvckVhY2godmFsaWRhdGlvbkVycm9yS2V5ID0+IHtcblxuICAgICAgICAgICAgICAgIGxldCBtZXNzYWdlS2V5ID0gdmFsaWRhdGlvbkVycm9yS2V5O1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25FcnJvcktleSA9PT0gXCJtaW5sZW5ndGhcIiB8fCB2YWxpZGF0aW9uRXJyb3JLZXkgPT09IFwibWF4bGVuZ3RoXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUtleSA9IG1lc3NhZ2VLZXkucmVwbGFjZShcImxlbmd0aFwiLCBcIkxlbmd0aFwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXNDb25maWcuaGFzT3duUHJvcGVydHkobWVzc2FnZUtleSkpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSBjb250cm9sLmdldEVycm9yKHZhbGlkYXRpb25FcnJvcktleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUZW1wbGF0ZSA9IG1lc3NhZ2VzQ29uZmlnW21lc3NhZ2VLZXldIGFzIHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHRoaXMucGFyc2VFcnJvck1lc3NhZ2VDb25maWcobWVzc2FnZVRlbXBsYXRlLCBtb2RlbCwgdmFsaWRhdGlvbkVycm9yKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWVzc2FnZXM7XG4gICAgfVxuXG5cbiAgICBpc0Zvcm1Ib29rKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlKSAmJiBbXCJibHVyXCIsIFwiY2hhbmdlXCIsIFwic3VibWl0XCJdLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgICB9XG5cblxuICAgIGlzVmFsaWRhdG9yRGVzY3JpcHRvcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmhhc093blByb3BlcnR5KFwibmFtZVwiKSAmJiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eShcImFyZ3NcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19

@@ -26,9 +26,14 @@ /**

import { isString } from "../utils/core.utils";
import { DynamicFormComponent } from "../component/dynamic-form.component";
import { DynamicFormComponentService } from "./dynamic-form-component.service";
import * as i0 from "@angular/core";
import * as i1 from "./dynamic-form-validation.service";
import * as i1 from "./dynamic-form-component.service";
import * as i2 from "./dynamic-form-validation.service";
export class DynamicFormService {
/**
* @param {?} componentService
* @param {?} validationService
*/
constructor(validationService) {
constructor(componentService, validationService) {
this.componentService = componentService;
this.validationService = validationService;

@@ -316,2 +321,3 @@ }

/**
* @template T
* @param {?} id

@@ -322,5 +328,6 @@ * @param {?} formModel

findModelById(id, formModel) {
return this.findById(id, formModel);
return (/** @type {?} */ (this.findById(id, formModel)));
}
/**
* @template T
* @param {?} model

@@ -331,5 +338,21 @@ * @param {?} group

findControlByModel(model, group) {
return group.root.get(this.getPath(model, true));
return (/** @type {?} */ (group.root.get(this.getPath(model, true))));
}
/**
* @param {?=} formComponent
* @return {?}
*/
detectChanges(formComponent) {
if (formComponent instanceof DynamicFormComponent) {
formComponent.markForCheck();
formComponent.detectChanges();
}
else {
for (const form of this.componentService.getForms()) {
form.markForCheck();
form.detectChanges();
}
}
}
/**
* @param {?} json

@@ -440,5 +463,6 @@ * @return {?}

DynamicFormService.ctorParameters = () => [
{ type: DynamicFormComponentService },
{ type: DynamicFormValidationService }
];
/** @nocollapse */ DynamicFormService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DynamicFormService_Factory() { return new DynamicFormService(i0.ɵɵinject(i1.DynamicFormValidationService)); }, token: DynamicFormService, providedIn: "root" });
/** @nocollapse */ DynamicFormService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DynamicFormService_Factory() { return new DynamicFormService(i0.ɵɵinject(i1.DynamicFormComponentService), i0.ɵɵinject(i2.DynamicFormValidationService)); }, token: DynamicFormService, providedIn: "root" });
if (false) {

@@ -449,4 +473,9 @@ /**

*/
DynamicFormService.prototype.componentService;
/**
* @type {?}
* @private
*/
DynamicFormService.prototype.validationService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBGLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUM3QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RILE9BQU8sRUFDSCx3Q0FBd0MsRUFDeEMseUJBQXlCLEVBQzVCLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEgsT0FBTyxFQUNILHFDQUFxQyxFQUNyQyx1QkFBdUIsRUFDMUIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQ0gsb0NBQW9DLEVBQ3BDLHNCQUFzQixFQUN6QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVHLE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsc0JBQXNCLEVBQ3pCLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUNILHFDQUFxQyxFQUNyQyxzQkFBc0IsRUFDekIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsa0JBQWtC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SUFDckIsQ0FBQzs7O1lBdFhKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OztZQVRRLDRCQUE0Qjs7Ozs7Ozs7SUFZckIsK0NBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sT3B0aW9ucyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIEZvcm1Ib29rcyB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUFycmF5TW9kZWwsXG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSxcbiAgICBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvZm9ybS1hcnJheS9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVAsIER5bmFtaWNGb3JtR3JvdXBNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9mb3JtLWdyb3VwL2R5bmFtaWMtZm9ybS1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YX0dST1VQLFxuICAgIER5bmFtaWNDaGVja2JveEdyb3VwTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gtZ3JvdXAubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1gsIER5bmFtaWNDaGVja2JveE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DT0xPUlBJQ0tFUixcbiAgICBEeW5hbWljQ29sb3JQaWNrZXJNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvY29sb3JwaWNrZXIvZHluYW1pYy1jb2xvcnBpY2tlci5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0RBVEVQSUNLRVIsXG4gICAgRHluYW1pY0RhdGVQaWNrZXJNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvZGF0ZXBpY2tlci9keW5hbWljLWRhdGVwaWNrZXIubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRURJVE9SLCBEeW5hbWljRWRpdG9yTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZWRpdG9yL2R5bmFtaWMtZWRpdG9yLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRklMRV9VUExPQUQsXG4gICAgRHluYW1pY0ZpbGVVcGxvYWRNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvZmlsZS11cGxvYWQvZHluYW1pYy1maWxlLXVwbG9hZC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9JTlBVVCwgRHluYW1pY0lucHV0TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvaW5wdXQvZHluYW1pYy1pbnB1dC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1JBRElPX0dST1VQLFxuICAgIER5bmFtaWNSYWRpb0dyb3VwTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL3JhZGlvL2R5bmFtaWMtcmFkaW8tZ3JvdXAubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFUSU5HLCBEeW5hbWljUmF0aW5nTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvcmF0aW5nL2R5bmFtaWMtcmF0aW5nLm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1NFTEVDVCwgRHluYW1pY1NlbGVjdE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3NlbGVjdC9keW5hbWljLXNlbGVjdC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TTElERVIsIER5bmFtaWNTbGlkZXJNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9zbGlkZXIvZHluYW1pYy1zbGlkZXIubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU1dJVENILCBEeW5hbWljU3dpdGNoTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvc3dpdGNoL2R5bmFtaWMtc3dpdGNoLm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1RFWFRBUkVBLCBEeW5hbWljVGV4dEFyZWFNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC90ZXh0YXJlYS9keW5hbWljLXRleHRhcmVhLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVElNRVBJQ0tFUixcbiAgICBEeW5hbWljVGltZVBpY2tlck1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC90aW1lcGlja2VyL2R5bmFtaWMtdGltZXBpY2tlci5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS12YWxpZGF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtTW9kZWwsIER5bmFtaWNVbmlvbkZvcm1Nb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0ubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNQYXRoYWJsZSB9IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXBhdGgubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgbWFza0Zyb21TdHJpbmcsIHBhcnNlUmV2aXZlciB9IGZyb20gXCIuLi91dGlscy9qc29uLnV0aWxzXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSkge1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKHZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jVmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfCBudWxsID0gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlT246IEZvcm1Ib29rcyB8IG51bGwgPSBudWxsKTogQWJzdHJhY3RDb250cm9sT3B0aW9ucyB7XG5cbiAgICAgICAgcmV0dXJuIHtcblxuICAgICAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiBhc3luY1ZhbGlkYXRvcnNDb25maWcgIT09IG51bGwgPyB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWcpIDogbnVsbCxcblxuICAgICAgICAgICAgdmFsaWRhdG9yczogdmFsaWRhdG9yc0NvbmZpZyAhPT0gbnVsbCA/IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnKSA6IG51bGwsXG5cbiAgICAgICAgICAgIHVwZGF0ZU9uOiB1cGRhdGVPbiAhPT0gbnVsbCAmJiB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmlzRm9ybUhvb2sodXBkYXRlT24pID8gdXBkYXRlT24gOiBcImNoYW5nZVwiXG4gICAgICAgIH07XG4gICAgfVxuXG5cbiAgICBjcmVhdGVGb3JtQXJyYXkoZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IEZvcm1BcnJheSB7XG5cbiAgICAgICAgY29uc3QgY29udHJvbHM6IEFic3RyYWN0Q29udHJvbFtdID0gW107XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNyZWF0ZUFic3RyYWN0Q29udHJvbE9wdGlvbnMoZm9ybUFycmF5TW9kZWwudmFsaWRhdG9ycywgZm9ybUFycmF5TW9kZWwuYXN5bmNWYWxpZGF0b3JzLFxuICAgICAgICAgICAgZm9ybUFycmF5TW9kZWwudXBkYXRlT24pO1xuXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmb3JtQXJyYXlNb2RlbC5zaXplOyBpbmRleCsrKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGdyb3VwTW9kZWwgPSBmb3JtQXJyYXlNb2RlbC5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gdGhpcy5jcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKGZvcm1BcnJheU1vZGVsLmdyb3VwVmFsaWRhdG9ycyxcbiAgICAgICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC5ncm91cEFzeW5jVmFsaWRhdG9ycywgZm9ybUFycmF5TW9kZWwudXBkYXRlT24pO1xuXG4gICAgICAgICAgICBjb250cm9scy5wdXNoKHRoaXMuY3JlYXRlRm9ybUdyb3VwKGdyb3VwTW9kZWwuZ3JvdXAsIGdyb3VwT3B0aW9ucywgZ3JvdXBNb2RlbCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBGb3JtQXJyYXkoY29udHJvbHMsIG9wdGlvbnMpO1xuICAgIH1cblxuXG4gICAgY3JlYXRlRm9ybUdyb3VwKGZvcm1Nb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCwgb3B0aW9uczogQWJzdHJhY3RDb250cm9sT3B0aW9ucyB8IG51bGwgPSBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IER5bmFtaWNQYXRoYWJsZSB8IG51bGwgPSBudWxsKTogRm9ybUdyb3VwIHtcblxuICAgICAgICBjb25zdCBjb250cm9sczogeyBbY29udHJvbElkOiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7IH0gPSB7fTtcblxuICAgICAgICBmb3JtTW9kZWwuZm9yRWFjaChtb2RlbCA9PiB7XG5cbiAgICAgICAgICAgIG1vZGVsLnBhcmVudCA9IHBhcmVudDtcblxuICAgICAgICAgICAgc3dpdGNoIChtb2RlbC50eXBlKSB7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVk6XG5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHNbbW9kZWwuaWRdID0gdGhpcy5jcmVhdGVGb3JtQXJyYXkobW9kZWwgYXMgRHluYW1pY0Zvcm1BcnJheU1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVA6XG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YX0dST1VQOlxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwTW9kZWwgPSBtb2RlbCBhcyBEeW5hbWljRm9ybUdyb3VwTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwT3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhncm91cE1vZGVsLnZhbGlkYXRvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cE1vZGVsLmFzeW5jVmFsaWRhdG9ycywgZ3JvdXBNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHNbbW9kZWwuaWRdID0gdGhpcy5jcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlbC5ncm91cCwgZ3JvdXBPcHRpb25zLCBncm91cE1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWw8YW55PjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFN0YXRlID0ge3ZhbHVlOiBjb250cm9sTW9kZWwudmFsdWUsIGRpc2FibGVkOiBjb250cm9sTW9kZWwuZGlzYWJsZWR9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sT3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhjb250cm9sTW9kZWwudmFsaWRhdG9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xNb2RlbC5hc3luY1ZhbGlkYXRvcnMsIGNvbnRyb2xNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHNbbW9kZWwuaWRdID0gbmV3IEZvcm1Db250cm9sKGNvbnRyb2xTdGF0ZSwgY29udHJvbE9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChjb250cm9scywgb3B0aW9ucyk7XG4gICAgfVxuXG5cbiAgICBnZXRQYXRoU2VnbWVudChtb2RlbDogRHluYW1pY1BhdGhhYmxlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwgPyBtb2RlbC5pbmRleC50b1N0cmluZygpIDogKG1vZGVsIGFzIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKS5pZDtcbiAgICB9XG5cblxuICAgIGdldFBhdGgobW9kZWw6IER5bmFtaWNQYXRoYWJsZSwgam9pbjogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nW10gfCBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IHBhdGggPSBbdGhpcy5nZXRQYXRoU2VnbWVudChtb2RlbCldO1xuICAgICAgICBsZXQgcGFyZW50ID0gbW9kZWwucGFyZW50O1xuXG4gICAgICAgIHdoaWxlIChwYXJlbnQpIHtcblxuICAgICAgICAgICAgcGF0aC51bnNoaWZ0KHRoaXMuZ2V0UGF0aFNlZ21lbnQocGFyZW50KSk7XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGpvaW4gPyBwYXRoLmpvaW4oXCIuXCIpIDogcGF0aDtcbiAgICB9XG5cblxuICAgIGFkZEZvcm1Hcm91cENvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZvcm1Nb2RlbDogRHluYW1pY1VuaW9uRm9ybU1vZGVsLCAuLi5tb2RlbHM6IER5bmFtaWNGb3JtTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0Rm9ybUdyb3VwQ29udHJvbChmb3JtTW9kZWwuc2l6ZSgpLCBmb3JtR3JvdXAsIGZvcm1Nb2RlbCwgLi4ubW9kZWxzKTtcblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IGZvcm1Nb2RlbCBhcyBEeW5hbWljRm9ybU1vZGVsO1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRGb3JtR3JvdXBDb250cm9sKG1vZGVsLmxlbmd0aCwgZm9ybUdyb3VwLCBtb2RlbCwgLi4ubW9kZWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbW92ZUZvcm1Hcm91cENvbnRyb2woaW5kZXg6IG51bWJlciwgc3RlcDogbnVtYmVyLCBmb3JtTW9kZWw6IER5bmFtaWNVbmlvbkZvcm1Nb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmb3JtTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgZm9ybU1vZGVsLm1vdmUoaW5kZXgsIHN0ZXApO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZm9ybU1vZGVsIGFzIER5bmFtaWNGb3JtTW9kZWw7XG4gICAgICAgICAgICBtb2RlbC5zcGxpY2UoaW5kZXggKyBzdGVwLCAwLCAuLi5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgaW5zZXJ0Rm9ybUdyb3VwQ29udHJvbChpbmRleDogbnVtYmVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZm9ybU1vZGVsOiBEeW5hbWljVW5pb25Gb3JtTW9kZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5tb2RlbHM6IER5bmFtaWNGb3JtTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBwYXJlbnQgPSBmb3JtTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwgPyBmb3JtTW9kZWwgOiBudWxsO1xuICAgICAgICBjb25zdCBjb250cm9scyA9IHRoaXMuY3JlYXRlRm9ybUdyb3VwKG1vZGVscywgbnVsbCwgcGFyZW50KS5jb250cm9scztcblxuICAgICAgICBPYmplY3Qua2V5cyhjb250cm9scykuZm9yRWFjaCgoY29udHJvbE5hbWUsIGlkeCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sTW9kZWwgPSBtb2RlbHNbaWR4XTtcblxuICAgICAgICAgICAgaWYgKGZvcm1Nb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xuICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5pbnNlcnQoaW5kZXgsIGNvbnRyb2xNb2RlbCk7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgKGZvcm1Nb2RlbCBhcyBEeW5hbWljRm9ybU1vZGVsKS5zcGxpY2UoaW5kZXgsIDAsIGNvbnRyb2xNb2RlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKGNvbnRyb2xOYW1lLCBjb250cm9sc1tjb250cm9sTmFtZV0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHJlbW92ZUZvcm1Hcm91cENvbnRyb2woaW5kZXg6IG51bWJlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZvcm1Nb2RlbDogRHluYW1pY1VuaW9uRm9ybU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGZvcm1Nb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICBmb3JtR3JvdXAucmVtb3ZlQ29udHJvbChmb3JtTW9kZWwuZ2V0KGluZGV4KS5pZCk7XG4gICAgICAgICAgICBmb3JtTW9kZWwucmVtb3ZlKGluZGV4KTtcblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBmb3JtR3JvdXAucmVtb3ZlQ29udHJvbChmb3JtTW9kZWxbaW5kZXhdLmlkKTtcbiAgICAgICAgICAgIChmb3JtTW9kZWwgYXMgRHluYW1pY0Zvcm1Nb2RlbCkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgYWRkRm9ybUFycmF5R3JvdXAoZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBncm91cE1vZGVsID0gZm9ybUFycmF5TW9kZWwuYWRkR3JvdXAoKTtcblxuICAgICAgICBmb3JtQXJyYXkucHVzaCh0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBudWxsLCBncm91cE1vZGVsKSk7XG4gICAgfVxuXG5cbiAgICBpbnNlcnRGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IGdyb3VwTW9kZWwgPSBmb3JtQXJyYXlNb2RlbC5pbnNlcnRHcm91cChpbmRleCk7XG5cbiAgICAgICAgZm9ybUFycmF5Lmluc2VydChpbmRleCwgdGhpcy5jcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlbC5ncm91cCwgbnVsbCwgZ3JvdXBNb2RlbCkpO1xuICAgIH1cblxuXG4gICAgbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIHN0ZXA6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ICsgc3RlcDtcbiAgICAgICAgY29uc3QgbW92ZVVwID0gc3RlcCA+PSAwO1xuXG4gICAgICAgIGlmICgoaW5kZXggPj0gMCAmJiBpbmRleCA8IGZvcm1BcnJheU1vZGVsLnNpemUpICYmIChuZXdJbmRleCA+PSAwICYmIG5ld0luZGV4IDwgZm9ybUFycmF5TW9kZWwuc2l6ZSkpIHtcblxuICAgICAgICAgICAgY29uc3QgbW92aW5nR3JvdXBzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gbW92ZVVwID8gaW5kZXggOiBuZXdJbmRleDsgaSA8PSAobW92ZVVwID8gbmV3SW5kZXggOiBpbmRleCk7IGkrKykge1xuICAgICAgICAgICAgICAgIG1vdmluZ0dyb3Vwcy5wdXNoKGZvcm1BcnJheS5hdChpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vdmluZ0dyb3Vwcy5mb3JFYWNoKChmb3JtQ29udHJvbCwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgICAgICBsZXQgcG9zaXRpb247XG5cbiAgICAgICAgICAgICAgICBpZiAobW92ZVVwKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaWR4ID09PSAwID8gbmV3SW5kZXggOiBpbmRleCArIGlkeCAtIDE7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGlkeCA9PT0gbW92aW5nR3JvdXBzLmxlbmd0aCAtIDEgPyBuZXdJbmRleCA6IG5ld0luZGV4ICsgaWR4ICsgMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3JtQXJyYXkuc2V0Q29udHJvbChwb3NpdGlvbiwgZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLm1vdmVHcm91cChpbmRleCwgc3RlcCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZm9ybSBhcnJheSBncm91cCBjYW5ub3QgYmUgbW92ZWQgZHVlIHRvIGluZGV4IG9yIG5ldyBpbmRleCBiZWluZyBvdXQgb2YgYm91bmRzYCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHJlbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgICAgICAgZm9ybUFycmF5TW9kZWwucmVtb3ZlR3JvdXAoaW5kZXgpO1xuICAgIH1cblxuXG4gICAgY2xlYXJGb3JtQXJyYXkoZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBmb3JtQXJyYXkuY2xlYXIoKTtcbiAgICAgICAgZm9ybUFycmF5TW9kZWwuY2xlYXIoKTtcbiAgICB9XG5cblxuICAgIGZpbmRCeUlkKGlkOiBzdHJpbmcsIGZvcm1Nb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCk6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIHwgbnVsbCB7XG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG5cbiAgICAgICAgY29uc3QgZmluZEJ5SWRGbiA9IChtb2RlbElkOiBzdHJpbmcsIGdyb3VwTW9kZWw6IER5bmFtaWNGb3JtTW9kZWwpOiB2b2lkID0+IHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBjb250cm9sTW9kZWwgb2YgZ3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xNb2RlbC5pZCA9PT0gbW9kZWxJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjb250cm9sTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluZEJ5SWRGbihtb2RlbElkLCAoY29udHJvbE1vZGVsIGFzIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkuZ3JvdXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBmaW5kQnlJZEZuKGlkLCBmb3JtTW9kZWwpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cbiAgICBmaW5kTW9kZWxCeUlkKGlkOiBzdHJpbmcsIGZvcm1Nb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCk6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRCeUlkKGlkLCBmb3JtTW9kZWwpO1xuICAgIH1cblxuXG4gICAgZmluZENvbnRyb2xCeU1vZGVsKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgZ3JvdXA6IEZvcm1Hcm91cCk6IEFic3RyYWN0Q29udHJvbCB8IG51bGwge1xuICAgICAgICByZXR1cm4gZ3JvdXAucm9vdC5nZXQodGhpcy5nZXRQYXRoKG1vZGVsLCB0cnVlKSk7XG4gICAgfVxuXG5cbiAgICBmcm9tSlNPTihqc29uOiBzdHJpbmcgfCBvYmplY3RbXSk6IER5bmFtaWNGb3JtTW9kZWwgfCBuZXZlciB7XG5cbiAgICAgICAgY29uc3QgZm9ybU1vZGVsSlNPTiA9IGlzU3RyaW5nKGpzb24pID8gSlNPTi5wYXJzZShqc29uLCBwYXJzZVJldml2ZXIpIDoganNvbjtcbiAgICAgICAgY29uc3QgZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsID0gW107XG5cbiAgICAgICAgZm9ybU1vZGVsSlNPTi5mb3JFYWNoKChtb2RlbDogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGxheW91dCA9IG1vZGVsLmxheW91dCB8fCBudWxsO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKG1vZGVsLnR5cGUpIHtcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWTpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUFycmF5TW9kZWwgPSBtb2RlbCBhcyBEeW5hbWljRm9ybUFycmF5TW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybUFycmF5TW9kZWwuZ3JvdXBzKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC5ncm91cHMuZm9yRWFjaCgoZ3JvdXBNb2RlbDogRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cE1vZGVsLmdyb3VwID0gdGhpcy5mcm9tSlNPTihncm91cE1vZGVsLmdyb3VwKSBhcyBEeW5hbWljRm9ybU1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC5ncm91cEZhY3RvcnkgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tSlNPTihmb3JtQXJyYXlNb2RlbC5ncm91cFByb3RvdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNGb3JtQXJyYXlNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0NoZWNrYm94TW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWF9HUk9VUDpcbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZ3JvdXAgPSB0aGlzLmZyb21KU09OKG1vZGVsLmdyb3VwKSBhcyBEeW5hbWljQ2hlY2tib3hNb2RlbFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0NoZWNrYm94R3JvdXBNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NPTE9SUElDS0VSOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0NvbG9yUGlja2VyTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9EQVRFUElDS0VSOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0RhdGVQaWNrZXJNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0VESVRPUjpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNFZGl0b3JNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0ZJTEVfVVBMT0FEOlxuICAgICAgICAgICAgICAgICAgICBtb2RlbC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljRmlsZVVwbG9hZE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVA6XG4gICAgICAgICAgICAgICAgICAgIG1vZGVsLmdyb3VwID0gdGhpcy5mcm9tSlNPTihtb2RlbC5ncm91cCk7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljRm9ybUdyb3VwTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9JTlBVVDpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNJbnB1dE1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dE1vZGVsLm1hc2sgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGlucHV0TW9kZWwubWFzayBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0TW9kZWwubWFzayA9IG1hc2tGcm9tU3RyaW5nKGlucHV0TW9kZWwubWFzayBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNJbnB1dE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFESU9fR1JPVVA6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljUmFkaW9Hcm91cE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFUSU5HOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1JhdGluZ01vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU0VMRUNUOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1NlbGVjdE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU0xJREVSOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1NsaWRlck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU1dJVENIOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1N3aXRjaE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVEVYVEFSRUE6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljVGV4dEFyZWFNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1RJTUVQSUNLRVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljVGltZVBpY2tlck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gZm9ybSBjb250cm9sIG1vZGVsIHR5cGUgZGVmaW5lZCBvbiBKU09OIG9iamVjdCB3aXRoIGlkIFwiJHttb2RlbC5pZH1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybU1vZGVsO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBGLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUM3QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RILE9BQU8sRUFDSCx3Q0FBd0MsRUFDeEMseUJBQXlCLEVBQzVCLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEgsT0FBTyxFQUNILHFDQUFxQyxFQUNyQyx1QkFBdUIsRUFDMUIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQ0gsb0NBQW9DLEVBQ3BDLHNCQUFzQixFQUN6QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVHLE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsc0JBQXNCLEVBQ3pCLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUNILHFDQUFxQyxFQUNyQyxzQkFBc0IsRUFDekIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsa0JBQWtC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QztvQkFDdEQsTUFBTTtnQkFFVixLQUFLLGdDQUFnQztvQkFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN0RCxNQUFNO2dCQUVWLEtBQUssa0NBQWtDO29CQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ3hELE1BQU07Z0JBRVYsS0FBSyxvQ0FBb0M7b0JBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDMUQsTUFBTTtnQkFFVjtvQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUN2RztRQUNMLENBQUMsRUFBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs7O1lBbFhKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OztZQUpRLDJCQUEyQjtZQVAzQiw0QkFBNEI7Ozs7Ozs7O0lBY3JCLDhDQUFxRDs7Ozs7SUFDckQsK0NBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sT3B0aW9ucyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIEZvcm1Ib29rcyB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUFycmF5TW9kZWwsXG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSxcbiAgICBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvZm9ybS1hcnJheS9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVAsIER5bmFtaWNGb3JtR3JvdXBNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9mb3JtLWdyb3VwL2R5bmFtaWMtZm9ybS1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YX0dST1VQLFxuICAgIER5bmFtaWNDaGVja2JveEdyb3VwTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gtZ3JvdXAubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1gsIER5bmFtaWNDaGVja2JveE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DT0xPUlBJQ0tFUixcbiAgICBEeW5hbWljQ29sb3JQaWNrZXJNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvY29sb3JwaWNrZXIvZHluYW1pYy1jb2xvcnBpY2tlci5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0RBVEVQSUNLRVIsXG4gICAgRHluYW1pY0RhdGVQaWNrZXJNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvZGF0ZXBpY2tlci9keW5hbWljLWRhdGVwaWNrZXIubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRURJVE9SLCBEeW5hbWljRWRpdG9yTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZWRpdG9yL2R5bmFtaWMtZWRpdG9yLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRklMRV9VUExPQUQsXG4gICAgRHluYW1pY0ZpbGVVcGxvYWRNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvZmlsZS11cGxvYWQvZHluYW1pYy1maWxlLXVwbG9hZC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9JTlBVVCwgRHluYW1pY0lucHV0TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvaW5wdXQvZHluYW1pYy1pbnB1dC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1JBRElPX0dST1VQLFxuICAgIER5bmFtaWNSYWRpb0dyb3VwTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL3JhZGlvL2R5bmFtaWMtcmFkaW8tZ3JvdXAubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFUSU5HLCBEeW5hbWljUmF0aW5nTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvcmF0aW5nL2R5bmFtaWMtcmF0aW5nLm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1NFTEVDVCwgRHluYW1pY1NlbGVjdE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3NlbGVjdC9keW5hbWljLXNlbGVjdC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TTElERVIsIER5bmFtaWNTbGlkZXJNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9zbGlkZXIvZHluYW1pYy1zbGlkZXIubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU1dJVENILCBEeW5hbWljU3dpdGNoTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvc3dpdGNoL2R5bmFtaWMtc3dpdGNoLm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1RFWFRBUkVBLCBEeW5hbWljVGV4dEFyZWFNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC90ZXh0YXJlYS9keW5hbWljLXRleHRhcmVhLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVElNRVBJQ0tFUixcbiAgICBEeW5hbWljVGltZVBpY2tlck1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC90aW1lcGlja2VyL2R5bmFtaWMtdGltZXBpY2tlci5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS12YWxpZGF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtTW9kZWwsIER5bmFtaWNVbmlvbkZvcm1Nb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0ubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNQYXRoYWJsZSB9IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXBhdGgubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgbWFza0Zyb21TdHJpbmcsIHBhcnNlUmV2aXZlciB9IGZyb20gXCIuLi91dGlscy9qc29uLnV0aWxzXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyh2YWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB8IG51bGwgPSBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3luY1ZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU9uOiBGb3JtSG9va3MgfCBudWxsID0gbnVsbCk6IEFic3RyYWN0Q29udHJvbE9wdGlvbnMge1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IGFzeW5jVmFsaWRhdG9yc0NvbmZpZyAhPT0gbnVsbCA/IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9yc0NvbmZpZykgOiBudWxsLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogdmFsaWRhdG9yc0NvbmZpZyAhPT0gbnVsbCA/IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnKSA6IG51bGwsXG4gICAgICAgICAgICB1cGRhdGVPbjogdXBkYXRlT24gIT09IG51bGwgJiYgdGhpcy52YWxpZGF0aW9uU2VydmljZS5pc0Zvcm1Ib29rKHVwZGF0ZU9uKSA/IHVwZGF0ZU9uIDogXCJjaGFuZ2VcIlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNyZWF0ZUZvcm1BcnJheShmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogRm9ybUFycmF5IHtcblxuICAgICAgICBjb25zdCBjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gPSBbXTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhmb3JtQXJyYXlNb2RlbC52YWxpZGF0b3JzLCBmb3JtQXJyYXlNb2RlbC5hc3luY1ZhbGlkYXRvcnMsXG4gICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm1BcnJheU1vZGVsLnNpemU7IGluZGV4KyspIHtcblxuICAgICAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IGZvcm1BcnJheU1vZGVsLmdldChpbmRleCk7XG4gICAgICAgICAgICBjb25zdCBncm91cE9wdGlvbnMgPSB0aGlzLmNyZWF0ZUFic3RyYWN0Q29udHJvbE9wdGlvbnMoZm9ybUFycmF5TW9kZWwuZ3JvdXBWYWxpZGF0b3JzLFxuICAgICAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLmdyb3VwQXN5bmNWYWxpZGF0b3JzLCBmb3JtQXJyYXlNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgICAgIGNvbnRyb2xzLnB1c2godGhpcy5jcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlbC5ncm91cCwgZ3JvdXBPcHRpb25zLCBncm91cE1vZGVsKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShjb250cm9scywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY3JlYXRlRm9ybUdyb3VwKGZvcm1Nb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCwgb3B0aW9uczogQWJzdHJhY3RDb250cm9sT3B0aW9ucyB8IG51bGwgPSBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IER5bmFtaWNQYXRoYWJsZSB8IG51bGwgPSBudWxsKTogRm9ybUdyb3VwIHtcblxuICAgICAgICBjb25zdCBjb250cm9sczogeyBbY29udHJvbElkOiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7IH0gPSB7fTtcblxuICAgICAgICBmb3JtTW9kZWwuZm9yRWFjaChtb2RlbCA9PiB7XG5cbiAgICAgICAgICAgIG1vZGVsLnBhcmVudCA9IHBhcmVudDtcblxuICAgICAgICAgICAgc3dpdGNoIChtb2RlbC50eXBlKSB7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQVJSQVk6XG5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHNbbW9kZWwuaWRdID0gdGhpcy5jcmVhdGVGb3JtQXJyYXkobW9kZWwgYXMgRHluYW1pY0Zvcm1BcnJheU1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVA6XG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YX0dST1VQOlxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwTW9kZWwgPSBtb2RlbCBhcyBEeW5hbWljRm9ybUdyb3VwTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwT3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhncm91cE1vZGVsLnZhbGlkYXRvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cE1vZGVsLmFzeW5jVmFsaWRhdG9ycywgZ3JvdXBNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHNbbW9kZWwuaWRdID0gdGhpcy5jcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlbC5ncm91cCwgZ3JvdXBPcHRpb25zLCBncm91cE1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWw8YW55PjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFN0YXRlID0ge3ZhbHVlOiBjb250cm9sTW9kZWwudmFsdWUsIGRpc2FibGVkOiBjb250cm9sTW9kZWwuZGlzYWJsZWR9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sT3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhjb250cm9sTW9kZWwudmFsaWRhdG9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xNb2RlbC5hc3luY1ZhbGlkYXRvcnMsIGNvbnRyb2xNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHNbbW9kZWwuaWRdID0gbmV3IEZvcm1Db250cm9sKGNvbnRyb2xTdGF0ZSwgY29udHJvbE9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChjb250cm9scywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZ2V0UGF0aFNlZ21lbnQobW9kZWw6IER5bmFtaWNQYXRoYWJsZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsID8gbW9kZWwuaW5kZXgudG9TdHJpbmcoKSA6IChtb2RlbCBhcyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCkuaWQ7XG4gICAgfVxuXG4gICAgZ2V0UGF0aChtb2RlbDogRHluYW1pY1BhdGhhYmxlLCBqb2luOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmdbXSB8IHN0cmluZyB7XG5cbiAgICAgICAgY29uc3QgcGF0aCA9IFt0aGlzLmdldFBhdGhTZWdtZW50KG1vZGVsKV07XG4gICAgICAgIGxldCBwYXJlbnQgPSBtb2RlbC5wYXJlbnQ7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudCkge1xuXG4gICAgICAgICAgICBwYXRoLnVuc2hpZnQodGhpcy5nZXRQYXRoU2VnbWVudChwYXJlbnQpKTtcbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gam9pbiA/IHBhdGguam9pbihcIi5cIikgOiBwYXRoO1xuICAgIH1cblxuICAgIGFkZEZvcm1Hcm91cENvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZvcm1Nb2RlbDogRHluYW1pY1VuaW9uRm9ybU1vZGVsLCAuLi5tb2RlbHM6IER5bmFtaWNGb3JtTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0Rm9ybUdyb3VwQ29udHJvbChmb3JtTW9kZWwuc2l6ZSgpLCBmb3JtR3JvdXAsIGZvcm1Nb2RlbCwgLi4ubW9kZWxzKTtcblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IGZvcm1Nb2RlbCBhcyBEeW5hbWljRm9ybU1vZGVsO1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRGb3JtR3JvdXBDb250cm9sKG1vZGVsLmxlbmd0aCwgZm9ybUdyb3VwLCBtb2RlbCwgLi4ubW9kZWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVGb3JtR3JvdXBDb250cm9sKGluZGV4OiBudW1iZXIsIHN0ZXA6IG51bWJlciwgZm9ybU1vZGVsOiBEeW5hbWljVW5pb25Gb3JtTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIGZvcm1Nb2RlbC5tb3ZlKGluZGV4LCBzdGVwKTtcblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IGZvcm1Nb2RlbCBhcyBEeW5hbWljRm9ybU1vZGVsO1xuICAgICAgICAgICAgbW9kZWwuc3BsaWNlKGluZGV4ICsgc3RlcCwgMCwgLi4ubW9kZWwuc3BsaWNlKGluZGV4LCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnNlcnRGb3JtR3JvdXBDb250cm9sKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmb3JtTW9kZWw6IER5bmFtaWNVbmlvbkZvcm1Nb2RlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm1vZGVsczogRHluYW1pY0Zvcm1Nb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGZvcm1Nb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCA/IGZvcm1Nb2RlbCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jcmVhdGVGb3JtR3JvdXAobW9kZWxzLCBudWxsLCBwYXJlbnQpLmNvbnRyb2xzO1xuXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IG1vZGVsc1tpZHhdO1xuXG4gICAgICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG4gICAgICAgICAgICAgICAgZm9ybU1vZGVsLmluc2VydChpbmRleCwgY29udHJvbE1vZGVsKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAoZm9ybU1vZGVsIGFzIER5bmFtaWNGb3JtTW9kZWwpLnNwbGljZShpbmRleCwgMCwgY29udHJvbE1vZGVsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woY29udHJvbE5hbWUsIGNvbnRyb2xzW2NvbnRyb2xOYW1lXSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUZvcm1Hcm91cENvbnRyb2woaW5kZXg6IG51bWJlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZvcm1Nb2RlbDogRHluYW1pY1VuaW9uRm9ybU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGZvcm1Nb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICBmb3JtR3JvdXAucmVtb3ZlQ29udHJvbChmb3JtTW9kZWwuZ2V0KGluZGV4KS5pZCk7XG4gICAgICAgICAgICBmb3JtTW9kZWwucmVtb3ZlKGluZGV4KTtcblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBmb3JtR3JvdXAucmVtb3ZlQ29udHJvbChmb3JtTW9kZWxbaW5kZXhdLmlkKTtcbiAgICAgICAgICAgIChmb3JtTW9kZWwgYXMgRHluYW1pY0Zvcm1Nb2RlbCkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZEZvcm1BcnJheUdyb3VwKGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IGZvcm1BcnJheU1vZGVsLmFkZEdyb3VwKCk7XG5cbiAgICAgICAgZm9ybUFycmF5LnB1c2godGhpcy5jcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlbC5ncm91cCwgbnVsbCwgZ3JvdXBNb2RlbCkpO1xuICAgIH1cblxuICAgIGluc2VydEZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IGZvcm1BcnJheU1vZGVsLmluc2VydEdyb3VwKGluZGV4KTtcblxuICAgICAgICBmb3JtQXJyYXkuaW5zZXJ0KGluZGV4LCB0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBudWxsLCBncm91cE1vZGVsKSk7XG4gICAgfVxuXG4gICAgbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIHN0ZXA6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ICsgc3RlcDtcbiAgICAgICAgY29uc3QgbW92ZVVwID0gc3RlcCA+PSAwO1xuXG4gICAgICAgIGlmICgoaW5kZXggPj0gMCAmJiBpbmRleCA8IGZvcm1BcnJheU1vZGVsLnNpemUpICYmIChuZXdJbmRleCA+PSAwICYmIG5ld0luZGV4IDwgZm9ybUFycmF5TW9kZWwuc2l6ZSkpIHtcblxuICAgICAgICAgICAgY29uc3QgbW92aW5nR3JvdXBzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gbW92ZVVwID8gaW5kZXggOiBuZXdJbmRleDsgaSA8PSAobW92ZVVwID8gbmV3SW5kZXggOiBpbmRleCk7IGkrKykge1xuICAgICAgICAgICAgICAgIG1vdmluZ0dyb3Vwcy5wdXNoKGZvcm1BcnJheS5hdChpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vdmluZ0dyb3Vwcy5mb3JFYWNoKChmb3JtQ29udHJvbCwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgICAgICBsZXQgcG9zaXRpb247XG5cbiAgICAgICAgICAgICAgICBpZiAobW92ZVVwKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaWR4ID09PSAwID8gbmV3SW5kZXggOiBpbmRleCArIGlkeCAtIDE7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGlkeCA9PT0gbW92aW5nR3JvdXBzLmxlbmd0aCAtIDEgPyBuZXdJbmRleCA6IG5ld0luZGV4ICsgaWR4ICsgMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3JtQXJyYXkuc2V0Q29udHJvbChwb3NpdGlvbiwgZm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLm1vdmVHcm91cChpbmRleCwgc3RlcCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZm9ybSBhcnJheSBncm91cCBjYW5ub3QgYmUgbW92ZWQgZHVlIHRvIGluZGV4IG9yIG5ldyBpbmRleCBiZWluZyBvdXQgb2YgYm91bmRzYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVGb3JtQXJyYXlHcm91cChpbmRleDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgICAgIGZvcm1BcnJheU1vZGVsLnJlbW92ZUdyb3VwKGluZGV4KTtcbiAgICB9XG5cbiAgICBjbGVhckZvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGZvcm1BcnJheS5jbGVhcigpO1xuICAgICAgICBmb3JtQXJyYXlNb2RlbC5jbGVhcigpO1xuICAgIH1cblxuICAgIGZpbmRCeUlkKGlkOiBzdHJpbmcsIGZvcm1Nb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCk6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIHwgbnVsbCB7XG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG5cbiAgICAgICAgY29uc3QgZmluZEJ5SWRGbiA9IChtb2RlbElkOiBzdHJpbmcsIGdyb3VwTW9kZWw6IER5bmFtaWNGb3JtTW9kZWwpOiB2b2lkID0+IHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBjb250cm9sTW9kZWwgb2YgZ3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xNb2RlbC5pZCA9PT0gbW9kZWxJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjb250cm9sTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluZEJ5SWRGbihtb2RlbElkLCAoY29udHJvbE1vZGVsIGFzIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkuZ3JvdXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBmaW5kQnlJZEZuKGlkLCBmb3JtTW9kZWwpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZmluZE1vZGVsQnlJZDxUIGV4dGVuZHMgRHluYW1pY0Zvcm1Db250cm9sTW9kZWw+KGlkOiBzdHJpbmcsIGZvcm1Nb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCk6IFQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEJ5SWQoaWQsIGZvcm1Nb2RlbCkgYXMgVDtcbiAgICB9XG5cbiAgICBmaW5kQ29udHJvbEJ5TW9kZWw8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4obW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBncm91cDogRm9ybUdyb3VwKTogVCB8IG51bGwge1xuICAgICAgICByZXR1cm4gZ3JvdXAucm9vdC5nZXQodGhpcy5nZXRQYXRoKG1vZGVsLCB0cnVlKSkgYXMgVDtcbiAgICB9XG5cbiAgICBkZXRlY3RDaGFuZ2VzKGZvcm1Db21wb25lbnQ/OiBEeW5hbWljRm9ybUNvbXBvbmVudCk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmb3JtQ29tcG9uZW50IGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Db21wb25lbnQpIHtcblxuICAgICAgICAgICAgZm9ybUNvbXBvbmVudC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIGZvcm1Db21wb25lbnQuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybSBvZiB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2V0Rm9ybXMoKSkge1xuICAgICAgICAgICAgICAgIGZvcm0ubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgZm9ybS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmcm9tSlNPTihqc29uOiBzdHJpbmcgfCBvYmplY3RbXSk6IER5bmFtaWNGb3JtTW9kZWwgfCBuZXZlciB7XG5cbiAgICAgICAgY29uc3QgZm9ybU1vZGVsSlNPTiA9IGlzU3RyaW5nKGpzb24pID8gSlNPTi5wYXJzZShqc29uLCBwYXJzZVJldml2ZXIpIDoganNvbjtcbiAgICAgICAgY29uc3QgZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsID0gW107XG5cbiAgICAgICAgZm9ybU1vZGVsSlNPTi5mb3JFYWNoKChtb2RlbDogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGxheW91dCA9IG1vZGVsLmxheW91dCB8fCBudWxsO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKG1vZGVsLnR5cGUpIHtcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWTpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUFycmF5TW9kZWwgPSBtb2RlbCBhcyBEeW5hbWljRm9ybUFycmF5TW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybUFycmF5TW9kZWwuZ3JvdXBzKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC5ncm91cHMuZm9yRWFjaCgoZ3JvdXBNb2RlbDogRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cE1vZGVsLmdyb3VwID0gdGhpcy5mcm9tSlNPTihncm91cE1vZGVsLmdyb3VwKSBhcyBEeW5hbWljRm9ybU1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC5ncm91cEZhY3RvcnkgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tSlNPTihmb3JtQXJyYXlNb2RlbC5ncm91cFByb3RvdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNGb3JtQXJyYXlNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0NoZWNrYm94TW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWF9HUk9VUDpcbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZ3JvdXAgPSB0aGlzLmZyb21KU09OKG1vZGVsLmdyb3VwKSBhcyBEeW5hbWljQ2hlY2tib3hNb2RlbFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0NoZWNrYm94R3JvdXBNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NPTE9SUElDS0VSOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0NvbG9yUGlja2VyTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9EQVRFUElDS0VSOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0RhdGVQaWNrZXJNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0VESVRPUjpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNFZGl0b3JNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0ZJTEVfVVBMT0FEOlxuICAgICAgICAgICAgICAgICAgICBtb2RlbC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljRmlsZVVwbG9hZE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVA6XG4gICAgICAgICAgICAgICAgICAgIG1vZGVsLmdyb3VwID0gdGhpcy5mcm9tSlNPTihtb2RlbC5ncm91cCk7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljRm9ybUdyb3VwTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9JTlBVVDpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNJbnB1dE1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dE1vZGVsLm1hc2sgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGlucHV0TW9kZWwubWFzayBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0TW9kZWwubWFzayA9IG1hc2tGcm9tU3RyaW5nKGlucHV0TW9kZWwubWFzayBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNJbnB1dE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFESU9fR1JPVVA6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljUmFkaW9Hcm91cE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFUSU5HOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1JhdGluZ01vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU0VMRUNUOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1NlbGVjdE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU0xJREVSOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1NsaWRlck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU1dJVENIOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY1N3aXRjaE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVEVYVEFSRUE6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljVGV4dEFyZWFNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1RJTUVQSUNLRVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljVGltZVBpY2tlck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gZm9ybSBjb250cm9sIG1vZGVsIHR5cGUgZGVmaW5lZCBvbiBKU09OIG9iamVjdCB3aXRoIGlkIFwiJHttb2RlbC5pZH1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybU1vZGVsO1xuICAgIH1cbn1cbiJdfQ==

@@ -215,2 +215,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZpbGwudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2F1dG9maWxsLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxPQUFPLGdCQUFnQixHQUFHLEtBQUs7O0FBQ3JDLE1BQU0sT0FBTyxlQUFlLEdBQUcsSUFBSTs7QUFFbkMsTUFBTSxPQUFPLHNCQUFzQixHQUFHLFNBQVM7O0FBQy9DLE1BQU0sT0FBTyx1QkFBdUIsR0FBRyxVQUFVOztBQUVqRCxNQUFNLE9BQU8sdUJBQXVCLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzs7QUFFeEYsTUFBTSxPQUFPLG1CQUFtQixHQUFHLE1BQU07O0FBQ3pDLE1BQU0sT0FBTyxtQkFBbUIsR0FBRyxNQUFNOztBQUN6QyxNQUFNLE9BQU8scUJBQXFCLEdBQUcsUUFBUTs7QUFDN0MsTUFBTSxPQUFPLGtCQUFrQixHQUFHLEtBQUs7O0FBQ3ZDLE1BQU0sT0FBTyxvQkFBb0IsR0FBRyxPQUFPOztBQUUzQyxNQUFNLE9BQU8sdUJBQXVCLEdBQUc7SUFDbkMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQzVHOztBQUVELE1BQU0sT0FBTyw2QkFBNkIsR0FBRyxnQkFBZ0I7O0FBQzdELE1BQU0sT0FBTyw2QkFBNkIsR0FBRyxlQUFlOztBQUM1RCxNQUFNLE9BQU8sNkJBQTZCLEdBQUcsZUFBZTs7QUFDNUQsTUFBTSxPQUFPLDZCQUE2QixHQUFHLGVBQWU7O0FBQzVELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBRTlELE1B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RCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDeEMsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFjOztVQUU3QixZQUFZOzs7OztJQUFHLENBQUMsS0FBYSxFQUFFLFlBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFBOztVQUNsRixhQUFhLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7VUFDNUQsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1VBQzVELE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7VUFDN0MsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1VBQzVELEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQywyQkFBMkIsYUFBYSxjQUFjLE1BQU0sVUFBVSxhQUFhLGNBQWMsYUFBYSxNQUFNLENBQUM7SUFFOUksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX09GRiA9IFwib2ZmXCI7XG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX09OID0gXCJvblwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fQklMTElORyA9IFwiYmlsbGluZ1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX1NISVBQSU5HID0gXCJzaGlwcGluZ1wiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5TX0FERFJFU1MgPSBbQVVUT0ZJTExfVE9LRU5fQklMTElORywgQVVUT0ZJTExfVE9LRU5fU0hJUFBJTkddO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fSE9NRSA9IFwiaG9tZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX1dPUksgPSBcIndvcmtcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9NT0JJTEUgPSBcIm1vYmlsZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX0ZBWCA9IFwiZmF4XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fUEFHRVIgPSBcInBhZ2VyXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTlNfQ09OVEFDVCA9IFtcbiAgICBBVVRPRklMTF9UT0tFTl9GQVgsIEFVVE9GSUxMX1RPS0VOX0hPTUUsIEFVVE9GSUxMX1RPS0VOX01PQklMRSwgQVVUT0ZJTExfVE9LRU5fUEFHRVIsIEFVVE9GSUxMX1RPS0VOX1dPUktcbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9TVFJFRVRfQUREUkVTUyA9IFwic3RyZWV0LWFkZHJlc3NcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMSA9IFwiYWRkcmVzcy1saW5lMVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8yID0gXCJhZGRyZXNzLWxpbmUyXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzMgPSBcImFkZHJlc3MtbGluZTNcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzQgPSBcImFkZHJlc3MtbGV2ZWw0XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8zID0gXCJhZGRyZXNzLWxldmVsM1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMiA9IFwiYWRkcmVzcy1sZXZlbDJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzEgPSBcImFkZHJlc3MtbGV2ZWwxXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9OQU1FID0gXCJuYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1BSRUZJWCA9IFwiaG9ub3JpZmljLXByZWZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0dJVkVOX05BTUUgPSBcImdpdmVuLW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERJVElPTkFMX05BTUUgPSBcImFkZGl0aW9uYWwtbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0ZBTUlMWV9OQU1FID0gXCJmYW1pbHktbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0hPTk9SSUZJQ19TVUZGSVggPSBcImhvbm9yaWZpYy1zdWZmaXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9OSUNLTkFNRSA9IFwibmlja25hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9VU0VSTkFNRSA9IFwidXNlcm5hbWVcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX05FV19QQVNTV09SRCA9IFwibmV3LXBhc3N3b3JkXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ1VSUkVOVF9QQVNTV09SRCA9IFwiY3VycmVudC1wYXNzd29yZFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfT1JHQU5JWkFUSU9OX1RJVExFID0gXCJvcmdhbml6YXRpb24tdGl0bGVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT04gPSBcIm9yZ2FuaXphdGlvblwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ09VTlRSWSA9IFwiY291bnRyeVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NPVU5UUllfTkFNRSA9IFwiY291bnRyeS1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfUE9TVEFMX0NPREUgPSBcInBvc3RhbC1jb2RlXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19OQU1FID0gXCJjYy1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfR0lWRU5fTkFNRSA9IFwiY2MtZ2l2ZW4tbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX0FERElUSU9OQUxfTkFNRSA9IFwiY2MtYWRkaXRpb25hbC1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfRkFNSUxZX05BTUUgPSBcImNjLWZhbWlseS1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfTlVNQkVSID0gXCJjYy1udW1iZXJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19FWFAgPSBcImNjLWV4cFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX0VYUF9NT05USCA9IFwiY2MtZXhwLW1vbnRoXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfRVhQX1lFQVIgPSBcImNjLWV4cC15ZWFyXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfQ1NDID0gXCJjYy1jc2NcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19UWVBFID0gXCJjYy10eXBlXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9DVVJSRU5DWSA9IFwidHJhbnNhY3Rpb24tY3VycmVuY3lcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9BTU9VTlQgPSBcInRyYW5zYWN0aW9uLWFtb3VudFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfTEFOR1VBR0UgPSBcImxhbmd1YWdlXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9CREFZID0gXCJiZGF5XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQkRBWV9EQVkgPSBcImJkYXktZGF5XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQkRBWV9NT05USCA9IFwiYmRheS1tb250aFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0JEQVlfWUVBUiA9IFwiYmRheS15ZWFyXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9TRVggPSBcInNleFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVVJMID0gXCJ1cmxcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1BIT1RPID0gXCJwaG90b1wiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERTID0gW1xuXG4gICAgQVVUT0ZJTExfRklFTERfU1RSRUVUX0FERFJFU1MsIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8xLCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMixcbiAgICBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMywgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF80LCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzMsXG4gICAgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8yLCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzEsIEFVVE9GSUxMX0ZJRUxEX05BTUUsXG4gICAgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1BSRUZJWCwgQVVUT0ZJTExfRklFTERfR0lWRU5fTkFNRSwgQVVUT0ZJTExfRklFTERfQURESVRJT05BTF9OQU1FLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0ZBTUlMWV9OQU1FLCBBVVRPRklMTF9GSUVMRF9IT05PUklGSUNfU1VGRklYLCBBVVRPRklMTF9GSUVMRF9OSUNLTkFNRSwgQVVUT0ZJTExfRklFTERfVVNFUk5BTUUsXG4gICAgQVVUT0ZJTExfRklFTERfTkVXX1BBU1NXT1JELCBBVVRPRklMTF9GSUVMRF9DVVJSRU5UX1BBU1NXT1JELCBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT05fVElUTEUsXG4gICAgQVVUT0ZJTExfRklFTERfT1JHQU5JWkFUSU9OLCBBVVRPRklMTF9GSUVMRF9DT1VOVFJZLCBBVVRPRklMTF9GSUVMRF9DT1VOVFJZX05BTUUsIEFVVE9GSUxMX0ZJRUxEX1BPU1RBTF9DT0RFLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0NDX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0NDX0dJVkVOX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0NDX0FERElUSU9OQUxfTkFNRSxcbiAgICBBVVRPRklMTF9GSUVMRF9DQ19GQU1JTFlfTkFNRSwgQVVUT0ZJTExfRklFTERfQ0NfTlVNQkVSLCBBVVRPRklMTF9GSUVMRF9DQ19FWFAsIEFVVE9GSUxMX0ZJRUxEX0NDX0VYUF9NT05USCxcbiAgICBBVVRPRklMTF9GSUVMRF9DQ19FWFBfWUVBUiwgQVVUT0ZJTExfRklFTERfQ0NfQ1NDLCBBVVRPRklMTF9GSUVMRF9DQ19UWVBFLCBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9DVVJSRU5DWSxcbiAgICBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9BTU9VTlQsIEFVVE9GSUxMX0ZJRUxEX0xBTkdVQUdFLCBBVVRPRklMTF9GSUVMRF9CREFZLCBBVVRPRklMTF9GSUVMRF9CREFZX0RBWSxcbiAgICBBVVRPRklMTF9GSUVMRF9CREFZX01PTlRILCBBVVRPRklMTF9GSUVMRF9CREFZX1lFQVIsIEFVVE9GSUxMX0ZJRUxEX1NFWCwgQVVUT0ZJTExfRklFTERfVVJMLCBBVVRPRklMTF9GSUVMRF9QSE9UT1xuXTtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTCA9IFwidGVsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0NPVU5UUllfQ09ERSA9IFwidGVsLWNvdW50cnktY29kZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9OQVRJT05BTCA9IFwidGVsLW5hdGlvbmFsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0FSRUFfQ09ERSA9IFwidGVsLWFyZWEtY29kZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTCA9IFwidGVsLWxvY2FsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1BSRUZJWCA9IFwidGVsLWxvY2FsLXByZWZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9TVUZGSVggPSBcInRlbC1sb2NhbC1zdWZmaXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfRVhURU5TSU9OID0gXCJ0ZWwtZXh0ZW5zaW9uXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfRU1BSUwgPSBcImVtYWlsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfSU1QUCA9IFwiaW1wcFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERTX0NPTlRBQ1QgPSBbXG5cbiAgICBBVVRPRklMTF9GSUVMRF9URUwsIEFVVE9GSUxMX0ZJRUxEX1RFTF9DT1VOVFJZX0NPREUsIEFVVE9GSUxMX0ZJRUxEX1RFTF9OQVRJT05BTCwgQVVUT0ZJTExfRklFTERfVEVMX0FSRUFfQ09ERSxcbiAgICBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUwsIEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9QUkVGSVgsIEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9TVUZGSVgsXG4gICAgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX0VYVEVOU0lPTiwgQVVUT0ZJTExfRklFTERfRU1BSUwsIEFVVE9GSUxMX0ZJRUxEX0lNUFBcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FkZHJlc3NUb2tlbih0b2tlbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFVVE9GSUxMX1RPS0VOU19BRERSRVNTLmluZGV4T2YodG9rZW4pID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRhY3RGaWVsZCh0b2tlbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFVVE9GSUxMX0ZJRUxEU19DT05UQUNULmluZGV4T2YodG9rZW4pID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRhY3RUb2tlbih0b2tlbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFVVE9GSUxMX1RPS0VOU19DT05UQUNULmluZGV4T2YodG9rZW4pID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpZWxkKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfRklFTERTLmluZGV4T2YodG9rZW4pID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlY3Rpb25Ub2tlbih0b2tlbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRva2VuLnN0YXJ0c1dpdGgoXCJzZWN0aW9uLVwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHRva2Vuczogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBjb25zdCB0b0V4cHJlc3Npb24gPSAodG90YWw6IHN0cmluZywgY3VycmVudFZhbHVlOiBzdHJpbmcpID0+IGAke3RvdGFsfXwke2N1cnJlbnRWYWx1ZX1gO1xuICAgIGNvbnN0IHRva2Vuc0FkZHJlc3MgPSBBVVRPRklMTF9UT0tFTlNfQUREUkVTUy5yZWR1Y2UodG9FeHByZXNzaW9uKTtcbiAgICBjb25zdCB0b2tlbnNDb250YWN0ID0gQVVUT0ZJTExfVE9LRU5TX0NPTlRBQ1QucmVkdWNlKHRvRXhwcmVzc2lvbik7XG4gICAgY29uc3QgZmllbGRzID0gQVVUT0ZJTExfRklFTERTLnJlZHVjZSh0b0V4cHJlc3Npb24pO1xuICAgIGNvbnN0IGZpZWxkc0NvbnRhY3QgPSBBVVRPRklMTF9GSUVMRFNfQ09OVEFDVC5yZWR1Y2UodG9FeHByZXNzaW9uKTtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4oc2VjdGlvbi1cXFxcdytcXFxcc3sxfSk/KCgke3Rva2Vuc0FkZHJlc3N9KXsxfVxcXFxzKT8oKCR7ZmllbGRzfSl7MX18KCgke3Rva2Vuc0NvbnRhY3R9KXsxfVxcXFxzezF9KCR7ZmllbGRzQ29udGFjdH0pKSkkYCk7XG5cbiAgICByZXR1cm4gcmVnZXgudGVzdCh0b2tlbnMpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZpbGwudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2F1dG9maWxsLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxPQUFPLGdCQUFnQixHQUFHLEtBQUs7O0FBQ3JDLE1BQU0sT0FBTyxlQUFlLEdBQUcsSUFBSTs7QUFFbkMsTUFBTSxPQUFPLHNCQUFzQixHQUFHLFNBQVM7O0FBQy9DLE1BQU0sT0FBTyx1QkFBdUIsR0FBRyxVQUFVOztBQUVqRCxNQUFNLE9BQU8sdUJBQXVCLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzs7QUFFeEYsTUFBTSxPQUFPLG1CQUFtQixHQUFHLE1BQU07O0FBQ3pDLE1BQU0sT0FBTyxtQkFBbUIsR0FBRyxNQUFNOztBQUN6QyxNQUFNLE9BQU8scUJBQXFCLEdBQUcsUUFBUTs7QUFDN0MsTUFBTSxPQUFPLGtCQUFrQixHQUFHLEtBQUs7O0FBQ3ZDLE1BQU0sT0FBTyxvQkFBb0IsR0FBRyxPQUFPOztBQUUzQyxNQUFNLE9BQU8sdUJBQXVCLEdBQUc7SUFDbkMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQzVHOztBQUVELE1BQU0sT0FBTyw2QkFBNkIsR0FBRyxnQkFBZ0I7O0FBQzdELE1BQU0sT0FBTyw2QkFBNkIsR0FBRyxlQUFlOztBQUM1RCxNQUFNLE9BQU8sNkJBQTZCLEdBQUcsZUFBZTs7QUFDNUQsTUFBTSxPQUFPLDZCQUE2QixHQUFHLGVBQWU7O0FBQzVELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sT0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBRTlELE1BQU0sT0FBTyxtQkFBbUIsR0FBRyxNQUFNOztBQUN6QyxNQUFNLE9BQU8sK0JBQStCLEdBQUcsa0JBQWtCOztBQUNqRSxNQUFNLE9BQU8seUJBQXlCLEdBQUcsWUFBWTs7QUFDckQsTUFBTSxPQUFPLDhCQUE4QixHQUFHLGlCQUFpQjs7QUFDL0QsTUFBTSxPQUFPLDBCQUEwQixHQUFHLGFBQWE7O0FBQ3ZELE1BQU0sT0FBTywrQkFBK0IsR0FBRyxrQkFBa0I7O0FBQ2pFLE1BQU0sT0FBTyx1QkFBdUIsR0FBRyxVQUFVOztBQUNqRCxNQUFNLE9BQU8sdUJBQXVCLEdBQUcsVUFBVTs7QUFFakQsTUFBTSxPQUFPLDJCQUEyQixHQUFHLGNBQWM7O0FBQ3pELE1BQU0sT0FBTywrQkFBK0IsR0FBRyxrQkFBa0I7O0FBRWpFLE1BQU0sT0FBTyxpQ0FBaUMsR0FBRyxvQkFBb0I7O0FBQ3JFLE1BQU0sT0FBTywyQkFBMkIsR0FBRyxjQUFjOztBQUV6RCxNQUFNLE9BQU8sc0JBQXNCLEdBQUcsU0FBUzs7QUFDL0MsTUFBTSxPQUFPLDJCQUEyQixHQUFHLGNBQWM7O0FBQ3pELE1BQU0sT0FBTywwQkFBMEIsR0FBRyxhQUFhOztBQUV2RCxNQUFNLE9BQU8sc0JBQXNCLEdBQUcsU0FBUzs7QUFDL0MsTUFBTSxPQUFPLDRCQUE0QixHQUFHLGVBQWU7O0FBQzNELE1BQU0sT0FBTyxpQ0FBaUMsR0FBRyxvQkFBb0I7O0FBQ3JFLE1BQU0sT0FBTyw2QkFBNkIsR0FBRyxnQkFBZ0I7O0FBQzdELE1BQU0sT0FBTyx3QkFBd0IsR0FBRyxXQUFXOztBQUNuRCxNQUFNLE9BQU8scUJBQXFCLEdBQUcsUUFBUTs7QUFDN0MsTUFBTSxPQUFPLDJCQUEyQixHQUFHLGNBQWM7O0FBQ3pELE1BQU0sT0FBTywwQkFBMEIsR0FBRyxhQUFhOztBQUN2RCxNQUFNLE9BQU8scUJBQXFCLEdBQUcsUUFBUTs7QUFDN0MsTUFBTSxPQUFPLHNCQUFzQixHQUFHLFNBQVM7O0FBRS9DLE1BQU0sT0FBTyxtQ0FBbUMsR0FBRyxzQkFBc0I7O0FBQ3pFLE1BQU0sT0FBTyxpQ0FBaUMsR0FBRyxvQkFBb0I7O0FBRXJFLE1BQU0sT0FBTyx1QkFBdUIsR0FBRyxVQUFVOztBQUVqRCxNQUFNLE9BQU8sbUJBQW1CLEdBQUcsTUFBTTs7QUFDekMsTUFBTSxPQUFPLHVCQUF1QixHQUFHLFVBQVU7O0FBQ2pELE1BQU0sT0FBTyx5QkFBeUIsR0FBRyxZQUFZOztBQUNyRCxNQUFNLE9BQU8sd0JBQXdCLEdBQUcsV0FBVzs7QUFFbkQsTUFBTSxPQUFPLGtCQUFrQixHQUFHLEtBQUs7O0FBRXZDLE1BQU0sT0FBTyxrQkFBa0IsR0FBRyxLQUFLOztBQUV2QyxNQUFNLE9BQU8sb0JBQW9CLEdBQUcsT0FBTzs7QUFFM0MsTUFBTSxPQUFPLGVBQWUsR0FBRztJQUMzQiw2QkFBNkIsRUFBRSw2QkFBNkIsRUFBRSw2QkFBNkI7SUFDM0YsNkJBQTZCLEVBQUUsOEJBQThCLEVBQUUsOEJBQThCO0lBQzdGLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLG1CQUFtQjtJQUNuRiwrQkFBK0IsRUFBRSx5QkFBeUIsRUFBRSw4QkFBOEI7SUFDMUYsMEJBQTBCLEVBQUUsK0JBQStCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQzdHLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLGlDQUFpQztJQUMvRiwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEI7SUFDNUcsc0JBQXNCLEVBQUUsNEJBQTRCLEVBQUUsaUNBQWlDO0lBQ3ZGLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLDJCQUEyQjtJQUMzRywwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxtQ0FBbUM7SUFDOUcsaUNBQWlDLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQ3hHLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQjtDQUNwSDs7QUFFRCxNQUFNLE9BQU8sa0JBQWtCLEdBQUcsS0FBSzs7QUFDdkMsTUFBTSxPQUFPLCtCQUErQixHQUFHLGtCQUFrQjs7QUFDakUsTUFBTSxPQUFPLDJCQUEyQixHQUFHLGNBQWM7O0FBQ3pELE1BQU0sT0FBTyw0QkFBNEIsR0FBRyxlQUFlOztBQUMzRCxNQUFNLE9BQU8sd0JBQXdCLEdBQUcsV0FBVzs7QUFDbkQsTUFBTSxPQUFPLCtCQUErQixHQUFHLGtCQUFrQjs7QUFDakUsTUFBTSxPQUFPLCtCQUErQixHQUFHLGtCQUFrQjs7QUFDakUsTUFBTSxPQUFPLGtDQUFrQyxHQUFHLGVBQWU7O0FBQ2pFLE1BQU0sT0FBTyxvQkFBb0IsR0FBRyxPQUFPOztBQUMzQyxNQUFNLE9BQU8sbUJBQW1CLEdBQUcsTUFBTTs7QUFFekMsTUFBTSxPQUFPLHVCQUF1QixHQUFHO0lBQ25DLGtCQUFrQixFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLDRCQUE0QjtJQUM5Ryx3QkFBd0IsRUFBRSwrQkFBK0IsRUFBRSwrQkFBK0I7SUFDMUYsa0NBQWtDLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQ2hGOzs7OztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBYTtJQUN4QyxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBYTtJQUN4QyxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBYTtJQUN4QyxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBYTtJQUNqQyxPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDeEMsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFjOztVQUU3QixZQUFZOzs7OztJQUFHLENBQUMsS0FBYSxFQUFFLFlBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFBOztVQUNsRixhQUFhLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7VUFDNUQsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1VBQzVELE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7VUFDN0MsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1VBQzVELEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQywyQkFBMkIsYUFBYSxjQUFjLE1BQU0sVUFBVSxhQUFhLGNBQWMsYUFBYSxNQUFNLENBQUM7SUFFOUksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX09GRiA9IFwib2ZmXCI7XG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX09OID0gXCJvblwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fQklMTElORyA9IFwiYmlsbGluZ1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX1NISVBQSU5HID0gXCJzaGlwcGluZ1wiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5TX0FERFJFU1MgPSBbQVVUT0ZJTExfVE9LRU5fQklMTElORywgQVVUT0ZJTExfVE9LRU5fU0hJUFBJTkddO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fSE9NRSA9IFwiaG9tZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX1dPUksgPSBcIndvcmtcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9NT0JJTEUgPSBcIm1vYmlsZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX0ZBWCA9IFwiZmF4XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fUEFHRVIgPSBcInBhZ2VyXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTlNfQ09OVEFDVCA9IFtcbiAgICBBVVRPRklMTF9UT0tFTl9GQVgsIEFVVE9GSUxMX1RPS0VOX0hPTUUsIEFVVE9GSUxMX1RPS0VOX01PQklMRSwgQVVUT0ZJTExfVE9LRU5fUEFHRVIsIEFVVE9GSUxMX1RPS0VOX1dPUktcbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9TVFJFRVRfQUREUkVTUyA9IFwic3RyZWV0LWFkZHJlc3NcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMSA9IFwiYWRkcmVzcy1saW5lMVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8yID0gXCJhZGRyZXNzLWxpbmUyXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzMgPSBcImFkZHJlc3MtbGluZTNcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzQgPSBcImFkZHJlc3MtbGV2ZWw0XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8zID0gXCJhZGRyZXNzLWxldmVsM1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMiA9IFwiYWRkcmVzcy1sZXZlbDJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzEgPSBcImFkZHJlc3MtbGV2ZWwxXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9OQU1FID0gXCJuYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1BSRUZJWCA9IFwiaG9ub3JpZmljLXByZWZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0dJVkVOX05BTUUgPSBcImdpdmVuLW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERJVElPTkFMX05BTUUgPSBcImFkZGl0aW9uYWwtbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0ZBTUlMWV9OQU1FID0gXCJmYW1pbHktbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0hPTk9SSUZJQ19TVUZGSVggPSBcImhvbm9yaWZpYy1zdWZmaXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9OSUNLTkFNRSA9IFwibmlja25hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9VU0VSTkFNRSA9IFwidXNlcm5hbWVcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX05FV19QQVNTV09SRCA9IFwibmV3LXBhc3N3b3JkXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ1VSUkVOVF9QQVNTV09SRCA9IFwiY3VycmVudC1wYXNzd29yZFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfT1JHQU5JWkFUSU9OX1RJVExFID0gXCJvcmdhbml6YXRpb24tdGl0bGVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT04gPSBcIm9yZ2FuaXphdGlvblwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ09VTlRSWSA9IFwiY291bnRyeVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NPVU5UUllfTkFNRSA9IFwiY291bnRyeS1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfUE9TVEFMX0NPREUgPSBcInBvc3RhbC1jb2RlXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19OQU1FID0gXCJjYy1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfR0lWRU5fTkFNRSA9IFwiY2MtZ2l2ZW4tbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX0FERElUSU9OQUxfTkFNRSA9IFwiY2MtYWRkaXRpb25hbC1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfRkFNSUxZX05BTUUgPSBcImNjLWZhbWlseS1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfTlVNQkVSID0gXCJjYy1udW1iZXJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19FWFAgPSBcImNjLWV4cFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX0VYUF9NT05USCA9IFwiY2MtZXhwLW1vbnRoXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfRVhQX1lFQVIgPSBcImNjLWV4cC15ZWFyXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfQ1NDID0gXCJjYy1jc2NcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19UWVBFID0gXCJjYy10eXBlXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9DVVJSRU5DWSA9IFwidHJhbnNhY3Rpb24tY3VycmVuY3lcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9BTU9VTlQgPSBcInRyYW5zYWN0aW9uLWFtb3VudFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfTEFOR1VBR0UgPSBcImxhbmd1YWdlXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9CREFZID0gXCJiZGF5XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQkRBWV9EQVkgPSBcImJkYXktZGF5XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQkRBWV9NT05USCA9IFwiYmRheS1tb250aFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0JEQVlfWUVBUiA9IFwiYmRheS15ZWFyXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9TRVggPSBcInNleFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVVJMID0gXCJ1cmxcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1BIT1RPID0gXCJwaG90b1wiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERTID0gW1xuICAgIEFVVE9GSUxMX0ZJRUxEX1NUUkVFVF9BRERSRVNTLCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMSwgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzIsXG4gICAgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzMsIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfNCwgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8zLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMiwgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8xLCBBVVRPRklMTF9GSUVMRF9OQU1FLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0hPTk9SSUZJQ19QUkVGSVgsIEFVVE9GSUxMX0ZJRUxEX0dJVkVOX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0FERElUSU9OQUxfTkFNRSxcbiAgICBBVVRPRklMTF9GSUVMRF9GQU1JTFlfTkFNRSwgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1NVRkZJWCwgQVVUT0ZJTExfRklFTERfTklDS05BTUUsIEFVVE9GSUxMX0ZJRUxEX1VTRVJOQU1FLFxuICAgIEFVVE9GSUxMX0ZJRUxEX05FV19QQVNTV09SRCwgQVVUT0ZJTExfRklFTERfQ1VSUkVOVF9QQVNTV09SRCwgQVVUT0ZJTExfRklFTERfT1JHQU5JWkFUSU9OX1RJVExFLFxuICAgIEFVVE9GSUxMX0ZJRUxEX09SR0FOSVpBVElPTiwgQVVUT0ZJTExfRklFTERfQ09VTlRSWSwgQVVUT0ZJTExfRklFTERfQ09VTlRSWV9OQU1FLCBBVVRPRklMTF9GSUVMRF9QT1NUQUxfQ09ERSxcbiAgICBBVVRPRklMTF9GSUVMRF9DQ19OQU1FLCBBVVRPRklMTF9GSUVMRF9DQ19HSVZFTl9OQU1FLCBBVVRPRklMTF9GSUVMRF9DQ19BRERJVElPTkFMX05BTUUsXG4gICAgQVVUT0ZJTExfRklFTERfQ0NfRkFNSUxZX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0NDX05VTUJFUiwgQVVUT0ZJTExfRklFTERfQ0NfRVhQLCBBVVRPRklMTF9GSUVMRF9DQ19FWFBfTU9OVEgsXG4gICAgQVVUT0ZJTExfRklFTERfQ0NfRVhQX1lFQVIsIEFVVE9GSUxMX0ZJRUxEX0NDX0NTQywgQVVUT0ZJTExfRklFTERfQ0NfVFlQRSwgQVVUT0ZJTExfRklFTERfVFJBTlNBQ1RJT05fQ1VSUkVOQ1ksXG4gICAgQVVUT0ZJTExfRklFTERfVFJBTlNBQ1RJT05fQU1PVU5ULCBBVVRPRklMTF9GSUVMRF9MQU5HVUFHRSwgQVVUT0ZJTExfRklFTERfQkRBWSwgQVVUT0ZJTExfRklFTERfQkRBWV9EQVksXG4gICAgQVVUT0ZJTExfRklFTERfQkRBWV9NT05USCwgQVVUT0ZJTExfRklFTERfQkRBWV9ZRUFSLCBBVVRPRklMTF9GSUVMRF9TRVgsIEFVVE9GSUxMX0ZJRUxEX1VSTCwgQVVUT0ZJTExfRklFTERfUEhPVE9cbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUwgPSBcInRlbFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9DT1VOVFJZX0NPREUgPSBcInRlbC1jb3VudHJ5LWNvZGVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfTkFUSU9OQUwgPSBcInRlbC1uYXRpb25hbFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9BUkVBX0NPREUgPSBcInRlbC1hcmVhLWNvZGVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUwgPSBcInRlbC1sb2NhbFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9QUkVGSVggPSBcInRlbC1sb2NhbC1wcmVmaXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfU1VGRklYID0gXCJ0ZWwtbG9jYWwtc3VmZml4XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX0VYVEVOU0lPTiA9IFwidGVsLWV4dGVuc2lvblwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0VNQUlMID0gXCJlbWFpbFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0lNUFAgPSBcImltcHBcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEU19DT05UQUNUID0gW1xuICAgIEFVVE9GSUxMX0ZJRUxEX1RFTCwgQVVUT0ZJTExfRklFTERfVEVMX0NPVU5UUllfQ09ERSwgQVVUT0ZJTExfRklFTERfVEVMX05BVElPTkFMLCBBVVRPRklMTF9GSUVMRF9URUxfQVJFQV9DT0RFLFxuICAgIEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTCwgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1BSRUZJWCwgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1NVRkZJWCxcbiAgICBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfRVhURU5TSU9OLCBBVVRPRklMTF9GSUVMRF9FTUFJTCwgQVVUT0ZJTExfRklFTERfSU1QUFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWRkcmVzc1Rva2VuKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfVE9LRU5TX0FERFJFU1MuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGFjdEZpZWxkKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfRklFTERTX0NPTlRBQ1QuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGFjdFRva2VuKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfVE9LRU5TX0NPTlRBQ1QuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmllbGQodG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBVVRPRklMTF9GSUVMRFMuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VjdGlvblRva2VuKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdG9rZW4uc3RhcnRzV2l0aChcInNlY3Rpb24tXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodG9rZW5zOiBzdHJpbmcpOiBib29sZWFuIHtcblxuICAgIGNvbnN0IHRvRXhwcmVzc2lvbiA9ICh0b3RhbDogc3RyaW5nLCBjdXJyZW50VmFsdWU6IHN0cmluZykgPT4gYCR7dG90YWx9fCR7Y3VycmVudFZhbHVlfWA7XG4gICAgY29uc3QgdG9rZW5zQWRkcmVzcyA9IEFVVE9GSUxMX1RPS0VOU19BRERSRVNTLnJlZHVjZSh0b0V4cHJlc3Npb24pO1xuICAgIGNvbnN0IHRva2Vuc0NvbnRhY3QgPSBBVVRPRklMTF9UT0tFTlNfQ09OVEFDVC5yZWR1Y2UodG9FeHByZXNzaW9uKTtcbiAgICBjb25zdCBmaWVsZHMgPSBBVVRPRklMTF9GSUVMRFMucmVkdWNlKHRvRXhwcmVzc2lvbik7XG4gICAgY29uc3QgZmllbGRzQ29udGFjdCA9IEFVVE9GSUxMX0ZJRUxEU19DT05UQUNULnJlZHVjZSh0b0V4cHJlc3Npb24pO1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXihzZWN0aW9uLVxcXFx3K1xcXFxzezF9KT8oKCR7dG9rZW5zQWRkcmVzc30pezF9XFxcXHMpPygoJHtmaWVsZHN9KXsxfXwoKCR7dG9rZW5zQ29udGFjdH0pezF9XFxcXHN7MX0oJHtmaWVsZHNDb250YWN0fSkpKSRgKTtcblxuICAgIHJldHVybiByZWdleC50ZXN0KHRva2Vucyk7XG59XG4iXX0=

@@ -12,2 +12,3 @@ /**

}
// tslint:disable-next-line:ban-types
/**

@@ -41,2 +42,2 @@ * @param {?} value

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvY29yZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUN0QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBVTtJQUNqQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUN2QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNyQyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0FBQ3ZELENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFVO0lBQy9CLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvY29yZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUN0QyxDQUFDOzs7Ozs7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQVU7SUFDakMsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDdkMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDL0IsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDckMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDL0IsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztBQUN2RCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpiYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xufVxuIl19

@@ -5,3 +5,3 @@ /**

*/
export { DynamicFormArrayComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicTemplateableFormControlComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicIdDirective, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DisabledMatcher, HiddenMatcher, RequiredMatcher, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from "./lib/core";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwraUpBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmVcIjtcbiJdfQ==
export { DynamicFormArrayComponent, DynamicFormGroupComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicFormControlWithTemplateComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DISABLED_MATCHER_PROVIDER, HIDDEN_MATCHER_PROVIDER, REQUIRED_MATCHER_PROVIDER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from "./lib/core";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxvbEpBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmVcIjtcbiJdfQ==

@@ -8,3 +8,3 @@ /**

*/
export { DynamicFormArrayComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicTemplateableFormControlComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicIdDirective, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DisabledMatcher, HiddenMatcher, RequiredMatcher, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJjb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwraUpBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
export { DynamicFormArrayComponent, DynamicFormGroupComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicFormControlWithTemplateComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DISABLED_MATCHER_PROVIDER, HIDDEN_MATCHER_PROVIDER, REQUIRED_MATCHER_PROVIDER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJjb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvbEpBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19

@@ -6,2 +6,3 @@ /**

import * as tslib_1 from "tslib";
import { QueryList } from "@angular/core";
import { DynamicFormControlComponent } from "./dynamic-form-control.component";

@@ -49,2 +50,17 @@ /**

});
/**
* @return {?}
*/
DynamicFormArrayComponent.prototype.markForCheck = /**
* @return {?}
*/
function () {
if (this.components instanceof QueryList) {
this.components.forEach((/**
* @param {?} component
* @return {?}
*/
function (component) { return component.markForCheck(); }));
}
};
return DynamicFormArrayComponent;

@@ -58,2 +74,4 @@ }(DynamicFormControlComponent));

/** @type {?} */
DynamicFormArrayComponent.prototype.components;
/** @type {?} */
DynamicFormArrayComponent.prototype.model;

@@ -63,2 +81,2 @@ /** @type {?} */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWFycmF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1hcnJheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUkvRTs7OztJQUF3RCxxREFBMkI7SUFBbkY7O0lBZ0JBLENBQUM7SUFYRyxzQkFBSSw0Q0FBSzs7OztRQUFUO1lBQ0ksT0FBTyxtQkFBQSxJQUFJLENBQUMsT0FBTyxFQUFhLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxvREFBYTs7OztRQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRSxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLGtEQUFXOzs7O1FBQWY7WUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7OztPQUFBO0lBQ0wsZ0NBQUM7QUFBRCxDQUFDLEFBaEJELENBQXdELDJCQUEyQixHQWdCbEY7Ozs7Ozs7SUFkRywwQ0FBNkI7O0lBQzdCLDhDQUEyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5TGlzdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1BcnJheU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUFycmF5Q29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0Zvcm1Db250cm9sQ29tcG9uZW50IHtcblxuICAgIG1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWw7XG4gICAgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcblxuICAgIGdldCBhcnJheSgpOiBGb3JtQXJyYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sIGFzIEZvcm1BcnJheTtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFN0YXJ0VGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpO1xuICAgIH1cblxuICAgIGdldCBlbmRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVuZFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWFycmF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1hcnJheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBSy9FOzs7O0lBQXdELHFEQUEyQjtJQUFuRjs7SUF1QkEsQ0FBQztJQWpCRyxzQkFBSSw0Q0FBSzs7OztRQUFUO1lBQ0ksT0FBTyxtQkFBQSxJQUFJLENBQUMsT0FBTyxFQUFhLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxvREFBYTs7OztRQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRSxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLGtEQUFXOzs7O1FBQWY7WUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7OztPQUFBOzs7O0lBRUQsZ0RBQVk7OztJQUFaO1FBQ0ksSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLFNBQVMsRUFBRTtZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBeEIsQ0FBd0IsRUFBQyxDQUFDO1NBQ2xFO0lBQ0wsQ0FBQztJQUNMLGdDQUFDO0FBQUQsQ0FBQyxBQXZCRCxDQUF3RCwyQkFBMkIsR0F1QmxGOzs7Ozs7O0lBckJHLCtDQUE0RDs7SUFDNUQsMENBQTZCOztJQUM3Qiw4Q0FBMkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC5jb21wb25lbnRcIjtcbmltcG9ydCB7IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmUvZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQXJyYXlNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9mb3JtLWFycmF5L2R5bmFtaWMtZm9ybS1hcnJheS5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0Zvcm1BcnJheUNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCB7XG5cbiAgICBjb21wb25lbnRzOiBRdWVyeUxpc3Q8RHluYW1pY0Zvcm1Db250cm9sQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsO1xuICAgIHRlbXBsYXRlczogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgYXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbCBhcyBGb3JtQXJyYXk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXJ0VGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRTdGFydFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKTtcbiAgICB9XG5cbiAgICBnZXQgZW5kVGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRFbmRUZW1wbGF0ZSh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcyk7XG4gICAgfVxuXG4gICAgbWFya0ZvckNoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRzIGluc3RhbmNlb2YgUXVlcnlMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnQgPT4gY29tcG9uZW50Lm1hcmtGb3JDaGVjaygpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==

@@ -6,3 +6,3 @@ /**

import * as tslib_1 from "tslib";
import { DynamicFormControlEventType, isDynamicFormControlEvent } from "./dynamic-form-control.event";
import { DynamicFormControlEventType, isDynamicFormControlEvent } from "./dynamic-form-control-event";
import { DynamicFormValueControlModel } from "../model/dynamic-form-value-control.model";

@@ -13,2 +13,4 @@ import { DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayGroupModel } from "../model/form-array/dynamic-form-array.model";

import { isString } from "../utils/core.utils";
import { DynamicFormGroupComponent } from "./dynamic-form-group.component";
import { DynamicFormArrayComponent } from "./dynamic-form-array.component";
/**

@@ -21,3 +23,4 @@ * @abstract

DynamicFormControlContainerComponent = /** @class */ (function () {
function DynamicFormControlContainerComponent(componentFactoryResolver, layoutService, validationService, componentService, relationService) {
function DynamicFormControlContainerComponent(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
this.changeDetectorRef = changeDetectorRef;
this.componentFactoryResolver = componentFactoryResolver;

@@ -41,41 +44,16 @@ this.layoutService = layoutService;

function (changes) {
var _a;
var _this = this;
/** @type {?} */
var groupChange = ((/** @type {?} */ (changes))).group;
/** @type {?} */
var layoutChange = ((/** @type {?} */ (changes))).layout;
/** @type {?} */
var modelChange = ((/** @type {?} */ (changes))).model;
if (layoutChange || modelChange) {
this.onLayoutOrModelChange();
}
if (modelChange) {
this.destroyFormControlComponent();
this.createFormControlComponent();
this.onModelChange();
}
if (groupChange || modelChange) {
if (this.model) {
this.unsubscribe();
if (this.group) {
this.control = (/** @type {?} */ (this.group.get(this.model.id)));
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.onControlValueChanges(value); })));
}
this.subscriptions.push(this.model.disabledChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.onModelDisabledUpdates(value); })));
if (this.model instanceof DynamicFormValueControlModel) {
/** @type {?} */
var model = (/** @type {?} */ (this.model));
this.subscriptions.push(model.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.onModelValueUpdates(value); })));
}
if (this.model.relations.length > 0) {
(_a = this.subscriptions).push.apply(_a, tslib_1.__spread(this.relationService.subscribeRelations(this.model, this.group, this.control)));
}
}
this.onGroupOrModelChange();
}

@@ -93,3 +71,3 @@ };

};
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "errorMessages", {
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "id", {
get: /**

@@ -99,3 +77,3 @@ * @return {?}

function () {
return this.validationService.createErrorMessages(this.control, this.model);
return this.layoutService.getElementId(this.model);
},

@@ -105,2 +83,12 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "hasLabel", {
get: /**
* @return {?}
*/
function () {
return isString(this.model.label);
},
enumerable: true,
configurable: true
});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "hasHint", {

@@ -126,3 +114,3 @@ get: /**

});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "hasLabel", {
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "errorMessages", {
get: /**

@@ -132,3 +120,3 @@ * @return {?}

function () {
return isString(this.model.label);
return this.validationService.createErrorMessages(this.control, this.model);
},

@@ -138,3 +126,3 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "isCheckbox", {
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "showErrorMessages", {
get: /**

@@ -144,3 +132,3 @@ * @return {?}

function () {
return this.model.type === DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX;
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
},

@@ -150,3 +138,3 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "elementId", {
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "isCheckbox", {
get: /**

@@ -156,3 +144,3 @@ * @return {?}

function () {
return this.layoutService.getElementId(this.model);
return this.model.type === DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX;
},

@@ -182,12 +170,2 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "showErrorMessages", {
get: /**
* @return {?}
*/
function () {
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DynamicFormControlContainerComponent.prototype, "templates", {

@@ -228,3 +206,2 @@ get: /**

* @param {?} place
* @param {?=} model
* @return {?}

@@ -235,10 +212,20 @@ */

* @param {?} place
* @param {?=} model
* @return {?}
*/
function (context, place, model) {
if (model === void 0) { model = this.model; }
function (context, place) {
return this.layoutService.getClass(this.controlLayout, context, place);
};
/**
* @return {?}
*/
DynamicFormControlContainerComponent.prototype.markForCheck = /**
* @return {?}
*/
function () {
this.changeDetectorRef.markForCheck();
/** @type {?} */
var controlLayout = this.layoutService.findByModel(model, this.layout) || (/** @type {?} */ (model.layout));
return this.layoutService.getClass(controlLayout, context, place);
var component = this.componentRef.instance;
if (component && (component instanceof DynamicFormGroupComponent || component instanceof DynamicFormArrayComponent)) {
component.markForCheck();
}
};

@@ -263,10 +250,11 @@ /**

/** @type {?} */
var instance = this.componentRef.instance;
instance.group = this.group;
instance.layout = this.layout;
instance.model = (/** @type {?} */ (this.model));
var component = this.componentRef.instance;
component.formLayout = this.layout;
component.group = this.group;
component.layout = this.controlLayout;
component.model = this.model;
if (this.templates) {
instance.templates = this.templates;
component.templates = this.templates;
}
this.componentSubscriptions.push(instance.blur.subscribe((/**
this.componentSubscriptions.push(component.blur.subscribe((/**
* @param {?} $event

@@ -276,3 +264,3 @@ * @return {?}

function ($event) { return _this.onBlur($event); })));
this.componentSubscriptions.push(instance.change.subscribe((/**
this.componentSubscriptions.push(component.change.subscribe((/**
* @param {?} $event

@@ -282,3 +270,3 @@ * @return {?}

function ($event) { return _this.onChange($event); })));
this.componentSubscriptions.push(instance.focus.subscribe((/**
this.componentSubscriptions.push(component.focus.subscribe((/**
* @param {?} $event

@@ -288,4 +276,4 @@ * @return {?}

function ($event) { return _this.onFocus($event); })));
if (instance.customEvent !== undefined) {
this.componentSubscriptions.push(instance.customEvent.subscribe((/**
if (component.customEvent !== undefined) {
this.componentSubscriptions.push(component.customEvent.subscribe((/**
* @param {?} $event

@@ -296,3 +284,3 @@ * @return {?}

}
this.registerComponentRef(this.componentRef);
this.registerFormControlComponentRef(this.componentRef);
}

@@ -316,3 +304,3 @@ };

this.componentSubscriptions = [];
this.unregisterComponentRef();
this.unregisterFormControlComponentRef();
this.componentRef.destroy();

@@ -390,2 +378,60 @@ }

/**
* @return {?}
*/
DynamicFormControlContainerComponent.prototype.onLayoutOrModelChange = /**
* @return {?}
*/
function () {
this.controlLayout = this.layoutService.findByModel(this.model, this.layout) || (/** @type {?} */ (this.model.layout));
this.klass = (Array.isArray(this.hostClass) ? this.hostClass.join(" ") : "") + " " + this.layoutService.getHostClass(this.controlLayout);
};
/**
* @return {?}
*/
DynamicFormControlContainerComponent.prototype.onModelChange = /**
* @return {?}
*/
function () {
this.destroyFormControlComponent();
this.createFormControlComponent();
};
/**
* @return {?}
*/
DynamicFormControlContainerComponent.prototype.onGroupOrModelChange = /**
* @return {?}
*/
function () {
var _a;
var _this = this;
if (this.model) {
this.unsubscribe();
if (this.group) {
this.control = (/** @type {?} */ (this.group.get(this.model.id)));
this.subscriptions.push(this.control.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.onControlValueChanges(value); })));
}
this.subscriptions.push(this.model.disabledChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.onModelDisabledUpdates(value); })));
if (this.model instanceof DynamicFormValueControlModel) {
/** @type {?} */
var model = (/** @type {?} */ (this.model));
this.subscriptions.push(model.valueChanges.subscribe((/**
* @param {?} value
* @return {?}
*/
function (value) { return _this.onModelValueUpdates(value); })));
}
if (this.model.relations.length > 0) {
(_a = this.subscriptions).push.apply(_a, tslib_1.__spread(this.relationService.subscribeRelations(this.model, this.group, this.control)));
}
}
};
/**
* @param {?} $event

@@ -472,17 +518,17 @@ * @return {?}

* @private
* @param {?} instanceRef
* @param {?} ref
* @return {?}
*/
DynamicFormControlContainerComponent.prototype.registerComponentRef = /**
DynamicFormControlContainerComponent.prototype.registerFormControlComponentRef = /**
* @private
* @param {?} instanceRef
* @param {?} ref
* @return {?}
*/
function (instanceRef) {
/** @type {?} */
var index;
function (ref) {
if (this.context instanceof DynamicFormArrayGroupModel) {
index = this.context.index;
this.componentService.registerFormControl(this.model, ref, this.context.index);
}
this.componentService.registerFormControlRef(this.model, instanceRef, index);
else {
this.componentService.registerFormControl(this.model, ref);
}
};

@@ -493,3 +539,3 @@ /**

*/
DynamicFormControlContainerComponent.prototype.unregisterComponentRef = /**
DynamicFormControlContainerComponent.prototype.unregisterFormControlComponentRef = /**
* @private

@@ -499,8 +545,8 @@ * @return {?}

function () {
/** @type {?} */
var index;
if (this.context instanceof DynamicFormArrayGroupModel) {
index = this.context.index;
this.componentService.unregisterFormControl(this.model.id, this.context.index);
}
this.componentService.unregisterFormControlRef(this.model.id, index);
else {
this.componentService.unregisterFormControl(this.model.id);
}
};

@@ -523,2 +569,6 @@ return DynamicFormControlContainerComponent;

/** @type {?} */
DynamicFormControlContainerComponent.prototype.hostClass;
/** @type {?} */
DynamicFormControlContainerComponent.prototype.klass;
/** @type {?} */
DynamicFormControlContainerComponent.prototype.layout;

@@ -555,2 +605,7 @@ /** @type {?} */

*/
DynamicFormControlContainerComponent.prototype.controlLayout;
/**
* @type {?}
* @protected
*/
DynamicFormControlContainerComponent.prototype.subscriptions;

@@ -561,2 +616,7 @@ /**

*/
DynamicFormControlContainerComponent.prototype.changeDetectorRef;
/**
* @type {?}
* @protected
*/
DynamicFormControlContainerComponent.prototype.componentFactoryResolver;

@@ -589,2 +649,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFhQSxPQUFPLEVBR0gsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUM1QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzdCLE1BQU0sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUNILG9DQUFvQyxFQUNwQywrQkFBK0IsRUFFbEMsTUFBTSxvQ0FBb0MsQ0FBQztBQVc1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFHL0M7Ozs7SUF1QkksOENBQWdDLHdCQUFrRCxFQUNsRCxhQUF1QyxFQUN2QyxpQkFBK0MsRUFDL0MsZ0JBQTZDLEVBQzdDLGVBQTJDO1FBSjNDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE2QjtRQUM3QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUF6QjNFLFlBQU8sR0FBc0MsSUFBSSxDQUFDO1FBa0J4QywyQkFBc0IsR0FBbUIsRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQU83QyxDQUFDOzs7OztJQUVELDBEQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjs7UUFBbEMsaUJBc0NDOztZ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b250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUeXBlLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZSxcbiAgICBpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50XG59IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLmV2ZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZLFxuICAgIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9mb3JtLWFycmF5L2R5bmFtaWMtZm9ybS1hcnJheS5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWCB9IGZyb20gXCIuLi9tb2RlbC9jaGVja2JveC9keW5hbWljLWNoZWNrYm94Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX0lOUFVUX1RZUEVfRklMRSxcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVULFxuICAgIER5bmFtaWNJbnB1dE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9pbnB1dC9keW5hbWljLWlucHV0Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLWxheW91dC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlL2R5bmFtaWMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUxheW91dCwgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1yZWxhdGlvbi5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUNvbnRyb2xDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgICBjb250ZXh0OiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgaGFzRm9jdXM6IGJvb2xlYW47XG4gICAgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG5cbiAgICBjb250ZW50VGVtcGxhdGVMaXN0OiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcbiAgICBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuICAgIGNoYW5nZTogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcbiAgICBjdXN0b21FdmVudDogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiB8IHVuZGVmaW5lZDtcbiAgICBmb2N1czogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcblxuICAgIGNvbXBvbmVudFZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RHluYW1pY0Zvcm1Db250cm9sPjtcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50U3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBsYXlvdXRTZXJ2aWNlOiBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIHJlbGF0aW9uU2VydmljZTogRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBDaGFuZ2UgPSAoY2hhbmdlcyBhcyBQaWNrPFNpbXBsZUNoYW5nZXMsIFwiZ3JvdXBcIj4pLmdyb3VwO1xuICAgICAgICBjb25zdCBtb2RlbENoYW5nZSA9IChjaGFuZ2VzIGFzIFBpY2s8U2ltcGxlQ2hhbmdlcywgXCJtb2RlbFwiPikubW9kZWw7XG5cbiAgICAgICAgaWYgKG1vZGVsQ2hhbmdlKSB7XG5cbiAgICAgICAgICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBDaGFuZ2UgfHwgbW9kZWxDaGFuZ2UpIHtcblxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwpIHtcblxuICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5ncm91cC5nZXQodGhpcy5tb2RlbC5pZCkgYXMgRm9ybUNvbnRyb2w7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMub25Db250cm9sVmFsdWVDaGFuZ2VzKHZhbHVlKSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubW9kZWwuZGlzYWJsZWRDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLm9uTW9kZWxEaXNhYmxlZFVwZGF0ZXModmFsdWUpKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWwgYXMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+O1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKG1vZGVsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5vbk1vZGVsVmFsdWVVcGRhdGVzKHZhbHVlKSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnJlbGF0aW9ucy5sZW5ndGggPiAwKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goLi4udGhpcy5yZWxhdGlvblNlcnZpY2Uuc3Vic2NyaWJlUmVsYXRpb25zKHRoaXMubW9kZWwsIHRoaXMuZ3JvdXAsIHRoaXMuY29udHJvbCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuXG4gICAgICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXQgY29tcG9uZW50VHlwZSgpOiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsO1xuXG4gICAgZ2V0IGVycm9yTWVzc2FnZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU2VydmljZS5jcmVhdGVFcnJvck1lc3NhZ2VzKHRoaXMuY29udHJvbCwgdGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0hpbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZygodGhpcy5tb2RlbCBhcyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPGFueT4pLmhpbnQpO1xuICAgIH1cblxuICAgIGdldCBoaW50KCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwgYXMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+KS5oaW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0xhYmVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcodGhpcy5tb2RlbC5sYWJlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLnR5cGUgPT09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1g7XG4gICAgfVxuXG4gICAgZ2V0IGVsZW1lbnRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVsZW1lbnRJZCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wudmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dFcnJvck1lc3NhZ2VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC5oYXNFcnJvck1lc3NhZ2VzICYmIHRoaXMuY29udHJvbC50b3VjaGVkICYmICF0aGlzLmhhc0ZvY3VzICYmIHRoaXMuaXNJbnZhbGlkO1xuICAgIH1cblxuICAgIGdldCB0ZW1wbGF0ZXMoKTogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFRlbXBsYXRlTGlzdCAhPT0gdW5kZWZpbmVkID8gdGhpcy5pbnB1dFRlbXBsYXRlTGlzdCA6IHRoaXMuY29udGVudFRlbXBsYXRlTGlzdDtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC50eXBlICE9PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZID9cbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5nZXRTdGFydFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgZW5kVGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwudHlwZSAhPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSA/XG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RW5kVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldENsYXNzKGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSxcbiAgICAgICAgICAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgPSB0aGlzLm1vZGVsKTogc3RyaW5nIHtcblxuICAgICAgICBjb25zdCBjb250cm9sTGF5b3V0ID0gdGhpcy5sYXlvdXRTZXJ2aWNlLmZpbmRCeU1vZGVsKG1vZGVsLCB0aGlzLmxheW91dCkgfHwgbW9kZWwubGF5b3V0IGFzIER5bmFtaWNGb3JtQ29udHJvbExheW91dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldENsYXNzKGNvbnRyb2xMYXlvdXQsIGNvbnRleHQsIHBsYWNlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuY29tcG9uZW50VHlwZTtcblxuICAgICAgICBpZiAoY29tcG9uZW50VHlwZSAhPT0gbnVsbCkge1xuXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50VHlwZSk7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Vmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuXG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gICAgICAgICAgICBpbnN0YW5jZS5ncm91cCA9IHRoaXMuZ3JvdXA7XG4gICAgICAgICAgICBpbnN0YW5jZS5sYXlvdXQgPSB0aGlzLmxheW91dDtcbiAgICAgICAgICAgIGluc3RhbmNlLm1vZGVsID0gdGhpcy5tb2RlbCBhcyBhbnk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRlbXBsYXRlcykge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlLnRlbXBsYXRlcyA9IHRoaXMudGVtcGxhdGVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMucHVzaChpbnN0YW5jZS5ibHVyLnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25CbHVyKCRldmVudCkpKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5wdXNoKGluc3RhbmNlLmNoYW5nZS5zdWJzY3JpYmUoKCRldmVudDogYW55KSA9PiB0aGlzLm9uQ2hhbmdlKCRldmVudCkpKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5wdXNoKGluc3RhbmNlLmZvY3VzLnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25Gb2N1cygkZXZlbnQpKSk7XG5cbiAgICAgICAgICAgIGlmIChpbnN0YW5jZS5jdXN0b21FdmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmN1c3RvbUV2ZW50LnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25DdXN0b21FdmVudCgkZXZlbnQpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnRSZWYodGhpcy5jb21wb25lbnRSZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3lGb3JtQ29udHJvbENvbXBvbmVudCgpOiB2b2lkIHtcblxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucyA9IFtdO1xuXG4gICAgICAgICAgICB0aGlzLnVucmVnaXN0ZXJDb21wb25lbnRSZWYoKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nKTogRHluYW1pY0Zvcm1Db250cm9sRXZlbnQge1xuICAgICAgICByZXR1cm4geyRldmVudCwgY29udGV4dDogdGhpcy5jb250ZXh0LCBjb250cm9sOiB0aGlzLmNvbnRyb2wsIGdyb3VwOiB0aGlzLmdyb3VwLCBtb2RlbDogdGhpcy5tb2RlbCwgdHlwZX07XG4gICAgfVxuXG4gICAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG5cbiAgICAgICAgLy8gdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgLy8gdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zID0gW107XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgb25Db250cm9sVmFsdWVDaGFuZ2VzKHZhbHVlOiBhbnkpOiB2b2lkIHtcblxuICAgICAgICBpZiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwgJiYgdGhpcy5tb2RlbC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxWYWx1ZVVwZGF0ZXModmFsdWU6IGFueSk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbERpc2FibGVkVXBkYXRlcyhkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBkaXNhYmxlZCA/IHRoaXMuY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2UoJGV2ZW50OiBFdmVudCB8IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHwgYW55KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKCRldmVudCBpbnN0YW5jZW9mIEV2ZW50KSB7IC8vIG5hdGl2ZSBIVE1MNSBjaGFuZ2UgZXZlbnRcblxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwudHlwZSA9PT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9JTlBVVCkge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsIGFzIER5bmFtaWNJbnB1dE1vZGVsO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1vZGVsLmlucHV0VHlwZSA9PT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfSU5QVVRfVFlQRV9GSUxFKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50OiBhbnkgPSAkZXZlbnQudGFyZ2V0IHx8ICRldmVudC5zcmNFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsLmZpbGVzID0gaW5wdXRFbGVtZW50LmZpbGVzIGFzIEZpbGVMaXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLkNoYW5nZSkpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoaXNEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQpKSB7IC8vIGV2ZW50IGJ5cGFzc1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KCRldmVudCk7XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gY3VzdG9tIGxpYnJhcnkgdmFsdWUgY2hhbmdlIGV2ZW50XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQsIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZS5DaGFuZ2UpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cigkZXZlbnQ6IEZvY3VzRXZlbnQgfCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCB8IGFueSk6IHZvaWQge1xuXG4gICAgICAgIGlmIChpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCkpIHsgLy8gZXZlbnQgYnlwYXNzXG5cbiAgICAgICAgICAgIHRoaXMuYmx1ci5lbWl0KCRldmVudCk7XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gbmF0aXZlIEhUTUwgNSBvciBVSSBsaWJyYXJ5IGJsdXIgZXZlbnRcblxuICAgICAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5ibHVyLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQsIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZS5CbHVyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzKCRldmVudDogRm9jdXNFdmVudCB8IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHwgYW55KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50KSkgeyAvLyBldmVudCBieXBhc3NcblxuICAgICAgICAgICAgdGhpcy5mb2N1cy5lbWl0KCRldmVudCk7XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gbmF0aXZlIEhUTUwgNSBvciBVSSBsaWJyYXJ5IGZvY3VzIGV2ZW50XG5cbiAgICAgICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5mb2N1cy5lbWl0KHRoaXMuY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50LCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudFR5cGUuRm9jdXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ3VzdG9tRXZlbnQoJGV2ZW50OiBEeW5hbWljRm9ybUNvbnRyb2xFdmVudCB8IER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50KTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgZW1pdHRlciA9IHRoaXMuY3VzdG9tRXZlbnQgYXMgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcblxuICAgICAgICBpZiAoaXNEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQpKSB7IC8vIGNoaWxkIGV2ZW50IGJ5cGFzc1xuXG4gICAgICAgICAgICBlbWl0dGVyLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBuYXRpdmUgVUkgbGlicmFyeSBjdXN0b20gZXZlbnRcblxuICAgICAgICAgICAgZW1pdHRlci5lbWl0KHRoaXMuY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50LmN1c3RvbUV2ZW50LCAkZXZlbnQuY3VzdG9tRXZlbnRUeXBlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ29tcG9uZW50UmVmKGluc3RhbmNlUmVmOiBDb21wb25lbnRSZWY8RHluYW1pY0Zvcm1Db250cm9sPik6IHZvaWQge1xuXG4gICAgICAgIGxldCBpbmRleDtcblxuICAgICAgICBpZiAodGhpcy5jb250ZXh0IGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwpIHtcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5jb250ZXh0LmluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyRm9ybUNvbnRyb2xSZWYodGhpcy5tb2RlbCwgaW5zdGFuY2VSZWYsIGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVucmVnaXN0ZXJDb21wb25lbnRSZWYoKTogdm9pZCB7XG5cbiAgICAgICAgbGV0IGluZGV4O1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmNvbnRleHQuaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UudW5yZWdpc3RlckZvcm1Db250cm9sUmVmKHRoaXMubW9kZWwuaWQsIGluZGV4KTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFjQSxPQUFPLEVBR0gsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUM1QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzdCLE1BQU0sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUNILG9DQUFvQyxFQUNwQywrQkFBK0IsRUFFbEMsTUFBTSxvQ0FBb0MsQ0FBQztBQVc1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFM0U7Ozs7SUEwQkksOENBQWdDLGlCQUFvQyxFQUNwQyx3QkFBa0QsRUFDbEQsYUFBdUMsRUFDdkMsaUJBQStDLEVBQy9DLGdCQUE2QyxFQUM3QyxlQUEyQztRQUwzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE2QjtRQUM3QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUE3QjNFLFlBQU8s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SUFFdkIsaUVBQThDOzs7OztJQUM5Qyx3RUFBNEQ7Ozs7O0lBQzVELDZEQUFpRDs7Ozs7SUFDakQsaUVBQXlEOzs7OztJQUN6RCxnRUFBdUQ7Ozs7O0lBQ3ZELCtEQUFxRDs7Ozs7SUE0QjNFLCtFQUE4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUeXBlLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZSxcbiAgICBpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50XG59IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLWV2ZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZLFxuICAgIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9mb3JtLWFycmF5L2R5bmFtaWMtZm9ybS1hcnJheS5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWCB9IGZyb20gXCIuLi9tb2RlbC9jaGVja2JveC9keW5hbWljLWNoZWNrYm94Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX0lOUFVUX1RZUEVfRklMRSxcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVULFxuICAgIER5bmFtaWNJbnB1dE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9pbnB1dC9keW5hbWljLWlucHV0Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLWxheW91dC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wtaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlL2R5bmFtaWMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUxheW91dCwgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1yZWxhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUdyb3VwQ29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1BcnJheUNvbXBvbmVudCB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1hcnJheS5jb21wb25lbnRcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNGb3JtQ29udHJvbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICAgIGNvbnRleHQ6IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIHwgbnVsbCA9IG51bGw7XG4gICAgY29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBoYXNGb2N1czogYm9vbGVhbjtcbiAgICBob3N0Q2xhc3M6IHN0cmluZ1tdO1xuICAgIGtsYXNzOiBzdHJpbmc7XG4gICAgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG5cbiAgICBjb250ZW50VGVtcGxhdGVMaXN0OiBRdWVyeUxpc3Q8RHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcbiAgICBpbnB1dFRlbXBsYXRlTGlzdDogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBibHVyOiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuICAgIGNoYW5nZTogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcbiAgICBjdXN0b21FdmVudDogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PiB8IHVuZGVmaW5lZDtcbiAgICBmb2N1czogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEV2ZW50PjtcblxuICAgIGNvbXBvbmVudFZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RHluYW1pY0Zvcm1Db250cm9sPjtcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50U3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgY29udHJvbExheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0O1xuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIGxheW91dFNlcnZpY2U6IER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29tcG9uZW50U2VydmljZTogRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcmVsYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVJlbGF0aW9uU2VydmljZSkge1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblxuICAgICAgICBjb25zdCBncm91cENoYW5nZSA9IChjaGFuZ2VzIGFzIFBpY2s8U2ltcGxlQ2hhbmdlcywgXCJncm91cFwiPikuZ3JvdXA7XG4gICAgICAgIGNvbnN0IGxheW91dENoYW5nZSA9IChjaGFuZ2VzIGFzIFBpY2s8U2ltcGxlQ2hhbmdlcywgXCJsYXlvdXRcIj4pLmxheW91dDtcbiAgICAgICAgY29uc3QgbW9kZWxDaGFuZ2UgPSAoY2hhbmdlcyBhcyBQaWNrPFNpbXBsZUNoYW5nZXMsIFwibW9kZWxcIj4pLm1vZGVsO1xuXG4gICAgICAgIGlmIChsYXlvdXRDaGFuZ2UgfHwgbW9kZWxDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMub25MYXlvdXRPck1vZGVsQ2hhbmdlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kZWxDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdyb3VwQ2hhbmdlIHx8IG1vZGVsQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm9uR3JvdXBPck1vZGVsQ2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcblxuICAgICAgICB0aGlzLmRlc3Ryb3lGb3JtQ29udHJvbENvbXBvbmVudCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUNvbnRyb2w+IHwgbnVsbDtcblxuICAgIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVsZW1lbnRJZCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyh0aGlzLm1vZGVsLmxhYmVsKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzSGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzU3RyaW5nKCh0aGlzLm1vZGVsIGFzIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWw8YW55PikuaGludCk7XG4gICAgfVxuXG4gICAgZ2V0IGhpbnQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAodGhpcy5tb2RlbCBhcyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPGFueT4pLmhpbnQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZXJyb3JNZXNzYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNyZWF0ZUVycm9yTWVzc2FnZXModGhpcy5jb250cm9sLCB0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0Vycm9yTWVzc2FnZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLmhhc0Vycm9yTWVzc2FnZXMgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgIXRoaXMuaGFzRm9jdXMgJiYgdGhpcy5pc0ludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLnR5cGUgPT09IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1g7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIGdldCB0ZW1wbGF0ZXMoKTogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFRlbXBsYXRlTGlzdCAhPT0gdW5kZWZpbmVkID8gdGhpcy5pbnB1dFRlbXBsYXRlTGlzdCA6IHRoaXMuY29udGVudFRlbXBsYXRlTGlzdDtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnRUZW1wbGF0ZSgpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC50eXBlICE9PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZID9cbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5nZXRTdGFydFRlbXBsYXRlKHRoaXMubW9kZWwsIHRoaXMudGVtcGxhdGVzKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgZW5kVGVtcGxhdGUoKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwudHlwZSAhPT0gRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWSA/XG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuZ2V0RW5kVGVtcGxhdGUodGhpcy5tb2RlbCwgdGhpcy50ZW1wbGF0ZXMpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldENsYXNzKGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuZ2V0Q2xhc3ModGhpcy5jb250cm9sTGF5b3V0LCBjb250ZXh0LCBwbGFjZSk7XG4gICAgfVxuXG4gICAgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKGNvbXBvbmVudCAmJiAoY29tcG9uZW50IGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cENvbXBvbmVudCB8fCBjb21wb25lbnQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5Q29tcG9uZW50KSkge1xuICAgICAgICAgICAgY29tcG9uZW50Lm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmNvbXBvbmVudFR5cGU7XG5cbiAgICAgICAgaWYgKGNvbXBvbmVudFR5cGUgIT09IG51bGwpIHtcblxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudFR5cGUpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcblxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICAgICAgICAgIGNvbXBvbmVudC5mb3JtTGF5b3V0ID0gdGhpcy5sYXlvdXQ7XG4gICAgICAgICAgICBjb21wb25lbnQuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgICAgICAgICAgY29tcG9uZW50LmxheW91dCA9IHRoaXMuY29udHJvbExheW91dDtcbiAgICAgICAgICAgIGNvbXBvbmVudC5tb2RlbCA9IHRoaXMubW9kZWw7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRlbXBsYXRlcykge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC50ZW1wbGF0ZXMgPSB0aGlzLnRlbXBsYXRlcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLnB1c2goY29tcG9uZW50LmJsdXIuc3Vic2NyaWJlKCgkZXZlbnQ6IGFueSkgPT4gdGhpcy5vbkJsdXIoJGV2ZW50KSkpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zLnB1c2goY29tcG9uZW50LmNoYW5nZS5zdWJzY3JpYmUoKCRldmVudDogYW55KSA9PiB0aGlzLm9uQ2hhbmdlKCRldmVudCkpKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5wdXNoKGNvbXBvbmVudC5mb2N1cy5zdWJzY3JpYmUoKCRldmVudDogYW55KSA9PiB0aGlzLm9uRm9jdXMoJGV2ZW50KSkpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50LmN1c3RvbUV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50LmN1c3RvbUV2ZW50LnN1YnNjcmliZSgoJGV2ZW50OiBhbnkpID0+IHRoaXMub25DdXN0b21FdmVudCgkZXZlbnQpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJGb3JtQ29udHJvbENvbXBvbmVudFJlZih0aGlzLmNvbXBvbmVudFJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveUZvcm1Db250cm9sQ29tcG9uZW50KCk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpcHRpb25zID0gW107XG5cbiAgICAgICAgICAgIHRoaXMudW5yZWdpc3RlckZvcm1Db250cm9sQ29tcG9uZW50UmVmKCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZyk6IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHtcbiAgICAgICAgcmV0dXJuIHskZXZlbnQsIGNvbnRleHQ6IHRoaXMuY29udGV4dCwgY29udHJvbDogdGhpcy5jb250cm9sLCBncm91cDogdGhpcy5ncm91cCwgbW9kZWw6IHRoaXMubW9kZWwsIHR5cGV9O1xuICAgIH1cblxuICAgIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXG4gICAgICAgIC8vIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIC8vIHRoaXMuY29tcG9uZW50U3Vic2NyaXB0aW9ucyA9IFtdO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIG9uQ29udHJvbFZhbHVlQ2hhbmdlcyh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbCAmJiB0aGlzLm1vZGVsLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbFZhbHVlVXBkYXRlcyh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbERpc2FibGVkVXBkYXRlcyhkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBkaXNhYmxlZCA/IHRoaXMuY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgb25MYXlvdXRPck1vZGVsQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2xMYXlvdXQgPSB0aGlzLmxheW91dFNlcnZpY2UuZmluZEJ5TW9kZWwodGhpcy5tb2RlbCwgdGhpcy5sYXlvdXQpIHx8IHRoaXMubW9kZWwubGF5b3V0IGFzIER5bmFtaWNGb3JtQ29udHJvbExheW91dDtcbiAgICAgICAgdGhpcy5rbGFzcyA9IGAke0FycmF5LmlzQXJyYXkodGhpcy5ob3N0Q2xhc3MpID8gdGhpcy5ob3N0Q2xhc3Muam9pbihcIiBcIikgOiBcIlwifSAke3RoaXMubGF5b3V0U2VydmljZS5nZXRIb3N0Q2xhc3ModGhpcy5jb250cm9sTGF5b3V0KX1gO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKTtcbiAgICB9XG5cbiAgICBvbkdyb3VwT3JNb2RlbENoYW5nZSgpOiB2b2lkIHtcblxuICAgICAgICBpZiAodGhpcy5tb2RlbCkge1xuXG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmdyb3VwLmdldCh0aGlzLm1vZGVsLmlkKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLm9uQ29udHJvbFZhbHVlQ2hhbmdlcyh2YWx1ZSkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tb2RlbC5kaXNhYmxlZENoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMub25Nb2RlbERpc2FibGVkVXBkYXRlcyh2YWx1ZSkpKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWwgYXMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobW9kZWwudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLm9uTW9kZWxWYWx1ZVVwZGF0ZXModmFsdWUpKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnJlbGF0aW9ucy5sZW5ndGggPiAwKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCguLi50aGlzLnJlbGF0aW9uU2VydmljZS5zdWJzY3JpYmVSZWxhdGlvbnModGhpcy5tb2RlbCwgdGhpcy5ncm91cCwgdGhpcy5jb250cm9sKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZSgkZXZlbnQ6IEV2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQgfCBhbnkpOiB2b2lkIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHsgLy8gbmF0aXZlIEhUTUw1IGNoYW5nZSBldmVudFxuXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC50eXBlID09PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVUKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWwgYXMgRHluYW1pY0lucHV0TW9kZWw7XG5cbiAgICAgICAgICAgICAgICBpZiAobW9kZWwuaW5wdXRUeXBlID09PSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9JTlBVVF9UWVBFX0ZJTEUpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQ6IGFueSA9ICRldmVudC50YXJnZXQgfHwgJGV2ZW50LnNyY0VsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZmlsZXMgPSBpbnB1dEVsZW1lbnQuZmlsZXMgYXMgRmlsZUxpc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY3JlYXRlRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50LCBEeW5hbWljRm9ybUNvbnRyb2xFdmVudFR5cGUuQ2hhbmdlKSk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCkpIHsgLy8gZXZlbnQgYnlwYXNzXG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBjdXN0b20gbGlicmFyeSB2YWx1ZSBjaGFuZ2UgZXZlbnRcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLkNoYW5nZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKCRldmVudDogRm9jdXNFdmVudCB8IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHwgYW55KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGlzRHluYW1pY0Zvcm1Db250cm9sRXZlbnQoJGV2ZW50KSkgeyAvLyBldmVudCBieXBhc3NcblxuICAgICAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBuYXRpdmUgSFRNTCA1IG9yIFVJIGxpYnJhcnkgYmx1ciBldmVudFxuXG4gICAgICAgICAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmJsdXIuZW1pdCh0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnRUeXBlLkJsdXIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50OiBGb2N1c0V2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sRXZlbnQgfCBhbnkpOiB2b2lkIHtcblxuICAgICAgICBpZiAoaXNEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQpKSB7IC8vIGV2ZW50IGJ5cGFzc1xuXG4gICAgICAgICAgICB0aGlzLmZvY3VzLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICB9IGVsc2UgeyAvLyBuYXRpdmUgSFRNTCA1IG9yIFVJIGxpYnJhcnkgZm9jdXMgZXZlbnRcblxuICAgICAgICAgICAgdGhpcy5oYXNGb2N1cyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmZvY3VzLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQsIER5bmFtaWNGb3JtQ29udHJvbEV2ZW50VHlwZS5Gb2N1cykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DdXN0b21FdmVudCgkZXZlbnQ6IER5bmFtaWNGb3JtQ29udHJvbEV2ZW50IHwgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBlbWl0dGVyID0gdGhpcy5jdXN0b21FdmVudCBhcyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sRXZlbnQ+O1xuXG4gICAgICAgIGlmIChpc0R5bmFtaWNGb3JtQ29udHJvbEV2ZW50KCRldmVudCkpIHsgLy8gY2hpbGQgZXZlbnQgYnlwYXNzXG5cbiAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSB7IC8vIG5hdGl2ZSBVSSBsaWJyYXJ5IGN1c3RvbSBldmVudFxuXG4gICAgICAgICAgICBlbWl0dGVyLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUNvbnRyb2xFdmVudCgkZXZlbnQuY3VzdG9tRXZlbnQsICRldmVudC5jdXN0b21FdmVudFR5cGUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJGb3JtQ29udHJvbENvbXBvbmVudFJlZihyZWY6IENvbXBvbmVudFJlZjxEeW5hbWljRm9ybUNvbnRyb2w+KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5yZWdpc3RlckZvcm1Db250cm9sKHRoaXMubW9kZWwsIHJlZiwgdGhpcy5jb250ZXh0LmluZGV4KTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyRm9ybUNvbnRyb2wodGhpcy5tb2RlbCwgcmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdW5yZWdpc3RlckZvcm1Db250cm9sQ29tcG9uZW50UmVmKCk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UudW5yZWdpc3RlckZvcm1Db250cm9sKHRoaXMubW9kZWwuaWQsIHRoaXMuY29udGV4dC5pbmRleCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U2VydmljZS51bnJlZ2lzdGVyRm9ybUNvbnRyb2wodGhpcy5tb2RlbC5pZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=

@@ -33,3 +33,3 @@ /**

});
Object.defineProperty(DynamicFormControlComponent.prototype, "elementId", {
Object.defineProperty(DynamicFormControlComponent.prototype, "id", {
get: /**

@@ -54,3 +54,3 @@ * @return {?}

});
Object.defineProperty(DynamicFormControlComponent.prototype, "hasFocus", {
Object.defineProperty(DynamicFormControlComponent.prototype, "showErrorMessages", {
get: /**

@@ -60,3 +60,3 @@ * @return {?}

function () {
return this._hasFocus;
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
},

@@ -66,3 +66,3 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlComponent.prototype, "isInvalid", {
Object.defineProperty(DynamicFormControlComponent.prototype, "hasFocus", {
get: /**

@@ -72,3 +72,3 @@ * @return {?}

function () {
return this.control.invalid;
return this._hasFocus;
},

@@ -78,3 +78,3 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlComponent.prototype, "isValid", {
Object.defineProperty(DynamicFormControlComponent.prototype, "isInvalid", {
get: /**

@@ -84,3 +84,3 @@ * @return {?}

function () {
return this.control.valid;
return this.control.invalid;
},

@@ -90,3 +90,3 @@ enumerable: true,

});
Object.defineProperty(DynamicFormControlComponent.prototype, "showErrorMessages", {
Object.defineProperty(DynamicFormControlComponent.prototype, "isValid", {
get: /**

@@ -96,3 +96,3 @@ * @return {?}

function () {
return this.model.hasErrorMessages && this.control.touched && !this.hasFocus && this.isInvalid;
return this.control.valid;
},

@@ -117,3 +117,4 @@ enumerable: true,

/** @type {?} */
var controlLayout = this.layoutService.findByModel(model, this.layout) || (/** @type {?} */ (model.layout));
var controlLayout = model === this.model ? this.layout :
this.layoutService.findByModel(model, this.formLayout) || (/** @type {?} */ (model.layout));
return this.layoutService.getClass(controlLayout, context, place);

@@ -152,16 +153,2 @@ };

* @param {?} $event
* @param {?} model
* @return {?}
*/
DynamicFormControlComponent.prototype.onEmbeddedCheckboxChange = /**
* @param {?} $event
* @param {?} model
* @return {?}
*/
function ($event, model) {
this.onChange($event);
model.value = ((/** @type {?} */ ($event.target))).checked;
};
/**
* @param {?} $event
* @param {?=} type

@@ -180,9 +167,7 @@ * @param {?=} bypass

if (bypass === void 0) { bypass = false; }
/** @type {?} */
var emitter = (/** @type {?} */ (this.customEvent));
if (bypass) {
emitter.emit($event);
this.customEvent.emit($event);
}
else if (isString(type)) {
emitter.emit({ customEvent: $event, customEventType: type });
this.customEvent.emit({ customEvent: $event, customEventType: type });
}

@@ -218,2 +203,4 @@ };

/** @type {?} */
DynamicFormControlComponent.prototype.formLayout;
/** @type {?} */
DynamicFormControlComponent.prototype.group;

@@ -245,2 +232,2 @@ /** @type {?} */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFpQkEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRS9DOzs7O0lBY0kscUNBQWdDLGFBQXVDLEVBQ3ZDLGlCQUErQztRQUQvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE4QjtRQWJ2RSxjQUFTLEdBQVksS0FBSyxDQUFDO0lBY25DLENBQUM7SUFFRCxzQkFBSSxnREFBTzs7OztRQUFYOztnQkFFVSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUEyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUksQ0FBQyxDQUFDO2FBQy9GO1lBRUQsT0FBTyxtQkFBQSxPQUFPLEVBQW1CLENBQUM7UUFDdEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxrREFBUzs7OztRQUFiO1lBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxzREFBYTs7OztRQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLENBQUM7OztPQUFBO0lBRUQsc0JBQUksaURBQVE7Ozs7UUFBWjtZQUNJ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QW1DOztJQUVuQyw0Q0FBaUI7O0lBQ2pCLDZDQUEwQjs7SUFDMUIsNENBQStCOztJQUMvQixnREFBdUM7O0lBRXZDLDJDQUF3Qjs7SUFDeEIsNkNBQTBCOztJQUMxQixrREFBcUU7O0lBQ3JFLDRDQUF5Qjs7Ozs7SUFFSCxvREFBaUQ7Ozs7O0lBQ2pELHdEQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xDdXN0b21FdmVudCB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS1jb250cm9sLmV2ZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0NoZWNrYm94TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29udGV4dCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZVxufSBmcm9tIFwiLi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXNcbn0gZnJvbSBcIi4uL3NlcnZpY2UvZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBEeW5hbWljRm9ybUNvbnRyb2wge1xuXG4gICAgcHJpdmF0ZSBfaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgbGF5b3V0OiBEeW5hbWljRm9ybUxheW91dDtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG4gICAgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXM7XG5cbiAgICBibHVyOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGN1c3RvbUV2ZW50OiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQ+IHwgdW5kZWZpbmVkO1xuICAgIGZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBuZXZlciB7XG5cbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMubW9kZWwuaWQpO1xuXG4gICAgICAgIGlmIChjb250cm9sID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGZvcm0gZ3JvdXAgZG9lcyBub3QgY29udGFpbiBhbiBhYnN0cmFjdCBjb250cm9sIHdpdGggaWQgJHt0aGlzLm1vZGVsLmlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2wgYXMgQWJzdHJhY3RDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBlbGVtZW50SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRFbGVtZW50SWQodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGVycm9yTWVzc2FnZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU2VydmljZS5jcmVhdGVFcnJvck1lc3NhZ2VzKHRoaXMuY29udHJvbCwgdGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRm9jdXM7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIGdldCBzaG93RXJyb3JNZXNzYWdlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaGFzRXJyb3JNZXNzYWdlcyAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCAmJiAhdGhpcy5oYXNGb2N1cyAmJiB0aGlzLmlzSW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXRDbGFzcyhjb250ZXh0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LCBwbGFjZTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2UsXG4gICAgICAgICAgICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsID0gdGhpcy5tb2RlbCk6IHN0cmluZyB7XG5cbiAgICAgICAgY29uc3QgY29udHJvbExheW91dCA9IHRoaXMubGF5b3V0U2VydmljZS5maW5kQnlNb2RlbChtb2RlbCwgdGhpcy5sYXlvdXQpIHx8IG1vZGVsLmxheW91dCBhcyBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRDbGFzcyhjb250cm9sTGF5b3V0LCBjb250ZXh0LCBwbGFjZSk7XG4gICAgfVxuXG4gICAgb25CbHVyKCRldmVudDogYW55KSB7XG5cbiAgICAgICAgaWYgKCRldmVudCBpbnN0YW5jZW9mIEV2ZW50KSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oYXNGb2N1cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlKCRldmVudDogYW55KSB7XG5cbiAgICAgICAgaWYgKCRldmVudCBpbnN0YW5jZW9mIEV2ZW50KSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgb25FbWJlZGRlZENoZWNrYm94Q2hhbmdlKCRldmVudDogRXZlbnQsIG1vZGVsOiBEeW5hbWljQ2hlY2tib3hNb2RlbCkge1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UoJGV2ZW50KTtcblxuICAgICAgICBtb2RlbC52YWx1ZSA9ICgkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgb25DdXN0b21FdmVudCgkZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJ5cGFzczogYm9vbGVhbiA9IGZhbHNlKSB7XG5cbiAgICAgICAgY29uc3QgZW1pdHRlciA9IHRoaXMuY3VzdG9tRXZlbnQgYXMgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50PjtcblxuICAgICAgICBpZiAoYnlwYXNzKSB7XG5cbiAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodHlwZSkpIHtcblxuICAgICAgICAgICAgZW1pdHRlci5lbWl0KHtjdXN0b21FdmVudDogJGV2ZW50LCBjdXN0b21FdmVudFR5cGU6IHR5cGV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50OiBhbnkpIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1cy5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFnQkEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRS9DOzs7O0lBZUkscUNBQWdDLGFBQXVDLEVBQ3ZDLGlCQUErQztRQUQvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE4QjtRQWR2RSxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBZTFCLENBQUM7SUFFRCxzQkFBSSxnREFBTzs7OztRQUFYOztnQkFFVSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUEyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUksQ0FBQyxDQUFDO2FBQy9GO1lBRUQsT0FBTyxtQkFBQSxPQUFPLEVBQW1CLENBQUM7UUFDdEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwyQ0FBRTs7OztRQUFOO1lBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxzREFBYTs7OztRQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLENBQUM7OztPQUFBO0lBRUQsc0JBQUksMERBQWlCOzs7O1FBQXJCO1lB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OztJQUVILG9EQUFpRDs7Ozs7SUFDakQsd0RBQXlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC1pbnRlcmZhY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wtZXZlbnRcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLWxheW91dC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS12YWxpZGF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1MYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlc1xufSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIER5bmFtaWNGb3JtQ29udHJvbCB7XG5cbiAgICBwcml2YXRlIF9oYXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgZm9ybUxheW91dDogRHluYW1pY0Zvcm1MYXlvdXQ7XG4gICAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBsYXlvdXQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dDtcbiAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWw7XG4gICAgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXM7XG5cbiAgICBibHVyOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGN1c3RvbUV2ZW50OiBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQ+O1xuICAgIGZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBuZXZlciB7XG5cbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMubW9kZWwuaWQpO1xuXG4gICAgICAgIGlmIChjb250cm9sID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGZvcm0gZ3JvdXAgZG9lcyBub3QgY29udGFpbiBhbiBhYnN0cmFjdCBjb250cm9sIHdpdGggaWQgJHt0aGlzLm1vZGVsLmlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2wgYXMgQWJzdHJhY3RDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldEVsZW1lbnRJZCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXQgZXJyb3JNZXNzYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNyZWF0ZUVycm9yTWVzc2FnZXModGhpcy5jb250cm9sLCB0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0Vycm9yTWVzc2FnZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLmhhc0Vycm9yTWVzc2FnZXMgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgIXRoaXMuaGFzRm9jdXMgJiYgdGhpcy5pc0ludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRm9jdXM7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIGdldENsYXNzKGNvbnRleHQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSxcbiAgICAgICAgICAgICBtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgPSB0aGlzLm1vZGVsKTogc3RyaW5nIHtcblxuICAgICAgICBjb25zdCBjb250cm9sTGF5b3V0ID0gbW9kZWwgPT09IHRoaXMubW9kZWwgPyB0aGlzLmxheW91dCA6XG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuZmluZEJ5TW9kZWwobW9kZWwsIHRoaXMuZm9ybUxheW91dCkgfHwgbW9kZWwubGF5b3V0IGFzIER5bmFtaWNGb3JtQ29udHJvbExheW91dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldENsYXNzKGNvbnRyb2xMYXlvdXQsIGNvbnRleHQsIHBsYWNlKTtcbiAgICB9XG5cbiAgICBvbkJsdXIoJGV2ZW50OiBhbnkpIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hhc0ZvY3VzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2UoJGV2ZW50OiBhbnkpIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkN1c3RvbUV2ZW50KCRldmVudDogYW55LCB0eXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYnlwYXNzOiBib29sZWFuID0gZmFsc2UpIHtcblxuICAgICAgICBpZiAoYnlwYXNzKSB7XG5cbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRXZlbnQuZW1pdCgkZXZlbnQpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodHlwZSkpIHtcblxuICAgICAgICAgICAgdGhpcy5jdXN0b21FdmVudC5lbWl0KHtjdXN0b21FdmVudDogJGV2ZW50LCBjdXN0b21FdmVudFR5cGU6IHR5cGV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50OiBhbnkpIHtcblxuICAgICAgICBpZiAoJGV2ZW50IGluc3RhbmNlb2YgRXZlbnQpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1cy5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIl19

@@ -6,11 +6,11 @@ /**

export { DynamicFormArrayComponent } from "./component/dynamic-form-array.component";
export { DynamicFormComponent } from "./component/dynamic-form-component";
export { DynamicFormGroupComponent } from "./component/dynamic-form-group.component";
export { DynamicFormComponent } from "./component/dynamic-form.component";
export { DynamicFormControlContainerComponent } from "./component/dynamic-form-control-container.component";
export { isDynamicFormControlEvent, DynamicFormControlEventType } from "./component/dynamic-form-control.event";
export { isDynamicFormControlEvent, DynamicFormControlEventType } from "./component/dynamic-form-control-event";
export { DynamicFormControlComponent } from "./component/dynamic-form-control.component";
export {} from "./component/dynamic-form-control.interface";
export { DynamicTemplateableFormControlComponent } from "./component/dynamic-templateable-form-control.component";
export {} from "./component/dynamic-templateable-form-control.interface";
export {} from "./component/dynamic-form-control-interface";
export { DynamicFormControlWithTemplateComponent } from "./component/dynamic-form-control-with-template.component";
export {} from "./component/dynamic-form-control-with-template-interface";
export { serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE } from "./decorator/serializable.decorator";
export { DynamicIdDirective } from "./directive/dynamic-id.directive";
export { DynamicListDirective } from "./directive/dynamic-list.directive";

@@ -51,4 +51,4 @@ export { DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective } from "./directive/dynamic-template.directive";

export { DynamicFormValidationService } from "./service/dynamic-form-validation.service";
export { MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DisabledMatcher, HiddenMatcher, RequiredMatcher, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DYNAMIC_MATCHER_PROVIDERS } from "./service/dynamic-form-relation.matchers";
export { DYNAMIC_VALIDATORS } from "./service/dynamic-form.validators";
export { MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DISABLED_MATCHER_PROVIDER, HIDDEN_MATCHER_PROVIDER, REQUIRED_MATCHER_PROVIDER, DYNAMIC_MATCHER_PROVIDERS } from "./service/dynamic-form-relation-matchers";
export { DYNAMIC_VALIDATORS } from "./service/dynamic-form-validators";
export { isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT } from "./utils/autofill.utils";

@@ -58,2 +58,2 @@ export { isBoolean, isFunction, isNumber, isObject, isString } from "./utils/core.utils";

export { DynamicFormsCoreModule } from "./core.module";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMENBQWMsMENBQTBDLENBQUM7QUFDekQscUNBQWMsb0NBQW9DLENBQUM7QUFDbkQscURBQWMsc0RBQXNELENBQUM7QUFDckUsdUVBQWMsd0NBQXdDLENBQUM7QUFDdkQsNENBQWMsNENBQTRDLENBQUM7QUFDM0QsZUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCx3REFBYyx5REFBeUQsQ0FBQztBQUN4RSxlQUFjLHlEQUF5RCxDQUFDO0FBRXhFLHFGQUFjLG9DQUFvQyxDQUFDO0FBRW5ELG1DQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHFDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELCtFQUFjLHdDQUF3QyxDQUFDO0FBRXZELHdDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNEJBQTRCLENBQUM7QUFDM0MsNkNBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsNkRBQWMsc0NBQXNDLENBQUM7QUFFckQseUVBQWMseUNBQXlDLENBQUM7QUFDeEQsb0ZBQWMsK0NBQStDLENBQUM7QUFDOUQsK0VBQWMsK0NBQStDLENBQUM7QUFDOUQsNkVBQWMsNkNBQTZDLENBQUM7QUFDNUQscUVBQWMscUNBQXFDLENBQUM7QUFDcEQsOEVBQWMsK0NBQStDLENBQUM7QUFDOUQsdUVBQWMsNkNBQTZDLENBQUM7QUFDNUQsbUdBQWMsNkNBQTZDLENBQUM7QUFDNUQsaXBCQUFjLG1DQUFtQyxDQUFDO0FBQ2xELDhFQUFjLHlDQUF5QyxDQUFDO0FBQ3hELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELDJJQUFjLHlDQUF5QyxDQUFDO0FBQ3hELDZFQUFjLDZDQUE2QyxDQUFDO0FBRTVELGVBQWMsZ0RBQWdELENBQUM7QUFDL0QsZUFBYyw4Q0FBOEMsQ0FBQztBQUM3RCxlQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGVBQWMsb0RBQW9ELENBQUM7QUFFbkUsbUNBQWMsZ0NBQWdDLENBQUM7QUFDL0MseUVBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMsdUNBQXVDLENBQUM7QUFDdEQsMkNBQWMseUNBQXlDLENBQUM7QUFDeEQsNkNBQWMsMkNBQTJDLENBQUM7QUFFMUQsd1JBQWMsMENBQTBDLENBQUM7QUFDekQsbUNBQWMsbUNBQW1DLENBQUM7QUFFbEQsczFEQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLG9FQUFjLG9CQUFvQixDQUFDO0FBQ25DLDJEQUFjLG9CQUFvQixDQUFDO0FBRW5DLHVDQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tYXJyYXkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC5ldmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLmludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtdGVtcGxhdGVhYmxlLWZvcm0tY29udHJvbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLXRlbXBsYXRlYWJsZS1mb3JtLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvci9zZXJpYWxpemFibGUuZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLWlkLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlL2R5bmFtaWMtbGlzdC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1mb3JtLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1jaGVjay1jb250cm9sLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWRhdGUtY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1maWxlLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtaW5wdXQtY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1vcHRpb24tY29udHJvbC5tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9jaGVja2JveC9keW5hbWljLWNoZWNrYm94Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9jaGVja2JveC9keW5hbWljLWNoZWNrYm94LWdyb3VwLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9jb2xvcnBpY2tlci9keW5hbWljLWNvbG9ycGlja2VyLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9kYXRlcGlja2VyL2R5bmFtaWMtZGF0ZXBpY2tlci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZWRpdG9yL2R5bmFtaWMtZWRpdG9yLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9maWxlLXVwbG9hZC9keW5hbWljLWZpbGUtdXBsb2FkLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9mb3JtLWdyb3VwL2R5bmFtaWMtZm9ybS1ncm91cC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZm9ybS1hcnJheS9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2lucHV0L2R5bmFtaWMtaW5wdXQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3JhZGlvL2R5bmFtaWMtcmFkaW8tZ3JvdXAubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3JhdGluZy9keW5hbWljLXJhdGluZy5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9zbGlkZXIvZHluYW1pYy1zbGlkZXIubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3N3aXRjaC9keW5hbWljLXN3aXRjaC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvdGltZXBpY2tlci9keW5hbWljLXRpbWVwaWNrZXIubW9kZWxcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcGF0aC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1yZWxhdGlvbi5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC12YWxpZGF0aW9uLm1vZGVsXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tcmVsYXRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLm1hdGNoZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS52YWxpZGF0b3JzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL2F1dG9maWxsLnV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9jb3JlLnV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9qc29uLnV0aWxzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2NvcmUubW9kdWxlXCI7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMENBQWMsMENBQTBDLENBQUM7QUFDekQsMENBQWMsMENBQTBDLENBQUM7QUFDekQscUNBQWMsb0NBQW9DLENBQUM7QUFDbkQscURBQWMsc0RBQXNELENBQUM7QUFDckUsdUVBQWMsd0NBQXdDLENBQUM7QUFDdkQsNENBQWMsNENBQTRDLENBQUM7QUFDM0QsZUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCx3REFBYywwREFBMEQsQ0FBQztBQUN6RSxlQUFjLDBEQUEwRCxDQUFDO0FBRXpFLHFGQUFjLG9DQUFvQyxDQUFDO0FBRW5ELHFDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELCtFQUFjLHdDQUF3QyxDQUFDO0FBRXZELHdDQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNEJBQTRCLENBQUM7QUFDM0MsNkNBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQsd0NBQWMsb0NBQW9DLENBQUM7QUFDbkQseUNBQWMscUNBQXFDLENBQUM7QUFDcEQsNkRBQWMsc0NBQXNDLENBQUM7QUFFckQseUVBQWMseUNBQXlDLENBQUM7QUFDeEQsb0ZBQWMsK0NBQStDLENBQUM7QUFDOUQsK0VBQWMsK0NBQStDLENBQUM7QUFDOUQsNkVBQWMsNkNBQTZDLENBQUM7QUFDNUQscUVBQWMscUNBQXFDLENBQUM7QUFDcEQsOEVBQWMsK0NBQStDLENBQUM7QUFDOUQsdUVBQWMsNkNBQTZDLENBQUM7QUFDNUQsbUdBQWMsNkNBQTZDLENBQUM7QUFDNUQsaXBCQUFjLG1DQUFtQyxDQUFDO0FBQ2xELDhFQUFjLHlDQUF5QyxDQUFDO0FBQ3hELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELHFFQUFjLHFDQUFxQyxDQUFDO0FBQ3BELDJJQUFjLHlDQUF5QyxDQUFDO0FBQ3hELDZFQUFjLDZDQUE2QyxDQUFDO0FBRTVELGVBQWMsZ0RBQWdELENBQUM7QUFDL0QsZUFBYyw4Q0FBOEMsQ0FBQztBQUM3RCxlQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGVBQWMsb0RBQW9ELENBQUM7QUFFbkUsbUNBQWMsZ0NBQWdDLENBQUM7QUFDL0MseUVBQWMsMENBQTBDLENBQUM7QUFDekQseUNBQWMsdUNBQXVDLENBQUM7QUFDdEQsMkNBQWMseUNBQXlDLENBQUM7QUFDeEQsNkNBQWMsMkNBQTJDLENBQUM7QUFFMUQsc1RBQWMsMENBQTBDLENBQUM7QUFDekQsbUNBQWMsbUNBQW1DLENBQUM7QUFFbEQsczFEQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLG9FQUFjLG9CQUFvQixDQUFDO0FBQ25DLDJEQUFjLG9CQUFvQixDQUFDO0FBRW5DLHVDQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tYXJyYXkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC1jb250YWluZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wtZXZlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC1pbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudC9keW5hbWljLWZvcm0tY29udHJvbC13aXRoLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50L2R5bmFtaWMtZm9ybS1jb250cm9sLXdpdGgtdGVtcGxhdGUtaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvci9zZXJpYWxpemFibGUuZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLWxpc3QuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmUvZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtZm9ybS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1mb3JtLXZhbHVlLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtY2hlY2stY29udHJvbC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZHluYW1pYy1kYXRlLWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtZmlsZS1jb250cm9sLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9keW5hbWljLWlucHV0LWNvbnRyb2wubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2R5bmFtaWMtb3B0aW9uLWNvbnRyb2wubW9kZWxcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC1ncm91cC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvY29sb3JwaWNrZXIvZHluYW1pYy1jb2xvcnBpY2tlci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZGF0ZXBpY2tlci9keW5hbWljLWRhdGVwaWNrZXIubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2VkaXRvci9keW5hbWljLWVkaXRvci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZmlsZS11cGxvYWQvZHluYW1pYy1maWxlLXVwbG9hZC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvZm9ybS1ncm91cC9keW5hbWljLWZvcm0tZ3JvdXAubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9pbnB1dC9keW5hbWljLWlucHV0Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9yYWRpby9keW5hbWljLXJhZGlvLWdyb3VwLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9yYXRpbmcvZHluYW1pYy1yYXRpbmcubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3NlbGVjdC9keW5hbWljLXNlbGVjdC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWwvc2xpZGVyL2R5bmFtaWMtc2xpZGVyLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9zd2l0Y2gvZHluYW1pYy1zd2l0Y2gubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL3RpbWVwaWNrZXIvZHluYW1pYy10aW1lcGlja2VyLm1vZGVsXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXBhdGgubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcmVsYXRpb24ubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbi5tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1jb21wb25lbnQuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1yZWxhdGlvbi1tYXRjaGVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdG9yc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy9hdXRvZmlsbC51dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvY29yZS51dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvanNvbi51dGlsc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb3JlLm1vZHVsZVwiO1xuIl19

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

import { ReactiveFormsModule } from "@angular/forms";
import { DynamicIdDirective } from "./directive/dynamic-id.directive";
import { DynamicListDirective } from "./directive/dynamic-list.directive";

@@ -48,3 +47,2 @@ import { DynamicTemplateDirective } from "./directive/dynamic-template.directive";

declarations: [
DynamicIdDirective,
DynamicListDirective,

@@ -54,3 +52,2 @@ DynamicTemplateDirective

exports: [
DynamicIdDirective,
DynamicListDirective,

@@ -64,2 +61,2 @@ DynamicTemplateDirective

export { DynamicFormsCoreModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckY7SUFBQTtJQWdDQSxDQUFDO0lBZEcsZUFBZTs7Ozs7SUFDUiw4QkFBTzs7OztJQUFkO1FBRUksT0FBTztZQUNILFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEIsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2FBQzdCO1NBQ0osQ0FBQztJQUNOLENBQUM7O2dCQS9CSixRQUFRLFNBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1Ysa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQzNCO2lCQUNKOztJQWlCRCw2QkFBQztDQUFBLEFBaENELElBZ0NDO1NBaEJZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNJZERpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZS9keW5hbWljLWlkLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY0xpc3REaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmUvZHluYW1pYy1saXN0LmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlL2R5bmFtaWMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tY29tcG9uZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tcmVsYXRpb24uc2VydmljZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRHluYW1pY0lkRGlyZWN0aXZlLFxuICAgICAgICBEeW5hbWljTGlzdERpcmVjdGl2ZSxcbiAgICAgICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIER5bmFtaWNJZERpcmVjdGl2ZSxcbiAgICAgICAgRHluYW1pY0xpc3REaXJlY3RpdmUsXG4gICAgICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1zQ29yZU1vZHVsZSB7XG5cbiAgICAvKkBkZXByZWNhdGVkKi9cbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IER5bmFtaWNGb3Jtc0NvcmVNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBEeW5hbWljRm9ybVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckY7SUFBQTtJQThCQSxDQUFDO0lBZEcsZUFBZTs7Ozs7SUFDUiw4QkFBTzs7OztJQUFkO1FBRUksT0FBTztZQUNILFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNQLGtCQUFrQjtnQkFDbEIsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2FBQzdCO1NBQ0osQ0FBQztJQUNOLENBQUM7O2dCQTdCSixRQUFRLFNBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1Ysb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQzNCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxvQkFBb0I7d0JBQ3BCLHdCQUF3QjtxQkFDM0I7aUJBQ0o7O0lBaUJELDZCQUFDO0NBQUEsQUE5QkQsSUE4QkM7U0FoQlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0xpc3REaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmUvZHluYW1pYy1saXN0LmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlL2R5bmFtaWMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tY29tcG9uZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtUmVsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9keW5hbWljLWZvcm0tcmVsYXRpb24uc2VydmljZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRHluYW1pY0xpc3REaXJlY3RpdmUsXG4gICAgICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBEeW5hbWljTGlzdERpcmVjdGl2ZSxcbiAgICAgICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybXNDb3JlTW9kdWxlIHtcblxuICAgIC8qQGRlcHJlY2F0ZWQqL1xuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogRHluYW1pY0Zvcm1zQ29yZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIER5bmFtaWNGb3JtU2VydmljZSxcbiAgICAgICAgICAgICAgICBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2VcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=

@@ -8,3 +8,4 @@ /**

var DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT = {
Start: "START", End: "END",
Start: "START",
End: "END",
};

@@ -51,2 +52,2 @@ export { DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFFWCxPQUFRLE9BQU8sRUFBRSxLQUFNLEtBQUs7OztBQUUvRTtJQVdJLGtDQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFOdkMsVUFBSyxHQUFXLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQztRQUN6RCxPQUFFLEdBQWtCLElBQUksQ0FBQztJQUtpQixDQUFDOztnQkFYdkQsU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSw2Q0FBNkM7aUJBQzFEOzs7O2dCQU4wQixXQUFXOzs7d0JBU2pDLEtBQUs7cUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7NEJBQ0wsS0FBSzs7SUFHViwrQkFBQztDQUFBLEFBWkQsSUFZQztTQVRZLHdCQUF3Qjs7O0lBRWpDLHlDQUFrRTs7SUFDbEUsc0NBQWtDOztJQUNsQyx5Q0FBbUM7O0lBQ25DLDJDQUF5Qjs7SUFDekIsNkNBQTJCOztJQUVmLCtDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGVudW0gRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5UIHsgU3RhcnQgPSBcIlNUQVJUXCIsIEVuZCA9IFwiRU5EXCJ9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcIm5nLXRlbXBsYXRlW21vZGVsSWRdLG5nLXRlbXBsYXRlW21vZGVsVHlwZV1cIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gICAgQElucHV0KCkgYWxpZ246IHN0cmluZyA9IERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVC5FbmQ7XG4gICAgQElucHV0KCkgYXM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbW9kZWxJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1vZGVsVHlwZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFHMUQsT0FBUSxPQUFPO0lBQ2YsS0FBTSxLQUFLOzs7QUFHZjtJQVdJLGtDQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFOdkMsVUFBSyxHQUFXLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQztRQUN6RCxPQUFFLEdBQWtCLElBQUksQ0FBQztJQU1sQyxDQUFDOztnQkFaSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLDZDQUE2QztpQkFDMUQ7Ozs7Z0JBVDBCLFdBQVc7Ozt3QkFZakMsS0FBSztxQkFDTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzs0QkFDTCxLQUFLOztJQUlWLCtCQUFDO0NBQUEsQUFiRCxJQWFDO1NBVlksd0JBQXdCOzs7SUFFakMseUNBQWtFOztJQUNsRSxzQ0FBa0M7O0lBQ2xDLHlDQUFtQzs7SUFDbkMsMkNBQXlCOztJQUN6Qiw2Q0FBMkI7O0lBRWYsK0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgZW51bSBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlQge1xuICAgIFN0YXJ0ID0gXCJTVEFSVFwiLFxuICAgIEVuZCA9IFwiRU5EXCJcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwibmctdGVtcGxhdGVbbW9kZWxJZF0sbmctdGVtcGxhdGVbbW9kZWxUeXBlXVwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBASW5wdXQoKSBhbGlnbjogc3RyaW5nID0gRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5ULkVuZDtcbiAgICBASW5wdXQoKSBhczogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBtb2RlbElkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbW9kZWxUeXBlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB9XG59XG4iXX0=

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

import { serializable } from "../decorator/serializable.decorator";
import { AUTOCOMPLETE_ON } from "../utils/autofill.utils";
import { isBoolean, isNumber } from "../utils/core.utils";

@@ -44,3 +43,3 @@ /**

var _this = _super.call(this, config, layout) || this;
_this.autoComplete = config.autoComplete || AUTOCOMPLETE_ON;
_this.autoComplete = config.autoComplete || "on";
_this.autoFocus = isBoolean(config.autoFocus) ? config.autoFocus : false;

@@ -115,2 +114,2 @@ _this.maxLength = isNumber(config.maxLength) ? config.maxLength : null;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC1jb250cm9sLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbC9keW5hbWljLWlucHV0LWNvbnRyb2wubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQXNDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUUxRCxvREFXQzs7O0lBVEcsc0RBQXNCOztJQUN0QixtREFBb0I7O0lBQ3BCLG1EQUFtQjs7SUFDbkIsbURBQW1COztJQUNuQixxREFBcUI7O0lBQ3JCLGdEQUFnQjs7SUFDaEIsa0RBQW1COztJQUNuQixvREFBcUI7O0lBQ3JCLGdEQUFnQjs7Ozs7O0FBR3BCO0lBQTBELG9EQUErQjtJQVlyRixrQ0FBc0IsTUFBeUMsRUFBRSxNQUFpQztRQUFsRyxZQUVJLGtCQUFNLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FXeEI7UUFURyxLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksZUFBZSxDQUFDO1FBQzNELEtBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3hFLEtBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RFLEtBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RFLEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDNUMsS0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUNwQyxLQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNyRSxLQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRSxLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDOztJQUN4QyxDQUFDO0lBdkJlO1FBQWYsWUFBWSxFQUFFOztrRUFBc0I7SUFDckI7UUFBZixZQUFZLEVBQUU7OytEQUFvQjtJQUNuQjtRQUFmLFlBQVksRUFBRTs7K0RBQTBCO0lBQ3pCO1FBQWYsWUFBWSxFQUFFOzsrREFBMEI7SUFDekI7UUFBZixZQUFZLEVBQUU7O2lFQUFxQjtJQUNwQjtRQUFmLFlBQVksRUFBRTs7NERBQXVCO0lBQ3RCO1FBQWYsWUFBWSxFQUFFOzs4REFBbUI7SUFDbEI7UUFBZixZQUFZLEVBQUU7O2dFQUFxQjtJQUNwQjtRQUFmLFlBQVksRUFBRTs7NERBQXVCO0lBZ0IxQywrQkFBQztDQUFBLEFBMUJELENBQTBELDRCQUE0QixHQTBCckY7U0ExQnFCLHdCQUF3Qjs7O0lBRTFDLGdEQUFxQzs7SUFDckMsNkNBQW1DOztJQUNuQyw2Q0FBeUM7O0lBQ3pDLDZDQUF5Qzs7SUFDekMsK0NBQW9DOztJQUNwQywwQ0FBc0M7O0lBQ3RDLDRDQUFrQzs7SUFDbEMsOENBQW9DOztJQUNwQywwQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsLCBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsQ29uZmlnIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXZhbHVlLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB9IGZyb20gXCIuL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBzZXJpYWxpemFibGUgfSBmcm9tIFwiLi4vZGVjb3JhdG9yL3NlcmlhbGl6YWJsZS5kZWNvcmF0b3JcIjtcbmltcG9ydCB7IEFVVE9DT01QTEVURV9PTiB9IGZyb20gXCIuLi91dGlscy9hdXRvZmlsbC51dGlsc1wiO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc051bWJlciB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsQ29uZmlnPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbENvbmZpZzxUPiB7XG5cbiAgICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gICAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICByZWFkT25seT86IGJvb2xlYW47XG4gICAgc3BlbGxDaGVjaz86IGJvb2xlYW47XG4gICAgc3VmZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxUPiB7XG5cbiAgICBAc2VyaWFsaXphYmxlKCkgYXV0b0NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICBAc2VyaWFsaXphYmxlKCkgbWF4TGVuZ3RoOiBudW1iZXIgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoKSBtaW5MZW5ndGg6IG51bWJlciB8IG51bGw7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgcmVhZE9ubHk6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHNwZWxsQ2hlY2s6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHN1ZmZpeDogc3RyaW5nIHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNJbnB1dENvbnRyb2xNb2RlbENvbmZpZzxUPiwgbGF5b3V0PzogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0KSB7XG5cbiAgICAgICAgc3VwZXIoY29uZmlnLCBsYXlvdXQpO1xuXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlID0gY29uZmlnLmF1dG9Db21wbGV0ZSB8fCBBVVRPQ09NUExFVEVfT047XG4gICAgICAgIHRoaXMuYXV0b0ZvY3VzID0gaXNCb29sZWFuKGNvbmZpZy5hdXRvRm9jdXMpID8gY29uZmlnLmF1dG9Gb2N1cyA6IGZhbHNlO1xuICAgICAgICB0aGlzLm1heExlbmd0aCA9IGlzTnVtYmVyKGNvbmZpZy5tYXhMZW5ndGgpID8gY29uZmlnLm1heExlbmd0aCA6IG51bGw7XG4gICAgICAgIHRoaXMubWluTGVuZ3RoID0gaXNOdW1iZXIoY29uZmlnLm1pbkxlbmd0aCkgPyBjb25maWcubWluTGVuZ3RoIDogbnVsbDtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGNvbmZpZy5wbGFjZWhvbGRlciB8fCBcIlwiO1xuICAgICAgICB0aGlzLnByZWZpeCA9IGNvbmZpZy5wcmVmaXggfHwgbnVsbDtcbiAgICAgICAgdGhpcy5yZWFkT25seSA9IGlzQm9vbGVhbihjb25maWcucmVhZE9ubHkpID8gY29uZmlnLnJlYWRPbmx5IDogZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlbGxDaGVjayA9IGlzQm9vbGVhbihjb25maWcuc3BlbGxDaGVjaykgPyBjb25maWcuc3BlbGxDaGVjayA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN1ZmZpeCA9IGNvbmZpZy5zdWZmaXggfHwgbnVsbDtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC1jb250cm9sLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbC9keW5hbWljLWlucHV0LWNvbnRyb2wubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQXNDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBRTFELG9EQVdDOzs7SUFURyxzREFBc0I7O0lBQ3RCLG1EQUFvQjs7SUFDcEIsbURBQW1COztJQUNuQixtREFBbUI7O0lBQ25CLHFEQUFxQjs7SUFDckIsZ0RBQWdCOztJQUNoQixrREFBbUI7O0lBQ25CLG9EQUFxQjs7SUFDckIsZ0RBQWdCOzs7Ozs7QUFHcEI7SUFBMEQsb0RBQStCO0lBWXJGLGtDQUFzQixNQUF5QyxFQUFFLE1BQWlDO1FBQWxHLFlBRUksa0JBQU0sTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQVd4QjtRQVRHLEtBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDaEQsS0FBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDeEUsS0FBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEUsS0FBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEUsS0FBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM1QyxLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ3BDLEtBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JFLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNFLEtBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7O0lBQ3hDLENBQUM7SUF2QmU7UUFBZixZQUFZLEVBQUU7O2tFQUFzQjtJQUNyQjtRQUFmLFlBQVksRUFBRTs7K0RBQW9CO0lBQ25CO1FBQWYsWUFBWSxFQUFFOzsrREFBMEI7SUFDekI7UUFBZixZQUFZLEVBQUU7OytEQUEwQjtJQUN6QjtRQUFmLFlBQVksRUFBRTs7aUVBQXFCO0lBQ3BCO1FBQWYsWUFBWSxFQUFFOzs0REFBdUI7SUFDdEI7UUFBZixZQUFZLEVBQUU7OzhEQUFtQjtJQUNsQjtRQUFmLFlBQVksRUFBRTs7Z0VBQXFCO0lBQ3BCO1FBQWYsWUFBWSxFQUFFOzs0REFBdUI7SUFnQjFDLCtCQUFDO0NBQUEsQUExQkQsQ0FBMEQsNEJBQTRCLEdBMEJyRjtTQTFCcUIsd0JBQXdCOzs7SUFFMUMsZ0RBQXFDOztJQUNyQyw2Q0FBbUM7O0lBQ25DLDZDQUF5Qzs7SUFDekMsNkNBQXlDOztJQUN6QywrQ0FBb0M7O0lBQ3BDLDBDQUFzQzs7SUFDdEMsNENBQWtDOztJQUNsQyw4Q0FBb0M7O0lBQ3BDLDBDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWwsIER5bmFtaWNGb3JtVmFsdWVDb250cm9sTW9kZWxDb25maWcgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IH0gZnJvbSBcIi4vbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmltcG9ydCB7IHNlcmlhbGl6YWJsZSB9IGZyb20gXCIuLi9kZWNvcmF0b3Ivc2VyaWFsaXphYmxlLmRlY29yYXRvclwiO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc051bWJlciB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsQ29uZmlnPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbENvbmZpZzxUPiB7XG5cbiAgICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gICAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICByZWFkT25seT86IGJvb2xlYW47XG4gICAgc3BlbGxDaGVjaz86IGJvb2xlYW47XG4gICAgc3VmZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0lucHV0Q29udHJvbE1vZGVsPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxUPiB7XG5cbiAgICBAc2VyaWFsaXphYmxlKCkgYXV0b0NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICBAc2VyaWFsaXphYmxlKCkgbWF4TGVuZ3RoOiBudW1iZXIgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoKSBtaW5MZW5ndGg6IG51bWJlciB8IG51bGw7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQHNlcmlhbGl6YWJsZSgpIHByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgcmVhZE9ubHk6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHNwZWxsQ2hlY2s6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHN1ZmZpeDogc3RyaW5nIHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNJbnB1dENvbnRyb2xNb2RlbENvbmZpZzxUPiwgbGF5b3V0PzogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0KSB7XG5cbiAgICAgICAgc3VwZXIoY29uZmlnLCBsYXlvdXQpO1xuXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlID0gY29uZmlnLmF1dG9Db21wbGV0ZSB8fCBcIm9uXCI7XG4gICAgICAgIHRoaXMuYXV0b0ZvY3VzID0gaXNCb29sZWFuKGNvbmZpZy5hdXRvRm9jdXMpID8gY29uZmlnLmF1dG9Gb2N1cyA6IGZhbHNlO1xuICAgICAgICB0aGlzLm1heExlbmd0aCA9IGlzTnVtYmVyKGNvbmZpZy5tYXhMZW5ndGgpID8gY29uZmlnLm1heExlbmd0aCA6IG51bGw7XG4gICAgICAgIHRoaXMubWluTGVuZ3RoID0gaXNOdW1iZXIoY29uZmlnLm1pbkxlbmd0aCkgPyBjb25maWcubWluTGVuZ3RoIDogbnVsbDtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGNvbmZpZy5wbGFjZWhvbGRlciB8fCBcIlwiO1xuICAgICAgICB0aGlzLnByZWZpeCA9IGNvbmZpZy5wcmVmaXggfHwgbnVsbDtcbiAgICAgICAgdGhpcy5yZWFkT25seSA9IGlzQm9vbGVhbihjb25maWcucmVhZE9ubHkpID8gY29uZmlnLnJlYWRPbmx5IDogZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlbGxDaGVjayA9IGlzQm9vbGVhbihjb25maWcuc3BlbGxDaGVjaykgPyBjb25maWcuc3BlbGxDaGVjayA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN1ZmZpeCA9IGNvbmZpZy5zdWZmaXggfHwgbnVsbDtcbiAgICB9XG59XG4iXX0=

@@ -13,6 +13,42 @@ /**

this.DYNAMIC_FORM_CONTROL_MAP_FN = DYNAMIC_FORM_CONTROL_MAP_FN;
this.componentRefs = {};
this.forms = [];
this.formControls = {};
this.DYNAMIC_FORM_CONTROL_MAP_FN = (/** @type {?} */ (DYNAMIC_FORM_CONTROL_MAP_FN));
}
/**
* @return {?}
*/
DynamicFormComponentService.prototype.getForms = /**
* @return {?}
*/
function () {
return this.forms.values();
};
/**
* @param {?} component
* @return {?}
*/
DynamicFormComponentService.prototype.registerForm = /**
* @param {?} component
* @return {?}
*/
function (component) {
this.forms.push(component);
};
/**
* @param {?} component
* @return {?}
*/
DynamicFormComponentService.prototype.unregisterForm = /**
* @param {?} component
* @return {?}
*/
function (component) {
/** @type {?} */
var indexOf = this.forms.indexOf(component);
if (indexOf !== -1) {
this.forms.splice(indexOf, 1);
}
};
/**
* @param {?} modelId

@@ -29,3 +65,3 @@ * @param {?=} index

/** @type {?} */
var ref = this.componentRefs[modelId];
var ref = this.formControls[modelId];
if (isNumber(index)) {

@@ -40,19 +76,20 @@ return Array.isArray(ref) ? ref[index] : undefined;

* @param {?} model
* @param {?} instance
* @param {?} ref
* @param {?=} index
* @return {?}
*/
DynamicFormComponentService.prototype.registerFormControlRef = /**
DynamicFormComponentService.prototype.registerFormControl = /**
* @param {?} model
* @param {?} instance
* @param {?} ref
* @param {?=} index
* @return {?}
*/
function (model, instance, index) {
if (isNumber(index)) {
function (model, ref, index) {
if (isNumber(index)) { // threat model as array child
// threat model as array child
/** @type {?} */
var arrayRef = (/** @type {?} */ (this.componentRefs[model.id])) || [];
var arrayRef = (/** @type {?} */ (this.formControls[model.id])) || [];
if (Array.isArray(arrayRef)) {
arrayRef.splice(index, 0, instance);
this.componentRefs[model.id] = arrayRef;
arrayRef.splice(index, 0, ref);
this.formControls[model.id] = arrayRef;
}

@@ -64,3 +101,3 @@ else {

else {
this.componentRefs[model.id] = instance;
this.formControls[model.id] = ref;
}

@@ -73,3 +110,3 @@ };

*/
DynamicFormComponentService.prototype.unregisterFormControlRef = /**
DynamicFormComponentService.prototype.unregisterFormControl = /**
* @param {?} modelId

@@ -81,3 +118,3 @@ * @param {?=} index

/** @type {?} */
var componentRef = this.componentRefs[modelId];
var componentRef = this.formControls[modelId];
if (isNumber(index)) {

@@ -89,3 +126,3 @@ if (Array.isArray(componentRef) && componentRef[index] !== undefined) {

else if (componentRef !== undefined) {
delete this.componentRefs[modelId];
delete this.formControls[modelId];
}

@@ -122,3 +159,3 @@ };

*/
DynamicFormComponentService.prototype.componentRefs;
DynamicFormComponentService.prototype.forms;
/**

@@ -128,4 +165,9 @@ * @type {?}

*/
DynamicFormComponentService.prototype.formControls;
/**
* @type {?}
* @private
*/
DynamicFormComponentService.prototype.DYNAMIC_FORM_CONTROL_MAP_FN;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTTNELE1BQU0sS0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBMEIsNkJBQTZCLENBQUM7QUFFckg7SUFPSSxxQ0FBOEUsMkJBQWdDO1FBQWhDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBSztRQUZ0RyxrQkFBYSxHQUF1RSxFQUFFLENBQUM7UUFHM0YsSUFBSSxDQUFDLDJCQUEyQixHQUFHLG1CQUFBLDJCQUEyQixFQUEyQixDQUFDO0lBQzlGLENBQUM7Ozs7OztJQUVELHVEQUFpQjs7Ozs7SUFBakIsVUFBa0IsT0FBZSxFQUFFLEtBQWM7O1lBRXZDLEdBQUcsR0FBb0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFFeEYsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFFakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUV0RDthQUFNO1lBQ0gsT0FBTyxtQkFBQSxHQUFHLEVBQXlCLENBQUM7U0FDdkM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsNERBQXNCOzs7Ozs7SUFBdEIsVUFBdUIsS0FBOEIsRUFBRSxRQUErQixFQUFFLEtBQWM7UUFFbEcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7O2dCQUVYLFFBQVEsR0FBNEIsbUJBQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQTJCLElBQUksRUFBRTtZQUV2RyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBRXpCLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO2FBRTNDO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsK0VBQTZFLEtBQUssQ0FBQyxFQUFJLENBQUMsQ0FBQzthQUN6RztTQUVKO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDM0M7SUFFTCxDQUFDOzs7Ozs7SUFFRCw4REFBd0I7Ozs7O0lBQXhCLFVBQXlCLE9BQWUsRUFBRSxLQUFjOztZQUU5QyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFFaEQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFFakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQ2xFLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1NBRUo7YUFBTSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7Ozs7SUFFRCw0REFBc0I7Ozs7SUFBdEIsVUFBdUIsS0FBOEI7UUFDakQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pHLENBQUM7O2dCQTlESixVQUFVLFNBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzs7O2dEQUtnQixNQUFNLFNBQUMsMkJBQTJCLGNBQUcsUUFBUTs7O3NDQWxCOUQ7Q0EwRUMsQUEvREQsSUErREM7U0E1RFksMkJBQTJCOzs7Ozs7SUFFcEMsb0RBQStGOzs7OztJQUVuRixrRUFBa0ciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOdW1iZXIgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUNvbnRyb2xSZWYgPSBDb21wb25lbnRSZWY8RHluYW1pY0Zvcm1Db250cm9sPjtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Db250cm9sTWFwRm4gPSAobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKSA9PiBUeXBlPER5bmFtaWNGb3JtQ29udHJvbD4gfCBudWxsO1xuXG5leHBvcnQgY29uc3QgRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOID0gbmV3IEluamVjdGlvblRva2VuPER5bmFtaWNGb3JtQ29udHJvbE1hcEZuPihcIkRZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTlwiKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSB7XG5cbiAgICBwcml2YXRlIGNvbXBvbmVudFJlZnM6IHsgW2tleTogc3RyaW5nXTogRHluYW1pY0Zvcm1Db250cm9sUmVmIHwgRHluYW1pY0Zvcm1Db250cm9sUmVmW10gfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4pIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOOiBhbnkpIHtcbiAgICAgICAgdGhpcy5EWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4gPSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4gYXMgRHluYW1pY0Zvcm1Db250cm9sTWFwRm47XG4gICAgfVxuXG4gICAgZ2V0Rm9ybUNvbnRyb2xSZWYobW9kZWxJZDogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IER5bmFtaWNGb3JtQ29udHJvbFJlZiB8IHVuZGVmaW5lZCB7XG5cbiAgICAgICAgY29uc3QgcmVmOiBEeW5hbWljRm9ybUNvbnRyb2xSZWYgfCBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSA9IHRoaXMuY29tcG9uZW50UmVmc1ttb2RlbElkXTtcblxuICAgICAgICBpZiAoaXNOdW1iZXIoaW5kZXgpKSB7XG5cbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHJlZikgPyByZWZbaW5kZXhdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVmIGFzIER5bmFtaWNGb3JtQ29udHJvbFJlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyRm9ybUNvbnRyb2xSZWYobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBpbnN0YW5jZTogRHluYW1pY0Zvcm1Db250cm9sUmVmLCBpbmRleD86IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIGlmIChpc051bWJlcihpbmRleCkpIHtcblxuICAgICAgICAgICAgY29uc3QgYXJyYXlSZWY6IER5bmFtaWNGb3JtQ29udHJvbFJlZltdID0gdGhpcy5jb21wb25lbnRSZWZzW21vZGVsLmlkXSBhcyBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSB8fCBbXTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXlSZWYpKSB7XG5cbiAgICAgICAgICAgICAgICBhcnJheVJlZi5zcGxpY2UoaW5kZXgsIDAsIGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZnNbbW9kZWwuaWRdID0gYXJyYXlSZWY7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGByZWdpc3RlckZvcm1Db250cm9sUmVmIGlzIGNhbGxlZCB3aXRoIGluZGV4IGZvciBhIG5vbi1hcnJheSBmb3JtIGNvbnRyb2w6ICR7bW9kZWwuaWR9YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmc1ttb2RlbC5pZF0gPSBpbnN0YW5jZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgdW5yZWdpc3RlckZvcm1Db250cm9sUmVmKG1vZGVsSWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFJlZnNbbW9kZWxJZF07XG5cbiAgICAgICAgaWYgKGlzTnVtYmVyKGluZGV4KSkge1xuXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnRSZWYpICYmIGNvbXBvbmVudFJlZltpbmRleF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50UmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbXBvbmVudFJlZnNbbW9kZWxJZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXN0b21Db21wb25lbnRUeXBlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbih0aGlzLkRZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTikgPyB0aGlzLkRZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTihtb2RlbCkgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFJakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBSzNELE1BQU0sS0FBTywyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBMEIsNkJBQTZCLENBQUM7QUFFckg7SUFRSSxxQ0FBOEUsMkJBQWdDO1FBQWhDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBSztRQUh0RyxVQUFLLEdBQTJCLEVBQUUsQ0FBQztRQUNuQyxpQkFBWSxHQUF1RSxFQUFFLENBQUM7UUFHMUYsSUFBSSxDQUFDLDJCQUEyQixHQUFHLG1CQUFBLDJCQUEyQixFQUEyQixDQUFDO0lBQzlGLENBQUM7Ozs7SUFFRCw4Q0FBUTs7O0lBQVI7UUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCxrREFBWTs7OztJQUFaLFVBQWEsU0FBK0I7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCxvREFBYzs7OztJQUFkLFVBQWUsU0FBK0I7O1lBRXBDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFN0MsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsdURBQWlCOzs7OztJQUFqQixVQUFrQixPQUFlLEVBQUUsS0FBYzs7WUFFdkMsR0FBRyxHQUFvRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUV2RixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUVqQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBRXREO2FBQU07WUFDSCxPQUFPLG1CQUFBLEdBQUcsRUFBeUIsQ0FBQztTQUN2QztJQUNMLENBQUM7Ozs7Ozs7SUFFRCx5REFBbUI7Ozs7OztJQUFuQixVQUFvQixLQUE4QixFQUFFLEdBQTBCLEVBQUUsS0FBYztRQUUxRixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLDhCQUE4Qjs7O2dCQUUzQyxRQUFRLEdBQTRCLG1CQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUEyQixJQUFJLEVBQUU7WUFFdEcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUV6QixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQzthQUUxQztpQkFBTTtnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLCtFQUE2RSxLQUFLLENBQUMsRUFBSSxDQUFDLENBQUM7YUFDekc7U0FFSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsMkRBQXFCOzs7OztJQUFyQixVQUFzQixPQUFlLEVBQUUsS0FBYzs7WUFFM0MsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBRS9DLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBRWpCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUNsRSxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNqQztTQUVKO2FBQU0sSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7Ozs7O0lBRUQsNERBQXNCOzs7O0lBQXRCLFVBQXVCLEtBQThCO1FBQ2pELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RyxDQUFDOztnQkEvRUosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7OztnREFNZ0IsTUFBTSxTQUFDLDJCQUEyQixjQUFHLFFBQVE7OztzQ0FuQjlEO0NBMkZDLEFBaEZELElBZ0ZDO1NBN0VZLDJCQUEyQjs7Ozs7O0lBRXBDLDRDQUEyQzs7Ozs7SUFDM0MsbURBQThGOzs7OztJQUVsRixrRUFBa0ciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wtaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnQvZHluYW1pYy1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzTnVtYmVyIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Db250cm9sUmVmID0gQ29tcG9uZW50UmVmPER5bmFtaWNGb3JtQ29udHJvbD47XG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUNvbnRyb2xNYXBGbiA9IChtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpID0+IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGw7XG5cbmV4cG9ydCBjb25zdCBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk4gPSBuZXcgSW5qZWN0aW9uVG9rZW48RHluYW1pY0Zvcm1Db250cm9sTWFwRm4+KFwiRFlOQU1JQ19GT1JNX0NPTlRST0xfTUFQX0ZOXCIpO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgZm9ybXM6IER5bmFtaWNGb3JtQ29tcG9uZW50W10gPSBbXTtcbiAgICBwcml2YXRlIGZvcm1Db250cm9sczogeyBba2V5OiBzdHJpbmddOiBEeW5hbWljRm9ybUNvbnRyb2xSZWYgfCBEeW5hbWljRm9ybUNvbnRyb2xSZWZbXSB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTikgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9NQVBfRk46IGFueSkge1xuICAgICAgICB0aGlzLkRZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTiA9IERZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTiBhcyBEeW5hbWljRm9ybUNvbnRyb2xNYXBGbjtcbiAgICB9XG5cbiAgICBnZXRGb3JtcygpOiBJdGVyYWJsZUl0ZXJhdG9yPER5bmFtaWNGb3JtQ29tcG9uZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1zLnZhbHVlcygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyRm9ybShjb21wb25lbnQ6IER5bmFtaWNGb3JtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybXMucHVzaChjb21wb25lbnQpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXJGb3JtKGNvbXBvbmVudDogRHluYW1pY0Zvcm1Db21wb25lbnQpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBpbmRleE9mID0gdGhpcy5mb3Jtcy5pbmRleE9mKGNvbXBvbmVudCk7XG5cbiAgICAgICAgaWYgKGluZGV4T2YgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1zLnNwbGljZShpbmRleE9mLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEZvcm1Db250cm9sUmVmKG1vZGVsSWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpOiBEeW5hbWljRm9ybUNvbnRyb2xSZWYgfCB1bmRlZmluZWQge1xuXG4gICAgICAgIGNvbnN0IHJlZjogRHluYW1pY0Zvcm1Db250cm9sUmVmIHwgRHluYW1pY0Zvcm1Db250cm9sUmVmW10gPSB0aGlzLmZvcm1Db250cm9sc1ttb2RlbElkXTtcblxuICAgICAgICBpZiAoaXNOdW1iZXIoaW5kZXgpKSB7XG5cbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHJlZikgPyByZWZbaW5kZXhdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVmIGFzIER5bmFtaWNGb3JtQ29udHJvbFJlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyRm9ybUNvbnRyb2wobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCByZWY6IER5bmFtaWNGb3JtQ29udHJvbFJlZiwgaW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcblxuICAgICAgICBpZiAoaXNOdW1iZXIoaW5kZXgpKSB7IC8vIHRocmVhdCBtb2RlbCBhcyBhcnJheSBjaGlsZFxuXG4gICAgICAgICAgICBjb25zdCBhcnJheVJlZjogRHluYW1pY0Zvcm1Db250cm9sUmVmW10gPSB0aGlzLmZvcm1Db250cm9sc1ttb2RlbC5pZF0gYXMgRHluYW1pY0Zvcm1Db250cm9sUmVmW10gfHwgW107XG5cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFycmF5UmVmKSkge1xuXG4gICAgICAgICAgICAgICAgYXJyYXlSZWYuc3BsaWNlKGluZGV4LCAwLCByZWYpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW21vZGVsLmlkXSA9IGFycmF5UmVmO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgcmVnaXN0ZXJGb3JtQ29udHJvbFJlZiBpcyBjYWxsZWQgd2l0aCBpbmRleCBmb3IgYSBub24tYXJyYXkgZm9ybSBjb250cm9sOiAke21vZGVsLmlkfWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sc1ttb2RlbC5pZF0gPSByZWY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyRm9ybUNvbnRyb2wobW9kZWxJZDogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuZm9ybUNvbnRyb2xzW21vZGVsSWRdO1xuXG4gICAgICAgIGlmIChpc051bWJlcihpbmRleCkpIHtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29tcG9uZW50UmVmKSAmJiBjb21wb25lbnRSZWZbaW5kZXhdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5mb3JtQ29udHJvbHNbbW9kZWxJZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXN0b21Db21wb25lbnRUeXBlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IFR5cGU8RHluYW1pY0Zvcm1Db250cm9sPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbih0aGlzLkRZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTikgPyB0aGlzLkRZTkFNSUNfRk9STV9DT05UUk9MX01BUF9GTihtb2RlbCkgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==

@@ -9,3 +9,3 @@ /**

import { DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT } from "../directive/dynamic-template.directive";
import { isObject } from "../utils/core.utils";
import { isObject, isString } from "../utils/core.utils";
import * as i0 from "@angular/core";

@@ -191,3 +191,3 @@ var DynamicFormLayoutService = /** @class */ (function () {

function (layout, context, place) {
if (layout !== null && layout.hasOwnProperty(context)) {
if (isObject(layout) && layout.hasOwnProperty(context)) {
/** @type {?} */

@@ -202,2 +202,28 @@ var config = (/** @type {?} */ (layout[context]));

/**
* @param {?} layout
* @return {?}
*/
DynamicFormLayoutService.prototype.getHostClass = /**
* @param {?} layout
* @return {?}
*/
function (layout) {
/** @type {?} */
var keys = ["element", "grid"];
/** @type {?} */
var cls = "";
if (isObject(layout)) {
keys.forEach((/**
* @param {?} key
* @return {?}
*/
function (key) {
if (isObject(layout[key]) && isString(layout[key].host)) {
cls = cls + (" " + layout[key].host);
}
}));
}
return cls;
};
/**
* @param {?} model

@@ -233,2 +259,2 @@ * @return {?}

export { DynamicFormLayoutService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFFSCxvQ0FBb0MsRUFDdkMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBTS9DO0lBQUE7S0E2R0M7Ozs7OztJQXhHRywyQ0FBUTs7Ozs7SUFBUixVQUFTLEVBQVUsRUFBRSxVQUFvQzs7UUFFckQsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7O2dCQUV0QixLQUFrQixJQUFBLEtBQUEsaUJBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBdEMsSUFBTSxHQUFHLFdBQUE7b0JBRVYsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNaLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUMxQjtpQkFDSjs7Ozs7Ozs7O1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7Ozs7SUFFRCw4Q0FBVzs7Ozs7SUFBWCxVQUFZLEtBQThCLEVBQUUsVUFBb0M7OztZQUV4RSxhQUFhLEdBQTZCLElBQUk7UUFFbEQsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7b0NBRVgsR0FBRztnQkFFVixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQSxTQUFTOzt3QkFFdEIsUUFBUSxHQUFHLFNBQVMsQ0FB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RUFBSSxDQUFDO2dCQUN4RCxNQUFNO2FBQ1Q7WUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMxQjtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7Z0JBNUdKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzttQ0FyQkQ7Q0FnSUMsQUE3R0QsSUE2R0M7U0ExR1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUXVlcnlMaXN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbmZpZyxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dFBsYWNlXG59IGZyb20gXCIuLi9tb2RlbC9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLWxheW91dC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tYXJyYXkvZHluYW1pYy1mb3JtLWFycmF5Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlRcbn0gZnJvbSBcIi4uL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUxheW91dCA9IHsgW2lkOiBzdHJpbmddOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfTtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzID0gUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB8IHVuZGVmaW5lZDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSB7XG5cbiAgICBmaW5kQnlJZChpZDogc3RyaW5nLCBmb3JtTGF5b3V0OiBEeW5hbWljRm9ybUxheW91dCB8IG51bGwpOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsIHtcblxuICAgICAgICBpZiAoaXNPYmplY3QoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtTGF5b3V0W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZmluZEJ5TW9kZWwobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBmb3JtTGF5b3V0OiBEeW5hbWljRm9ybUxheW91dCB8IG51bGwpOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsIHtcblxuICAgICAgICBsZXQgY29udHJvbExheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0ID0gbnVsbDtcblxuICAgICAgICBpZiAoaXNPYmplY3QoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgICAgIGtleS5zcGxpdChcIixcIikuZm9yRWFjaChzdWJzdHJpbmcgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc3Vic3RyaW5nLnRyaW0oKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3IgPT09IG1vZGVsLmlkIHx8IHNlbGVjdG9yID09PSBtb2RlbC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sTGF5b3V0ID0gZm9ybUxheW91dFtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udHJvbExheW91dDtcbiAgICB9XG5cbiAgICBmaWx0ZXJUZW1wbGF0ZXNCeU1vZGVsKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyQ2FsbGJhY2s6ICh0ZW1wbGF0ZTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSA9PiBib29sZWFuID0gKHRlbXBsYXRlOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZS5tb2RlbElkID09PSBtb2RlbC5pZCB8fCB0ZW1wbGF0ZS5tb2RlbFR5cGUgPT09IG1vZGVsLnR5cGU7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRlbXBsYXRlcyBpbnN0YW5jZW9mIFF1ZXJ5TGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlcy5maWx0ZXIoZmlsdGVyQ2FsbGJhY2spO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0ZW1wbGF0ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVzLmZpbHRlcihmaWx0ZXJDYWxsYmFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgZ2V0QWxpZ25lZFRlbXBsYXRlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMsIGFsaWdubWVudDogRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5UKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJUZW1wbGF0ZXNCeU1vZGVsKG1vZGVsLCB0ZW1wbGF0ZXMpXG4gICAgICAgICAgICAuZmluZCh0ZW1wbGF0ZSA9PiB0ZW1wbGF0ZS5hcyA9PT0gbnVsbCAmJiB0ZW1wbGF0ZS5hbGlnbiA9PT0gYWxpZ25tZW50KTtcbiAgICB9XG5cbiAgICAvKlxuICAgIGdldEluZGV4ZWRUZW1wbGF0ZXMobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyVGVtcGxhdGVzQnlNb2RlbChtb2RlbCwgdGVtcGxhdGVzKS5maWx0ZXIodGVtcGxhdGUgPT4gdGVtcGxhdGUuYXMgPT09IG51bGwpO1xuICAgIH1cbiAgICAqL1xuICAgIGdldFN0YXJ0VGVtcGxhdGUobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsaWduZWRUZW1wbGF0ZShtb2RlbCwgdGVtcGxhdGVzLCBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlQuU3RhcnQpO1xuICAgIH1cblxuICAgIGdldEVuZFRlbXBsYXRlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGlnbmVkVGVtcGxhdGUobW9kZWwsIHRlbXBsYXRlcywgRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5ULkVuZCk7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3MobGF5b3V0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsLCBjb250ZXh0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LCBwbGFjZTogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2UpOiBzdHJpbmcge1xuXG4gICAgICAgIGlmIChsYXlvdXQgIT09IG51bGwgJiYgbGF5b3V0Lmhhc093blByb3BlcnR5KGNvbnRleHQpKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxheW91dFtjb250ZXh0XSBhcyBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb25maWc7XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkocGxhY2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ1twbGFjZV0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgZ2V0RWxlbWVudElkKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZyB7XG5cbiAgICAgICAgbGV0IGlkID0gbW9kZWwuaWQ7XG4gICAgICAgIGxldCBwYXJlbnQgPSBtb2RlbC5wYXJlbnQ7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuXG4gICAgICAgICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgICAgIGlkID0gYCR7cGFyZW50LmNvbnRleHQuaWR9LSR7cGFyZW50LmluZGV4fS0ke21vZGVsLmlkfWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nLWR5bmFtaWMtZm9ybXMvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2R5bmFtaWMtZm9ybS1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFFSCxvQ0FBb0MsRUFDdkMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU16RDtJQUFBO0tBK0hDOzs7Ozs7SUExSEcsMkNBQVE7Ozs7O0lBQVIsVUFBUyxFQUFVLEVBQUUsVUFBb0M7O1FBRXJELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFOztnQkFFdEIsS0FBa0IsSUFBQSxLQUFBLGlCQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7b0JBQXRDLElBQU0sR0FBRyxXQUFBO29CQUVWLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDWixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDMUI7aUJBQ0o7Ozs7Ozs7OztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7Ozs7O0lBRUQsOENBQVc7Ozs7O0lBQVgsVUFBWSxLQUE4QixFQUFFLFVBQW9DOzs7WUFFeEUsYUFBYSxHQUE2QixJQUFJO1FBRWxELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO29DQUVYLEdBQUc7Z0JBRVYsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUEsU0FBUzs7d0JBRXRCLFFBQVEsR0FB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QUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDckQsR0FBRyxHQUFHLEdBQUcsSUFBRyxNQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFNLENBQUEsQ0FBQztpQkFDdEM7WUFDTCxDQUFDLEVBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzs7OztJQUVELCtDQUFZOzs7O0lBQVosVUFBYSxLQUE4Qjs7WUFFbkMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFOztZQUNiLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTTtRQUV6QixPQUFPLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFFcEIsSUFBSSxNQUFNLFlBQVksMEJBQTBCLEVBQUU7Z0JBRTlDLEVBQUUsR0FBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBSSxNQUFNLENBQUMsS0FBSyxTQUFJLEtBQUssQ0FBQyxFQUFJLENBQUM7Z0JBQ3hELE1BQU07YUFDVDtZQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDOztnQkE5SEosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7O21DQXJCRDtDQWtKQyxBQS9IRCxJQStIQztTQTVIWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBRdWVyeUxpc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0Q29uZmlnLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbExheW91dENvbnRleHQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0UGxhY2Vcbn0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZm9ybS1hcnJheS9keW5hbWljLWZvcm0tYXJyYXkubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIERZTkFNSUNfVEVNUExBVEVfRElSRUNUSVZFX0FMSUdOTUVOVFxufSBmcm9tIFwiLi4vZGlyZWN0aXZlL2R5bmFtaWMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybUxheW91dCA9IHsgW2lkOiBzdHJpbmddOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfTtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Db250cm9sVGVtcGxhdGVzID0gUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB8IHVuZGVmaW5lZDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSB7XG5cbiAgICBmaW5kQnlJZChpZDogc3RyaW5nLCBmb3JtTGF5b3V0OiBEeW5hbWljRm9ybUxheW91dCB8IG51bGwpOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsIHtcblxuICAgICAgICBpZiAoaXNPYmplY3QoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtTGF5b3V0W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZmluZEJ5TW9kZWwobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBmb3JtTGF5b3V0OiBEeW5hbWljRm9ybUxheW91dCB8IG51bGwpOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsIHtcblxuICAgICAgICBsZXQgY29udHJvbExheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0ID0gbnVsbDtcblxuICAgICAgICBpZiAoaXNPYmplY3QoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybUxheW91dCkpIHtcblxuICAgICAgICAgICAgICAgIGtleS5zcGxpdChcIixcIikuZm9yRWFjaChzdWJzdHJpbmcgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc3Vic3RyaW5nLnRyaW0oKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3IgPT09IG1vZGVsLmlkIHx8IHNlbGVjdG9yID09PSBtb2RlbC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sTGF5b3V0ID0gZm9ybUxheW91dFtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udHJvbExheW91dDtcbiAgICB9XG5cbiAgICBmaWx0ZXJUZW1wbGF0ZXNCeU1vZGVsKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXSB7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyQ2FsbGJhY2s6ICh0ZW1wbGF0ZTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSA9PiBib29sZWFuID0gKHRlbXBsYXRlOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZS5tb2RlbElkID09PSBtb2RlbC5pZCB8fCB0ZW1wbGF0ZS5tb2RlbFR5cGUgPT09IG1vZGVsLnR5cGU7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRlbXBsYXRlcyBpbnN0YW5jZW9mIFF1ZXJ5TGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlcy5maWx0ZXIoZmlsdGVyQ2FsbGJhY2spO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0ZW1wbGF0ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVzLmZpbHRlcihmaWx0ZXJDYWxsYmFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgZ2V0QWxpZ25lZFRlbXBsYXRlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5UKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJUZW1wbGF0ZXNCeU1vZGVsKG1vZGVsLCB0ZW1wbGF0ZXMpXG4gICAgICAgICAgICAuZmluZCh0ZW1wbGF0ZSA9PiB0ZW1wbGF0ZS5hcyA9PT0gbnVsbCAmJiB0ZW1wbGF0ZS5hbGlnbiA9PT0gYWxpZ25tZW50KTtcbiAgICB9XG5cbiAgICAvKlxuICAgIGdldEluZGV4ZWRUZW1wbGF0ZXMobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyVGVtcGxhdGVzQnlNb2RlbChtb2RlbCwgdGVtcGxhdGVzKS5maWx0ZXIodGVtcGxhdGUgPT4gdGVtcGxhdGUuYXMgPT09IG51bGwpO1xuICAgIH1cbiAgICAqL1xuICAgIGdldFN0YXJ0VGVtcGxhdGUobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCB0ZW1wbGF0ZXM6IER5bmFtaWNGb3JtQ29udHJvbFRlbXBsYXRlcyk6IER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsaWduZWRUZW1wbGF0ZShtb2RlbCwgdGVtcGxhdGVzLCBEWU5BTUlDX1RFTVBMQVRFX0RJUkVDVElWRV9BTElHTk1FTlQuU3RhcnQpO1xuICAgIH1cblxuICAgIGdldEVuZFRlbXBsYXRlKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgdGVtcGxhdGVzOiBEeW5hbWljRm9ybUNvbnRyb2xUZW1wbGF0ZXMpOiBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGlnbmVkVGVtcGxhdGUobW9kZWwsIHRlbXBsYXRlcywgRFlOQU1JQ19URU1QTEFURV9ESVJFQ1RJVkVfQUxJR05NRU5ULkVuZCk7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3MobGF5b3V0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb250ZXh0LFxuICAgICAgICAgICAgIHBsYWNlOiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRQbGFjZSk6IHN0cmluZyB7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KGxheW91dCkgJiYgbGF5b3V0Lmhhc093blByb3BlcnR5KGNvbnRleHQpKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxheW91dFtjb250ZXh0XSBhcyBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXRDb25maWc7XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkocGxhY2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ1twbGFjZV0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgZ2V0SG9zdENsYXNzKGxheW91dDogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG5cbiAgICAgICAgY29uc3Qga2V5czogKGtleW9mIER5bmFtaWNGb3JtQ29udHJvbExheW91dClbXSA9IFtcImVsZW1lbnRcIiwgXCJncmlkXCJdO1xuICAgICAgICBsZXQgY2xzID0gXCJcIjtcblxuICAgICAgICBpZiAoaXNPYmplY3QobGF5b3V0KSkge1xuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KGxheW91dFtrZXldKSAmJiBpc1N0cmluZyhsYXlvdXRba2V5XS5ob3N0KSkge1xuICAgICAgICAgICAgICAgICAgICBjbHMgPSBjbHMgKyBgICR7bGF5b3V0W2tleV0uaG9zdH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNscztcbiAgICB9XG5cbiAgICBnZXRFbGVtZW50SWQobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogc3RyaW5nIHtcblxuICAgICAgICBsZXQgaWQgPSBtb2RlbC5pZDtcbiAgICAgICAgbGV0IHBhcmVudCA9IG1vZGVsLnBhcmVudDtcblxuICAgICAgICB3aGlsZSAocGFyZW50ICE9PSBudWxsKSB7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgaWQgPSBgJHtwYXJlbnQuY29udGV4dC5pZH0tJHtwYXJlbnQuaW5kZXh9LSR7bW9kZWwuaWR9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG59XG4iXX0=

@@ -8,7 +8,7 @@ /**

import { FormControl } from "@angular/forms";
import { AND_OPERATOR, DYNAMIC_MATCHERS, OR_OPERATOR } from "./dynamic-form-relation.matchers";
import { AND_OPERATOR, DYNAMIC_MATCHERS, OR_OPERATOR } from "./dynamic-form-relation-matchers";
import { startWith } from "rxjs/operators";
import { merge } from "rxjs";
import * as i0 from "@angular/core";
import * as i1 from "./dynamic-form-relation.matchers";
import * as i1 from "./dynamic-form-relation-matchers";
var DynamicFormRelationService = /** @class */ (function () {

@@ -210,2 +210,2 @@ function DynamicFormRelationService(MATCHERS, injector) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQ0gsWUFBWSxFQUNaLGdCQUFnQixFQUVoQixXQUFXLEVBQ2QsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7OztBQUkzQztJQUtJLG9DQUEwRCxRQUFxQyxFQUMzRSxRQUFrQjtRQURvQixhQUFRLEdBQVIsUUFBUSxDQUE2QjtRQUMzRSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3RDLENBQUM7Ozs7OztJQUVELDJEQUFzQjs7Ozs7SUFBdEIsVUFBdUIsS0FBOEIsRUFBRSxLQUFnQjs7WUFFN0QsZ0JBQWdCOzs7OztRQUFHLFVBQUMsUUFBUSxFQUFFLFNBQVM7O2dCQUVuQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsRUFBRTtZQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTs7b0JBRTFCLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FB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Q0FBQztJQUN6QixDQUFDOztnQkE1R0osVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7Ozs0Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxnQkFBZ0I7Z0JBcEJ2QixRQUFROzs7cUNBQXJDO0NBNEhDLEFBN0dELElBNkdDO1NBMUdZLDBCQUEwQjs7Ozs7O0lBRXZCLDhDQUFtRjs7Ozs7SUFDbkYsOENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgQU5EX09QRVJBVE9SLFxuICAgIERZTkFNSUNfTUFUQ0hFUlMsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcixcbiAgICBPUl9PUEVSQVRPUlxufSBmcm9tIFwiLi9keW5hbWljLWZvcm0tcmVsYXRpb24ubWF0Y2hlcnNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uIH0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcmVsYXRpb24ubW9kZWxcIjtcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNSZWxhdGVkRm9ybUNvbnRyb2xzID0geyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEWU5BTUlDX01BVENIRVJTKSBwcml2YXRlIE1BVENIRVJTOiBEeW5hbWljRm9ybUNvbnRyb2xNYXRjaGVyW10sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB9XG5cbiAgICBnZXRSZWxhdGVkRm9ybUNvbnRyb2xzKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgZ3JvdXA6IEZvcm1Hcm91cCk6IER5bmFtaWNSZWxhdGVkRm9ybUNvbnRyb2xzIHtcblxuICAgICAgICBjb25zdCBjb25kaXRpb25SZWR1Y2VyID0gKGNvbnRyb2xzLCBjb25kaXRpb24pID0+IHtcblxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IGNvbmRpdGlvbi5yb290UGF0aCB8fCBjb25kaXRpb24uaWQ7XG5cbiAgICAgICAgICAgIGlmICghY29udHJvbHMuaGFzT3duUHJvcGVydHkocGF0aCkpIHtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBjb25kaXRpb24ucm9vdFBhdGggPyBncm91cC5yb290LmdldChjb25kaXRpb24ucm9vdFBhdGgpIDogZ3JvdXAuZ2V0KGNvbmRpdGlvbi5pZCk7XG5cbiAgICAgICAgICAgICAgICBjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgPyBjb250cm9sc1twYXRoXSA9IGNvbnRyb2wgOiBjb25zb2xlLndhcm4oYE5vIHJlbGF0ZWQgZm9ybSBjb250cm9sIHdpdGggaWQgJHtjb25kaXRpb24uaWR9IGNvdWxkIGJlIGZvdW5kYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb250cm9scztcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZWxhdGlvblJlZHVjZXIgPSAoY29udHJvbHMsIHJlbGF0aW9uKSA9PiByZWxhdGlvbi53aGVuLnJlZHVjZShjb25kaXRpb25SZWR1Y2VyLCBjb250cm9scyk7XG5cbiAgICAgICAgcmV0dXJuIG1vZGVsLnJlbGF0aW9ucy5yZWR1Y2UocmVsYXRpb25SZWR1Y2VyLCB7fSk7XG4gICAgfVxuXG4gICAgZmluZFJlbGF0aW9uQnlNYXRjaGVyKHJlbGF0aW9uczogRHluYW1pY0Zvcm1Db250cm9sUmVsYXRpb25bXSwgbWF0Y2hlcjogRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcik6IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aW9ucy5maW5kKHJlbGF0aW9uID0+IFttYXRjaGVyLm1hdGNoLCBtYXRjaGVyLm9wcG9zaW5nTWF0Y2hdLmluY2x1ZGVzKHJlbGF0aW9uLm1hdGNoKSk7XG4gICAgfVxuXG4gICAgbWF0Y2hlc0NvbmRpdGlvbihyZWxhdGlvbjogRHluYW1pY0Zvcm1Db250cm9sUmVsYXRpb24sIHJlbGF0ZWRGb3JtQ29udHJvbHM6IER5bmFtaWNSZWxhdGVkRm9ybUNvbnRyb2xzLCBtYXRjaGVyOiBEeW5hbWljRm9ybUNvbnRyb2xNYXRjaGVyKTogYm9vbGVhbiB7XG5cbiAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSByZWxhdGlvbi5vcGVyYXRvciB8fCBPUl9PUEVSQVRPUjtcblxuICAgICAgICByZXR1cm4gcmVsYXRpb24ud2hlbi5yZWR1Y2UoKGhhc0FscmVhZHlNYXRjaGVkLCBjb25kaXRpb24sIGluZGV4KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBjb25kaXRpb24ucm9vdFBhdGggfHwgY29uZGl0aW9uLmlkO1xuXG4gICAgICAgICAgICBsZXQgcmVsYXRlZEZvcm1Db250cm9sO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKHJlbGF0ZWRGb3JtQ29udHJvbHMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gcGF0aCkge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGVkRm9ybUNvbnRyb2wgPSBjb250cm9sO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZWxhdGVkRm9ybUNvbnRyb2wgJiYgcmVsYXRpb24ubWF0Y2ggPT09IG1hdGNoZXIubWF0Y2gpIHtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgb3BlcmF0b3IgPT09IEFORF9PUEVSQVRPUiAmJiAhaGFzQWxyZWFkeU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgb3BlcmF0b3IgPT09IE9SX09QRVJBVE9SICYmIGhhc0FscmVhZHlNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjb25kaXRpb24udmFsdWUgPT09IHJlbGF0ZWRGb3JtQ29udHJvbC52YWx1ZSB8fCBjb25kaXRpb24uc3RhdHVzID09PSByZWxhdGVkRm9ybUNvbnRyb2wuc3RhdHVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZEZvcm1Db250cm9sICYmIHJlbGF0aW9uLm1hdGNoID09PSBtYXRjaGVyLm9wcG9zaW5nTWF0Y2gpIHtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgb3BlcmF0b3IgPT09IEFORF9PUEVSQVRPUiAmJiBoYXNBbHJlYWR5TWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBPUl9PUEVSQVRPUiAmJiAhaGFzQWxyZWFkeU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAhKGNvbmRpdGlvbi52YWx1ZSA9PT0gcmVsYXRlZEZvcm1Db250cm9sLnZhbHVlIHx8IGNvbmRpdGlvbi5zdGF0dXMgPT09IHJlbGF0ZWRGb3JtQ29udHJvbC5zdGF0dXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgfSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHN1YnNjcmliZVJlbGF0aW9ucyhtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb2w6IEZvcm1Db250cm9sKTogU3Vic2NyaXB0aW9uW10ge1xuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGb3JtQ29udHJvbHMgPSB0aGlzLmdldFJlbGF0ZWRGb3JtQ29udHJvbHMobW9kZWwsIGdyb3VwKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgICAgICBPYmplY3QudmFsdWVzKHJlbGF0ZWRGb3JtQ29udHJvbHMpLmZvckVhY2gocmVsYXRlZENvbnRyb2wgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZXMgPSByZWxhdGVkQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgocmVsYXRlZENvbnRyb2wudmFsdWUpKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NoYW5nZXMgPSByZWxhdGVkQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHJlbGF0ZWRDb250cm9sLnN0YXR1cykpO1xuXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2gobWVyZ2UodmFsdWVDaGFuZ2VzLCBzdGF0dXNDaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5NQVRDSEVSUy5mb3JFYWNoKG1hdGNoZXIgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uID0gdGhpcy5maW5kUmVsYXRpb25CeU1hdGNoZXIobW9kZWwucmVsYXRpb25zLCBtYXRjaGVyKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVsYXRpb24gIT09IHVuZGVmaW5lZCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNNYXRjaCA9IHRoaXMubWF0Y2hlc0NvbmRpdGlvbihyZWxhdGlvbiwgcmVsYXRlZEZvcm1Db250cm9scywgbWF0Y2hlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVyLm9uQ2hhbmdlKGhhc01hdGNoLCBtb2RlbCwgY29udHJvbCwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbnM7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLXJlbGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQ0gsWUFBWSxFQUNaLGdCQUFnQixFQUVoQixXQUFXLEVBQ2QsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7OztBQUkzQztJQUtJLG9DQUEwRCxRQUFxQyxFQUMzRSxRQUFrQjtRQURvQixhQUFRLEdBQVIsUUFBUSxDQUE2QjtRQUMzRSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3RDLENBQUM7Ozs7OztJQUVELDJEQUFzQjs7Ozs7SUFBdEIsVUFBdUIsS0FBOEIsRUFBRSxLQUFnQjs7WUFFN0QsZ0JBQWdCOzs7OztRQUFHLFVBQUMsUUFBUSxFQUFFLFNBQVM7O2dCQUVuQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsRUFBRTtZQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTs7b0JBRTFCLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FB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Q0FBQztJQUN6QixDQUFDOztnQkE1R0osVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7Ozs0Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxnQkFBZ0I7Z0JBcEJ2QixRQUFROzs7cUNBQXJDO0NBNEhDLEFBN0dELElBNkdDO1NBMUdZLDBCQUEwQjs7Ozs7O0lBRXZCLDhDQUFtRjs7Ozs7SUFDbkYsOENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgQU5EX09QRVJBVE9SLFxuICAgIERZTkFNSUNfTUFUQ0hFUlMsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcixcbiAgICBPUl9PUEVSQVRPUlxufSBmcm9tIFwiLi9keW5hbWljLWZvcm0tcmVsYXRpb24tbWF0Y2hlcnNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uIH0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcmVsYXRpb24ubW9kZWxcIjtcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNSZWxhdGVkRm9ybUNvbnRyb2xzID0geyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1SZWxhdGlvblNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEWU5BTUlDX01BVENIRVJTKSBwcml2YXRlIE1BVENIRVJTOiBEeW5hbWljRm9ybUNvbnRyb2xNYXRjaGVyW10sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB9XG5cbiAgICBnZXRSZWxhdGVkRm9ybUNvbnRyb2xzKG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgZ3JvdXA6IEZvcm1Hcm91cCk6IER5bmFtaWNSZWxhdGVkRm9ybUNvbnRyb2xzIHtcblxuICAgICAgICBjb25zdCBjb25kaXRpb25SZWR1Y2VyID0gKGNvbnRyb2xzLCBjb25kaXRpb24pID0+IHtcblxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IGNvbmRpdGlvbi5yb290UGF0aCB8fCBjb25kaXRpb24uaWQ7XG5cbiAgICAgICAgICAgIGlmICghY29udHJvbHMuaGFzT3duUHJvcGVydHkocGF0aCkpIHtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBjb25kaXRpb24ucm9vdFBhdGggPyBncm91cC5yb290LmdldChjb25kaXRpb24ucm9vdFBhdGgpIDogZ3JvdXAuZ2V0KGNvbmRpdGlvbi5pZCk7XG5cbiAgICAgICAgICAgICAgICBjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgPyBjb250cm9sc1twYXRoXSA9IGNvbnRyb2wgOiBjb25zb2xlLndhcm4oYE5vIHJlbGF0ZWQgZm9ybSBjb250cm9sIHdpdGggaWQgJHtjb25kaXRpb24uaWR9IGNvdWxkIGJlIGZvdW5kYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb250cm9scztcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZWxhdGlvblJlZHVjZXIgPSAoY29udHJvbHMsIHJlbGF0aW9uKSA9PiByZWxhdGlvbi53aGVuLnJlZHVjZShjb25kaXRpb25SZWR1Y2VyLCBjb250cm9scyk7XG5cbiAgICAgICAgcmV0dXJuIG1vZGVsLnJlbGF0aW9ucy5yZWR1Y2UocmVsYXRpb25SZWR1Y2VyLCB7fSk7XG4gICAgfVxuXG4gICAgZmluZFJlbGF0aW9uQnlNYXRjaGVyKHJlbGF0aW9uczogRHluYW1pY0Zvcm1Db250cm9sUmVsYXRpb25bXSwgbWF0Y2hlcjogRHluYW1pY0Zvcm1Db250cm9sTWF0Y2hlcik6IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aW9ucy5maW5kKHJlbGF0aW9uID0+IFttYXRjaGVyLm1hdGNoLCBtYXRjaGVyLm9wcG9zaW5nTWF0Y2hdLmluY2x1ZGVzKHJlbGF0aW9uLm1hdGNoKSk7XG4gICAgfVxuXG4gICAgbWF0Y2hlc0NvbmRpdGlvbihyZWxhdGlvbjogRHluYW1pY0Zvcm1Db250cm9sUmVsYXRpb24sIHJlbGF0ZWRGb3JtQ29udHJvbHM6IER5bmFtaWNSZWxhdGVkRm9ybUNvbnRyb2xzLCBtYXRjaGVyOiBEeW5hbWljRm9ybUNvbnRyb2xNYXRjaGVyKTogYm9vbGVhbiB7XG5cbiAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSByZWxhdGlvbi5vcGVyYXRvciB8fCBPUl9PUEVSQVRPUjtcblxuICAgICAgICByZXR1cm4gcmVsYXRpb24ud2hlbi5yZWR1Y2UoKGhhc0FscmVhZHlNYXRjaGVkLCBjb25kaXRpb24sIGluZGV4KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBjb25kaXRpb24ucm9vdFBhdGggfHwgY29uZGl0aW9uLmlkO1xuXG4gICAgICAgICAgICBsZXQgcmVsYXRlZEZvcm1Db250cm9sO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGNvbnRyb2xdIG9mIE9iamVjdC5lbnRyaWVzKHJlbGF0ZWRGb3JtQ29udHJvbHMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gcGF0aCkge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGVkRm9ybUNvbnRyb2wgPSBjb250cm9sO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZWxhdGVkRm9ybUNvbnRyb2wgJiYgcmVsYXRpb24ubWF0Y2ggPT09IG1hdGNoZXIubWF0Y2gpIHtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgb3BlcmF0b3IgPT09IEFORF9PUEVSQVRPUiAmJiAhaGFzQWxyZWFkeU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgb3BlcmF0b3IgPT09IE9SX09QRVJBVE9SICYmIGhhc0FscmVhZHlNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjb25kaXRpb24udmFsdWUgPT09IHJlbGF0ZWRGb3JtQ29udHJvbC52YWx1ZSB8fCBjb25kaXRpb24uc3RhdHVzID09PSByZWxhdGVkRm9ybUNvbnRyb2wuc3RhdHVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZEZvcm1Db250cm9sICYmIHJlbGF0aW9uLm1hdGNoID09PSBtYXRjaGVyLm9wcG9zaW5nTWF0Y2gpIHtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDAgJiYgb3BlcmF0b3IgPT09IEFORF9PUEVSQVRPUiAmJiBoYXNBbHJlYWR5TWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIG9wZXJhdG9yID09PSBPUl9PUEVSQVRPUiAmJiAhaGFzQWxyZWFkeU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAhKGNvbmRpdGlvbi52YWx1ZSA9PT0gcmVsYXRlZEZvcm1Db250cm9sLnZhbHVlIHx8IGNvbmRpdGlvbi5zdGF0dXMgPT09IHJlbGF0ZWRGb3JtQ29udHJvbC5zdGF0dXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgfSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHN1YnNjcmliZVJlbGF0aW9ucyhtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb2w6IEZvcm1Db250cm9sKTogU3Vic2NyaXB0aW9uW10ge1xuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGb3JtQ29udHJvbHMgPSB0aGlzLmdldFJlbGF0ZWRGb3JtQ29udHJvbHMobW9kZWwsIGdyb3VwKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgICAgICBPYmplY3QudmFsdWVzKHJlbGF0ZWRGb3JtQ29udHJvbHMpLmZvckVhY2gocmVsYXRlZENvbnRyb2wgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZXMgPSByZWxhdGVkQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgocmVsYXRlZENvbnRyb2wudmFsdWUpKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NoYW5nZXMgPSByZWxhdGVkQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHJlbGF0ZWRDb250cm9sLnN0YXR1cykpO1xuXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2gobWVyZ2UodmFsdWVDaGFuZ2VzLCBzdGF0dXNDaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5NQVRDSEVSUy5mb3JFYWNoKG1hdGNoZXIgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uID0gdGhpcy5maW5kUmVsYXRpb25CeU1hdGNoZXIobW9kZWwucmVsYXRpb25zLCBtYXRjaGVyKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVsYXRpb24gIT09IHVuZGVmaW5lZCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNNYXRjaCA9IHRoaXMubWF0Y2hlc0NvbmRpdGlvbihyZWxhdGlvbiwgcmVsYXRlZEZvcm1Db250cm9scywgbWF0Y2hlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVyLm9uQ2hhbmdlKGhhc01hdGNoLCBtb2RlbCwgY29udHJvbCwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbnM7XG4gICAgfVxufVxuIl19

@@ -8,6 +8,6 @@ /**

import { isObject, isString } from "../utils/core.utils";
import { DYNAMIC_VALIDATORS } from "./dynamic-form.validators";
import { DYNAMIC_VALIDATORS } from "./dynamic-form-validators";
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "./dynamic-form.validators";
import * as i2 from "./dynamic-form-validators";
var DynamicFormValidationService = /** @class */ (function () {

@@ -319,2 +319,2 @@ function DynamicFormValidationService(VALIDATORS, ASYNC_VALIDATORS, DYNAMIC_VALIDATORS_MAP) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUlILFVBQVUsRUFDVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdELE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFFN0c7SUFLSSxzQ0FBdUQsVUFBeUIsRUFDbkIsZ0JBQW9DLEVBQ3JDLHNCQUFpRTtRQUZ0RSxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUEyQztJQUM3SCxDQUFDOzs7Ozs7OztJQUdPLHFEQUFjOzs7Ozs7O0lBQXRCLFVBQXVCLGFBQXFCLEVBQUUsYUFBeUIsRUFDaEQsZUFBa0Q7UUFEM0IsOEJBQUEsRUFBQSxvQkFBeUI7UUFDaEQsZ0NBQUEsRUFBQSxrQkFBbUMsSUFBSSxDQUFDLFVBQVU7O1lBRWpFLFdBQXFEO1FBRXpELElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLDhCQUE4QjtZQUUxRSxXQUFXLEdBQUcsQ0FBQyxtQkFBQSxVQUFVLEVBQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBRXBEO2FBQU0sRUFBRSxvQkFBb0I7WUFFekIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLHNCQUFz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QUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Ozs7O0lBR0QsNERBQXFCOzs7O0lBQXJCLFVBQXNCLEtBQVU7UUFFNUIsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkU7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOztnQkF4TEosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7Ozs0Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhOzRDQUNoQyxRQUFRLFlBQUksTUFBTSxTQUFDLG1CQUFtQjtnQkFDaUMsR0FBRyx1QkFBMUUsUUFBUSxZQUFJLE1BQU0sU0FBQyxrQkFBa0I7Ozt1Q0F4QnREO0NBME1DLEFBekxELElBeUxDO1NBdExZLDRCQUE0Qjs7Ozs7O0lBRXpCLGtEQUFvRTs7Ozs7SUFDcEUsd0RBQXFGOzs7OztJQUNyRiw4REFBaUgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEFzeW5jVmFsaWRhdG9yRm4sXG4gICAgVmFsaWRhdG9yRm4sXG4gICAgVmFsaWRhdG9ycyxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5HX0FTWU5DX1ZBTElEQVRPUlNcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljVmFsaWRhdG9yRGVzY3JpcHRvcixcbiAgICBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZ1xufSBmcm9tIFwiLi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC12YWxpZGF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuaW1wb3J0IHsgRFlOQU1JQ19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIFZhbGlkYXRvckZhY3RvcnksIFZhbGlkYXRvcnNUb2tlbiB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS52YWxpZGF0b3JzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgcHJpdmF0ZSBWQUxJREFUT1JTOiBWYWxpZGF0b3JGbltdLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfQVNZTkNfVkFMSURBVE9SUykgcHJpdmF0ZSBBU1lOQ19WQUxJREFUT1JTOiBBc3luY1ZhbGlkYXRvckZuW10sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEWU5BTUlDX1ZBTElEQVRPUlMpIHByaXZhdGUgRFlOQU1JQ19WQUxJREFUT1JTX01BUDogTWFwPHN0cmluZywgVmFsaWRhdG9yIHwgVmFsaWRhdG9yRmFjdG9yeT4pIHtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yTmFtZTogc3RyaW5nLCB2YWxpZGF0b3JBcmdzOiBhbnkgPSBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yc1Rva2VuOiBWYWxpZGF0b3JzVG9rZW4gPSB0aGlzLlZBTElEQVRPUlMpOiBWYWxpZGF0b3IgfCBuZXZlciB7XG5cbiAgICAgICAgbGV0IHZhbGlkYXRvckZuOiBWYWxpZGF0b3JGYWN0b3J5IHwgVmFsaWRhdG9yIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChWYWxpZGF0b3JzLmhhc093blByb3BlcnR5KHZhbGlkYXRvck5hbWUpKSB7IC8vIEJ1aWx0LWluIEFuZ3VsYXIgVmFsaWRhdG9yc1xuXG4gICAgICAgICAgICB2YWxpZGF0b3JGbiA9IChWYWxpZGF0b3JzIGFzIGFueSlbdmFsaWRhdG9yTmFtZV07XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gQ3VzdG9tIFZhbGlkYXRvcnNcblxuICAgICAgICAgICAgaWYgKHRoaXMuRFlOQU1JQ19WQUxJREFUT1JTX01BUCAmJiB0aGlzLkRZTkFNSUNfVkFMSURBVE9SU19NQVAuaGFzKHZhbGlkYXRvck5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yRm4gPSB0aGlzLkRZTkFNSUNfVkFMSURBVE9SU19NQVAuZ2V0KHZhbGlkYXRvck5hbWUpO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkYXRvcnNUb2tlbikge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvckZuID0gdmFsaWRhdG9yc1Rva2VuLmZpbmQodmFsaWRhdG9yID0+IHZhbGlkYXRvci5uYW1lID09PSB2YWxpZGF0b3JOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0b3JGbiA9PT0gdW5kZWZpbmVkKSB7IC8vIHRocm93IHdoZW4gbm8gdmFsaWRhdG9yIGNvdWxkIGJlIHJlc29sdmVkXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYHZhbGlkYXRvciBcIiR7dmFsaWRhdG9yTmFtZX1cIiBpcyBub3QgcHJvdmlkZWQgdmlhIE5HX1ZBTElEQVRPUlMsIE5HX0FTWU5DX1ZBTElEQVRPUlMgb3IgRFlOQU1JQ19GT1JNX1ZBTElEQVRPUlNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0b3JBcmdzICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gKHZhbGlkYXRvckZuIGFzIFZhbGlkYXRvckZhY3RvcnkpKHZhbGlkYXRvckFyZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvckZuIGFzIFZhbGlkYXRvcjtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yRm5zKHZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNUb2tlbjogVmFsaWRhdG9yc1Rva2VuID0gdGhpcy5WQUxJREFUT1JTKTogVmFsaWRhdG9yW10ge1xuXG4gICAgICAgIGxldCB2YWxpZGF0b3JGbnM6IFZhbGlkYXRvcltdID0gW107XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbGlkYXRvcnNDb25maWcpKSB7XG5cbiAgICAgICAgICAgIHZhbGlkYXRvckZucyA9IE9iamVjdC5rZXlzKHZhbGlkYXRvcnNDb25maWcpLm1hcCh2YWxpZGF0b3JDb25maWdLZXkgPT4ge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yQ29uZmlnVmFsdWUgPSAodmFsaWRhdG9yc0NvbmZpZyBhcyBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZylbdmFsaWRhdG9yQ29uZmlnS2V5XTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRhdG9yRGVzY3JpcHRvcih2YWxpZGF0b3JDb25maWdWYWx1ZSkpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gdmFsaWRhdG9yQ29uZmlnVmFsdWUgYXMgRHluYW1pY1ZhbGlkYXRvckRlc2NyaXB0b3I7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4oZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLmFyZ3MsIHZhbGlkYXRvcnNUb2tlbik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yQ29uZmlnS2V5LCB2YWxpZGF0b3JDb25maWdWYWx1ZSwgdmFsaWRhdG9yc1Rva2VuKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvckZucztcbiAgICB9XG5cblxuICAgIHByaXZhdGUgcGFyc2VFcnJvck1lc3NhZ2VDb25maWcodGVtcGxhdGU6IHN0cmluZywgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBlcnJvcjogYW55ID0gbnVsbCk6IHN0cmluZyB7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoL3t7XFxzKiguKz8pXFxzKn19L21nLCAoX21hdGNoOiBzdHJpbmcsIGV4cHJlc3Npb246IHN0cmluZykgPT4ge1xuXG4gICAgICAgICAgICBsZXQgcHJvcGVydHlTb3VyY2U6IGFueSA9IG1vZGVsO1xuICAgICAgICAgICAgbGV0IHByb3BlcnR5TmFtZTogc3RyaW5nID0gZXhwcmVzc2lvbjtcblxuICAgICAgICAgICAgaWYgKGV4cHJlc3Npb24uaW5kZXhPZihcInZhbGlkYXRvci5cIikgPj0gMCAmJiBlcnJvcikge1xuXG4gICAgICAgICAgICAgICAgcHJvcGVydHlTb3VyY2UgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBleHByZXNzaW9uLnJlcGxhY2UoXCJ2YWxpZGF0b3IuXCIsIFwiXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlTb3VyY2VbcHJvcGVydHlOYW1lXSAhPT0gbnVsbCAmJiBwcm9wZXJ0eVNvdXJjZVtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICAgIHByb3BlcnR5U291cmNlW3Byb3BlcnR5TmFtZV0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldFZhbGlkYXRvcih2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHZhbGlkYXRvckFyZ3M6IGFueSA9IG51bGwpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckZuKHZhbGlkYXRvck5hbWUsIHZhbGlkYXRvckFyZ3MpIGFzIFZhbGlkYXRvckZuO1xuICAgIH1cblxuXG4gICAgZ2V0QXN5bmNWYWxpZGF0b3IodmFsaWRhdG9yTmFtZTogc3RyaW5nLCB2YWxpZGF0b3JBcmdzOiBhbnkgPSBudWxsKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckZuKHZhbGlkYXRvck5hbWUsIHZhbGlkYXRvckFyZ3MsIHRoaXMuQVNZTkNfVkFMSURBVE9SUykgYXMgQXN5bmNWYWxpZGF0b3JGbjtcbiAgICB9XG5cblxuICAgIGdldFZhbGlkYXRvcnModmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm5zKHZhbGlkYXRvcnNDb25maWcpIGFzIFZhbGlkYXRvckZuW107XG4gICAgfVxuXG5cbiAgICBnZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyk6IEFzeW5jVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckZucyhhc3luY1ZhbGlkYXRvcnNDb25maWcsIHRoaXMuQVNZTkNfVkFMSURBVE9SUykgYXMgQXN5bmNWYWxpZGF0b3JGbltdO1xuICAgIH1cblxuXG4gICAgdXBkYXRlVmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB8IG51bGwsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIG1vZGVsLnZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzQ29uZmlnO1xuXG4gICAgICAgIGlmICh2YWxpZGF0b3JzQ29uZmlnID09PSBudWxsKSB7XG5cbiAgICAgICAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmdldFZhbGlkYXRvcnModmFsaWRhdG9yc0NvbmZpZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG5cbiAgICB1cGRhdGVBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB8IG51bGwsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgbW9kZWwuYXN5bmNWYWxpZGF0b3JzID0gYXN5bmNWYWxpZGF0b3JzQ29uZmlnO1xuXG4gICAgICAgIGlmIChhc3luY1ZhbGlkYXRvcnNDb25maWcgPT09IG51bGwpIHtcblxuICAgICAgICAgICAgY29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLmdldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuXG4gICAgY3JlYXRlRXJyb3JNZXNzYWdlcyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZ1tdIHtcblxuICAgICAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAobW9kZWwuaGFzRXJyb3JNZXNzYWdlcykge1xuXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlc0NvbmZpZyA9IG1vZGVsLmVycm9yTWVzc2FnZXMgYXMgRHluYW1pY1ZhbGlkYXRvcnNDb25maWc7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzIHx8IHt9KS5mb3JFYWNoKHZhbGlkYXRpb25FcnJvcktleSA9PiB7XG5cbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZUtleSA9IHZhbGlkYXRpb25FcnJvcktleTtcblxuICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uRXJyb3JLZXkgPT09IFwibWlubGVuZ3RoXCIgfHwgdmFsaWRhdGlvbkVycm9yS2V5ID09PSBcIm1heGxlbmd0aFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VLZXkgPSBtZXNzYWdlS2V5LnJlcGxhY2UoXCJsZW5ndGhcIiwgXCJMZW5ndGhcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VzQ29uZmlnLmhhc093blByb3BlcnR5KG1lc3NhZ2VLZXkpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gY29udHJvbC5nZXRFcnJvcih2YWxpZGF0aW9uRXJyb3JLZXkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlVGVtcGxhdGUgPSBtZXNzYWdlc0NvbmZpZ1ttZXNzYWdlS2V5XSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaCh0aGlzLnBhcnNlRXJyb3JNZXNzYWdlQ29uZmlnKG1lc3NhZ2VUZW1wbGF0ZSwgbW9kZWwsIHZhbGlkYXRpb25FcnJvcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIH1cblxuXG4gICAgaXNGb3JtSG9vayh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgJiYgW1wiYmx1clwiLCBcImNoYW5nZVwiLCBcInN1Ym1pdFwiXS5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gICAgfVxuXG5cbiAgICBpc1ZhbGlkYXRvckRlc2NyaXB0b3IodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuXG4gICAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eShcIm5hbWVcIikgJiYgdmFsdWUuaGFzT3duUHJvcGVydHkoXCJhcmdzXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUlILFVBQVUsRUFDVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdELE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFFN0c7SUFLSSxzQ0FBdUQsVUFBeUIsRUFDbkIsZ0JBQW9DLEVBQ3JDLHNCQUFpRTtRQUZ0RSxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUEyQztJQUM3SCxDQUFDOzs7Ozs7OztJQUdPLHFEQUFjOzs7Ozs7O0lBQXRCLFVBQXVCLGFBQXFCLEVBQUUsYUFBeUIsRUFDaEQsZUFBa0Q7UUFEM0IsOEJBQUEsRUFBQSxvQkFBeUI7UUFDaEQsZ0NBQUEsRUFBQSxrQkFBbUMsSUFBSSxDQUFDLFVBQVU7O1lBRWpFLFdBQXFEO1FBRXpELElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLDhCQUE4QjtZQUUxRSxXQUFXLEdBQUcsQ0FBQyxtQkFBQSxVQUFVLEVBQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBRXBEO2FBQU0sRUFBRSxvQkFBb0I7WUFFekIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLHNCQUFz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QUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Ozs7O0lBR0QsNERBQXFCOzs7O0lBQXJCLFVBQXNCLEtBQVU7UUFFNUIsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkU7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOztnQkF4TEosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7Ozs0Q0FHZ0IsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhOzRDQUNoQyxRQUFRLFlBQUksTUFBTSxTQUFDLG1CQUFtQjtnQkFDaUMsR0FBRyx1QkFBMUUsUUFBUSxZQUFJLE1BQU0sU0FBQyxrQkFBa0I7Ozt1Q0F4QnREO0NBME1DLEFBekxELElBeUxDO1NBdExZLDRCQUE0Qjs7Ozs7O0lBRXpCLGtEQUFvRTs7Ozs7SUFDcEUsd0RBQXFGOzs7OztJQUNyRiw4REFBaUgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEFzeW5jVmFsaWRhdG9yRm4sXG4gICAgVmFsaWRhdG9yRm4sXG4gICAgVmFsaWRhdG9ycyxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5HX0FTWU5DX1ZBTElEQVRPUlNcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljVmFsaWRhdG9yRGVzY3JpcHRvcixcbiAgICBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZ1xufSBmcm9tIFwiLi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC12YWxpZGF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvY29yZS51dGlsc1wiO1xuaW1wb3J0IHsgRFlOQU1JQ19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIFZhbGlkYXRvckZhY3RvcnksIFZhbGlkYXRvcnNUb2tlbiB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS12YWxpZGF0b3JzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgcHJpdmF0ZSBWQUxJREFUT1JTOiBWYWxpZGF0b3JGbltdLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfQVNZTkNfVkFMSURBVE9SUykgcHJpdmF0ZSBBU1lOQ19WQUxJREFUT1JTOiBBc3luY1ZhbGlkYXRvckZuW10sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEWU5BTUlDX1ZBTElEQVRPUlMpIHByaXZhdGUgRFlOQU1JQ19WQUxJREFUT1JTX01BUDogTWFwPHN0cmluZywgVmFsaWRhdG9yIHwgVmFsaWRhdG9yRmFjdG9yeT4pIHtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yTmFtZTogc3RyaW5nLCB2YWxpZGF0b3JBcmdzOiBhbnkgPSBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yc1Rva2VuOiBWYWxpZGF0b3JzVG9rZW4gPSB0aGlzLlZBTElEQVRPUlMpOiBWYWxpZGF0b3IgfCBuZXZlciB7XG5cbiAgICAgICAgbGV0IHZhbGlkYXRvckZuOiBWYWxpZGF0b3JGYWN0b3J5IHwgVmFsaWRhdG9yIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChWYWxpZGF0b3JzLmhhc093blByb3BlcnR5KHZhbGlkYXRvck5hbWUpKSB7IC8vIEJ1aWx0LWluIEFuZ3VsYXIgVmFsaWRhdG9yc1xuXG4gICAgICAgICAgICB2YWxpZGF0b3JGbiA9IChWYWxpZGF0b3JzIGFzIGFueSlbdmFsaWRhdG9yTmFtZV07XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gQ3VzdG9tIFZhbGlkYXRvcnNcblxuICAgICAgICAgICAgaWYgKHRoaXMuRFlOQU1JQ19WQUxJREFUT1JTX01BUCAmJiB0aGlzLkRZTkFNSUNfVkFMSURBVE9SU19NQVAuaGFzKHZhbGlkYXRvck5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yRm4gPSB0aGlzLkRZTkFNSUNfVkFMSURBVE9SU19NQVAuZ2V0KHZhbGlkYXRvck5hbWUpO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbGlkYXRvcnNUb2tlbikge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvckZuID0gdmFsaWRhdG9yc1Rva2VuLmZpbmQodmFsaWRhdG9yID0+IHZhbGlkYXRvci5uYW1lID09PSB2YWxpZGF0b3JOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0b3JGbiA9PT0gdW5kZWZpbmVkKSB7IC8vIHRocm93IHdoZW4gbm8gdmFsaWRhdG9yIGNvdWxkIGJlIHJlc29sdmVkXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYHZhbGlkYXRvciBcIiR7dmFsaWRhdG9yTmFtZX1cIiBpcyBub3QgcHJvdmlkZWQgdmlhIE5HX1ZBTElEQVRPUlMsIE5HX0FTWU5DX1ZBTElEQVRPUlMgb3IgRFlOQU1JQ19GT1JNX1ZBTElEQVRPUlNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0b3JBcmdzICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gKHZhbGlkYXRvckZuIGFzIFZhbGlkYXRvckZhY3RvcnkpKHZhbGlkYXRvckFyZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvckZuIGFzIFZhbGlkYXRvcjtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yRm5zKHZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNUb2tlbjogVmFsaWRhdG9yc1Rva2VuID0gdGhpcy5WQUxJREFUT1JTKTogVmFsaWRhdG9yW10ge1xuXG4gICAgICAgIGxldCB2YWxpZGF0b3JGbnM6IFZhbGlkYXRvcltdID0gW107XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbGlkYXRvcnNDb25maWcpKSB7XG5cbiAgICAgICAgICAgIHZhbGlkYXRvckZucyA9IE9iamVjdC5rZXlzKHZhbGlkYXRvcnNDb25maWcpLm1hcCh2YWxpZGF0b3JDb25maWdLZXkgPT4ge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yQ29uZmlnVmFsdWUgPSAodmFsaWRhdG9yc0NvbmZpZyBhcyBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZylbdmFsaWRhdG9yQ29uZmlnS2V5XTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRhdG9yRGVzY3JpcHRvcih2YWxpZGF0b3JDb25maWdWYWx1ZSkpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gdmFsaWRhdG9yQ29uZmlnVmFsdWUgYXMgRHluYW1pY1ZhbGlkYXRvckRlc2NyaXB0b3I7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4oZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLmFyZ3MsIHZhbGlkYXRvcnNUb2tlbik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm4odmFsaWRhdG9yQ29uZmlnS2V5LCB2YWxpZGF0b3JDb25maWdWYWx1ZSwgdmFsaWRhdG9yc1Rva2VuKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvckZucztcbiAgICB9XG5cblxuICAgIHByaXZhdGUgcGFyc2VFcnJvck1lc3NhZ2VDb25maWcodGVtcGxhdGU6IHN0cmluZywgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBlcnJvcjogYW55ID0gbnVsbCk6IHN0cmluZyB7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoL3t7XFxzKiguKz8pXFxzKn19L21nLCAoX21hdGNoOiBzdHJpbmcsIGV4cHJlc3Npb246IHN0cmluZykgPT4ge1xuXG4gICAgICAgICAgICBsZXQgcHJvcGVydHlTb3VyY2U6IGFueSA9IG1vZGVsO1xuICAgICAgICAgICAgbGV0IHByb3BlcnR5TmFtZTogc3RyaW5nID0gZXhwcmVzc2lvbjtcblxuICAgICAgICAgICAgaWYgKGV4cHJlc3Npb24uaW5kZXhPZihcInZhbGlkYXRvci5cIikgPj0gMCAmJiBlcnJvcikge1xuXG4gICAgICAgICAgICAgICAgcHJvcGVydHlTb3VyY2UgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBleHByZXNzaW9uLnJlcGxhY2UoXCJ2YWxpZGF0b3IuXCIsIFwiXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlTb3VyY2VbcHJvcGVydHlOYW1lXSAhPT0gbnVsbCAmJiBwcm9wZXJ0eVNvdXJjZVtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICAgIHByb3BlcnR5U291cmNlW3Byb3BlcnR5TmFtZV0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldFZhbGlkYXRvcih2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHZhbGlkYXRvckFyZ3M6IGFueSA9IG51bGwpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckZuKHZhbGlkYXRvck5hbWUsIHZhbGlkYXRvckFyZ3MpIGFzIFZhbGlkYXRvckZuO1xuICAgIH1cblxuXG4gICAgZ2V0QXN5bmNWYWxpZGF0b3IodmFsaWRhdG9yTmFtZTogc3RyaW5nLCB2YWxpZGF0b3JBcmdzOiBhbnkgPSBudWxsKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckZuKHZhbGlkYXRvck5hbWUsIHZhbGlkYXRvckFyZ3MsIHRoaXMuQVNZTkNfVkFMSURBVE9SUykgYXMgQXN5bmNWYWxpZGF0b3JGbjtcbiAgICB9XG5cblxuICAgIGdldFZhbGlkYXRvcnModmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRm5zKHZhbGlkYXRvcnNDb25maWcpIGFzIFZhbGlkYXRvckZuW107XG4gICAgfVxuXG5cbiAgICBnZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyk6IEFzeW5jVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckZucyhhc3luY1ZhbGlkYXRvcnNDb25maWcsIHRoaXMuQVNZTkNfVkFMSURBVE9SUykgYXMgQXN5bmNWYWxpZGF0b3JGbltdO1xuICAgIH1cblxuXG4gICAgdXBkYXRlVmFsaWRhdG9ycyh2YWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB8IG51bGwsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIG1vZGVsLnZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzQ29uZmlnO1xuXG4gICAgICAgIGlmICh2YWxpZGF0b3JzQ29uZmlnID09PSBudWxsKSB7XG5cbiAgICAgICAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmdldFZhbGlkYXRvcnModmFsaWRhdG9yc0NvbmZpZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG5cbiAgICB1cGRhdGVBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB8IG51bGwsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgbW9kZWwuYXN5bmNWYWxpZGF0b3JzID0gYXN5bmNWYWxpZGF0b3JzQ29uZmlnO1xuXG4gICAgICAgIGlmIChhc3luY1ZhbGlkYXRvcnNDb25maWcgPT09IG51bGwpIHtcblxuICAgICAgICAgICAgY29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLmdldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnNDb25maWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuXG4gICAgY3JlYXRlRXJyb3JNZXNzYWdlcyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIG1vZGVsOiBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCk6IHN0cmluZ1tdIHtcblxuICAgICAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAobW9kZWwuaGFzRXJyb3JNZXNzYWdlcykge1xuXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlc0NvbmZpZyA9IG1vZGVsLmVycm9yTWVzc2FnZXMgYXMgRHluYW1pY1ZhbGlkYXRvcnNDb25maWc7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzIHx8IHt9KS5mb3JFYWNoKHZhbGlkYXRpb25FcnJvcktleSA9PiB7XG5cbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZUtleSA9IHZhbGlkYXRpb25FcnJvcktleTtcblxuICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uRXJyb3JLZXkgPT09IFwibWlubGVuZ3RoXCIgfHwgdmFsaWRhdGlvbkVycm9yS2V5ID09PSBcIm1heGxlbmd0aFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VLZXkgPSBtZXNzYWdlS2V5LnJlcGxhY2UoXCJsZW5ndGhcIiwgXCJMZW5ndGhcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VzQ29uZmlnLmhhc093blByb3BlcnR5KG1lc3NhZ2VLZXkpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gY29udHJvbC5nZXRFcnJvcih2YWxpZGF0aW9uRXJyb3JLZXkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlVGVtcGxhdGUgPSBtZXNzYWdlc0NvbmZpZ1ttZXNzYWdlS2V5XSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaCh0aGlzLnBhcnNlRXJyb3JNZXNzYWdlQ29uZmlnKG1lc3NhZ2VUZW1wbGF0ZSwgbW9kZWwsIHZhbGlkYXRpb25FcnJvcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIH1cblxuXG4gICAgaXNGb3JtSG9vayh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgJiYgW1wiYmx1clwiLCBcImNoYW5nZVwiLCBcInN1Ym1pdFwiXS5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gICAgfVxuXG5cbiAgICBpc1ZhbGlkYXRvckRlc2NyaXB0b3IodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuXG4gICAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eShcIm5hbWVcIikgJiYgdmFsdWUuaGFzT3duUHJvcGVydHkoXCJhcmdzXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==

@@ -27,6 +27,10 @@ /**

import { isString } from "../utils/core.utils";
import { DynamicFormComponent } from "../component/dynamic-form.component";
import { DynamicFormComponentService } from "./dynamic-form-component.service";
import * as i0 from "@angular/core";
import * as i1 from "./dynamic-form-validation.service";
import * as i1 from "./dynamic-form-component.service";
import * as i2 from "./dynamic-form-validation.service";
var DynamicFormService = /** @class */ (function () {
function DynamicFormService(validationService) {
function DynamicFormService(componentService, validationService) {
this.componentService = componentService;
this.validationService = validationService;

@@ -425,2 +429,3 @@ }

/**
* @template T
* @param {?} id

@@ -431,2 +436,3 @@ * @param {?} formModel

DynamicFormService.prototype.findModelById = /**
* @template T
* @param {?} id

@@ -437,5 +443,6 @@ * @param {?} formModel

function (id, formModel) {
return this.findById(id, formModel);
return (/** @type {?} */ (this.findById(id, formModel)));
};
/**
* @template T
* @param {?} model

@@ -446,2 +453,3 @@ * @param {?} group

DynamicFormService.prototype.findControlByModel = /**
* @template T
* @param {?} model

@@ -452,5 +460,36 @@ * @param {?} group

function (model, group) {
return group.root.get(this.getPath(model, true));
return (/** @type {?} */ (group.root.get(this.getPath(model, true))));
};
/**
* @param {?=} formComponent
* @return {?}
*/
DynamicFormService.prototype.detectChanges = /**
* @param {?=} formComponent
* @return {?}
*/
function (formComponent) {
var e_2, _a;
if (formComponent instanceof DynamicFormComponent) {
formComponent.markForCheck();
formComponent.detectChanges();
}
else {
try {
for (var _b = tslib_1.__values(this.componentService.getForms()), _c = _b.next(); !_c.done; _c = _b.next()) {
var form = _c.value;
form.markForCheck();
form.detectChanges();
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_2) throw e_2.error; }
}
}
};
/**
* @param {?} json

@@ -565,5 +604,6 @@ * @return {?}

DynamicFormService.ctorParameters = function () { return [
{ type: DynamicFormComponentService },
{ type: DynamicFormValidationService }
]; };
/** @nocollapse */ DynamicFormService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DynamicFormService_Factory() { return new DynamicFormService(i0.ɵɵinject(i1.DynamicFormValidationService)); }, token: DynamicFormService, providedIn: "root" });
/** @nocollapse */ DynamicFormService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DynamicFormService_Factory() { return new DynamicFormService(i0.ɵɵinject(i1.DynamicFormComponentService), i0.ɵɵinject(i2.DynamicFormValidationService)); }, token: DynamicFormService, providedIn: "root" });
return DynamicFormService;

@@ -577,4 +617,9 @@ }());

*/
DynamicFormService.prototype.componentService;
/**
* @type {?}
* @private
*/
DynamicFormService.prototype.validationService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDN0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0SCxPQUFPLEVBQ0gsd0NBQXdDLEVBQ3hDLHlCQUF5QixFQUM1QixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BILE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsdUJBQXVCLEVBQzFCLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUNILG9DQUFvQyxFQUNwQyxzQkFBc0IsRUFDekIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RyxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHNCQUFzQixFQUN6QixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hHLE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsc0JBQXNCLEVBQ3pCLE1BQU0sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGtCQUFr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b0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDdEQsTUFBTTtnQkFFVixLQUFLLGtDQUFrQztvQkFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN4RCxNQUFNO2dCQUVWLEtBQUssb0NBQW9DO29CQUNyQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzFELE1BQU07Z0JBRVY7b0JBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBbUUsS0FBSyxDQUFDLEVBQUUsT0FBRyxDQUFDLENBQUM7YUFDdkc7UUFDTCxDQUFDLEVBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7O2dCQXRYSixVQUFVLFNBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzs7O2dCQVRRLDRCQUE0Qjs7OzZCQTNDckM7Q0F5YUMsQUF2WEQsSUF1WEM7U0FwWFksa0JBQWtCOzs7Ozs7SUFFZiwrQ0FBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xPcHRpb25zIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgRm9ybUhvb2tzIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS12YWx1ZS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQXJyYXlNb2RlbCxcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZLFxuICAgIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9mb3JtLWFycmF5L2R5bmFtaWMtZm9ybS1hcnJheS5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9HUk9VUCwgRHluYW1pY0Zvcm1Hcm91cE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tZ3JvdXAvZHluYW1pYy1mb3JtLWdyb3VwLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1hfR1JPVVAsXG4gICAgRHluYW1pY0NoZWNrYm94R3JvdXBNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWCwgRHluYW1pY0NoZWNrYm94TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NPTE9SUElDS0VSLFxuICAgIER5bmFtaWNDb2xvclBpY2tlck1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9jb2xvcnBpY2tlci9keW5hbWljLWNvbG9ycGlja2VyLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfREFURVBJQ0tFUixcbiAgICBEeW5hbWljRGF0ZVBpY2tlck1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9kYXRlcGlja2VyL2R5bmFtaWMtZGF0ZXBpY2tlci5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9FRElUT1IsIER5bmFtaWNFZGl0b3JNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9lZGl0b3IvZHluYW1pYy1lZGl0b3IubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9GSUxFX1VQTE9BRCxcbiAgICBEeW5hbWljRmlsZVVwbG9hZE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9maWxlLXVwbG9hZC9keW5hbWljLWZpbGUtdXBsb2FkLm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVULCBEeW5hbWljSW5wdXRNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9pbnB1dC9keW5hbWljLWlucHV0Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFESU9fR1JPVVAsXG4gICAgRHluYW1pY1JhZGlvR3JvdXBNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvcmFkaW8vZHluYW1pYy1yYWRpby1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9SQVRJTkcsIER5bmFtaWNSYXRpbmdNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9yYXRpbmcvZHluYW1pYy1yYXRpbmcubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU0VMRUNULCBEeW5hbWljU2VsZWN0TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1NMSURFUiwgRHluYW1pY1NsaWRlck1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3NsaWRlci9keW5hbWljLXNsaWRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TV0lUQ0gsIER5bmFtaWNTd2l0Y2hNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9zd2l0Y2gvZHluYW1pYy1zd2l0Y2gubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVEVYVEFSRUEsIER5bmFtaWNUZXh0QXJlYU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9USU1FUElDS0VSLFxuICAgIER5bmFtaWNUaW1lUGlja2VyTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL3RpbWVwaWNrZXIvZHluYW1pYy10aW1lcGlja2VyLm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2RlbCwgRHluYW1pY1VuaW9uRm9ybU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY1BhdGhhYmxlIH0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcGF0aC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfSBmcm9tIFwiLi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC12YWxpZGF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBtYXNrRnJvbVN0cmluZywgcGFyc2VSZXZpdmVyIH0gZnJvbSBcIi4uL3V0aWxzL2pzb24udXRpbHNcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlKSB7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGNyZWF0ZUFic3RyYWN0Q29udHJvbE9wdGlvbnModmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfCBudWxsID0gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN5bmNWYWxpZGF0b3JzQ29uZmlnOiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB8IG51bGwgPSBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVPbjogRm9ybUhvb2tzIHwgbnVsbCA9IG51bGwpOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zIHtcblxuICAgICAgICByZXR1cm4ge1xuXG4gICAgICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IGFzeW5jVmFsaWRhdG9yc0NvbmZpZyAhPT0gbnVsbCA/IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9yc0NvbmZpZykgOiBudWxsLFxuXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzQ29uZmlnICE9PSBudWxsID8gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnNDb25maWcpIDogbnVsbCxcblxuICAgICAgICAgICAgdXBkYXRlT246IHVwZGF0ZU9uICE9PSBudWxsICYmIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuaXNGb3JtSG9vayh1cGRhdGVPbikgPyB1cGRhdGVPbiA6IFwiY2hhbmdlXCJcbiAgICAgICAgfTtcbiAgICB9XG5cblxuICAgIGNyZWF0ZUZvcm1BcnJheShmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogRm9ybUFycmF5IHtcblxuICAgICAgICBjb25zdCBjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gPSBbXTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhmb3JtQXJyYXlNb2RlbC52YWxpZGF0b3JzLCBmb3JtQXJyYXlNb2RlbC5hc3luY1ZhbGlkYXRvcnMsXG4gICAgICAgICAgICBmb3JtQXJyYXlNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm1BcnJheU1vZGVsLnNpemU7IGluZGV4KyspIHtcblxuICAgICAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IGZvcm1BcnJheU1vZGVsLmdldChpbmRleCk7XG4gICAgICAgICAgICBjb25zdCBncm91cE9wdGlvbnMgPSB0aGlzLmNyZWF0ZUFic3RyYWN0Q29udHJvbE9wdGlvbnMoZm9ybUFycmF5TW9kZWwuZ3JvdXBWYWxpZGF0b3JzLFxuICAgICAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLmdyb3VwQXN5bmNWYWxpZGF0b3JzLCBmb3JtQXJyYXlNb2RlbC51cGRhdGVPbik7XG5cbiAgICAgICAgICAgIGNvbnRyb2xzLnB1c2godGhpcy5jcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlbC5ncm91cCwgZ3JvdXBPcHRpb25zLCBncm91cE1vZGVsKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShjb250cm9scywgb3B0aW9ucyk7XG4gICAgfVxuXG5cbiAgICBjcmVhdGVGb3JtR3JvdXAoZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsLCBvcHRpb25zOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zIHwgbnVsbCA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogRHluYW1pY1BhdGhhYmxlIHwgbnVsbCA9IG51bGwpOiBGb3JtR3JvdXAge1xuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xzOiB7IFtjb250cm9sSWQ6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbDsgfSA9IHt9O1xuXG4gICAgICAgIGZvcm1Nb2RlbC5mb3JFYWNoKG1vZGVsID0+IHtcblxuICAgICAgICAgICAgbW9kZWwucGFyZW50ID0gcGFyZW50O1xuXG4gICAgICAgICAgICBzd2l0Y2ggKG1vZGVsLnR5cGUpIHtcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWTpcblxuICAgICAgICAgICAgICAgICAgICBjb250cm9sc1ttb2RlbC5pZF0gPSB0aGlzLmNyZWF0ZUZvcm1BcnJheShtb2RlbCBhcyBEeW5hbWljRm9ybUFycmF5TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9HUk9VUDpcbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1hfR1JPVVA6XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNGb3JtR3JvdXBNb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gdGhpcy5jcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKGdyb3VwTW9kZWwudmFsaWRhdG9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwTW9kZWwuYXN5bmNWYWxpZGF0b3JzLCBncm91cE1vZGVsLnVwZGF0ZU9uKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250cm9sc1ttb2RlbC5pZF0gPSB0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBncm91cE9wdGlvbnMsIGdyb3VwTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbE1vZGVsID0gbW9kZWwgYXMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sU3RhdGUgPSB7dmFsdWU6IGNvbnRyb2xNb2RlbC52YWx1ZSwgZGlzYWJsZWQ6IGNvbnRyb2xNb2RlbC5kaXNhYmxlZH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xPcHRpb25zID0gdGhpcy5jcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKGNvbnRyb2xNb2RlbC52YWxpZGF0b3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE1vZGVsLmFzeW5jVmFsaWRhdG9ycywgY29udHJvbE1vZGVsLnVwZGF0ZU9uKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250cm9sc1ttb2RlbC5pZF0gPSBuZXcgRm9ybUNvbnRyb2woY29udHJvbFN0YXRlLCBjb250cm9sT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGNvbnRyb2xzLCBvcHRpb25zKTtcbiAgICB9XG5cblxuICAgIGdldFBhdGhTZWdtZW50KG1vZGVsOiBEeW5hbWljUGF0aGFibGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCA/IG1vZGVsLmluZGV4LnRvU3RyaW5nKCkgOiAobW9kZWwgYXMgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpLmlkO1xuICAgIH1cblxuXG4gICAgZ2V0UGF0aChtb2RlbDogRHluYW1pY1BhdGhhYmxlLCBqb2luOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmdbXSB8IHN0cmluZyB7XG5cbiAgICAgICAgY29uc3QgcGF0aCA9IFt0aGlzLmdldFBhdGhTZWdtZW50KG1vZGVsKV07XG4gICAgICAgIGxldCBwYXJlbnQgPSBtb2RlbC5wYXJlbnQ7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudCkge1xuXG4gICAgICAgICAgICBwYXRoLnVuc2hpZnQodGhpcy5nZXRQYXRoU2VnbWVudChwYXJlbnQpKTtcbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gam9pbiA/IHBhdGguam9pbihcIi5cIikgOiBwYXRoO1xuICAgIH1cblxuXG4gICAgYWRkRm9ybUdyb3VwQ29udHJvbChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZm9ybU1vZGVsOiBEeW5hbWljVW5pb25Gb3JtTW9kZWwsIC4uLm1vZGVsczogRHluYW1pY0Zvcm1Nb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmb3JtTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgdGhpcy5pbnNlcnRGb3JtR3JvdXBDb250cm9sKGZvcm1Nb2RlbC5zaXplKCksIGZvcm1Hcm91cCwgZm9ybU1vZGVsLCAuLi5tb2RlbHMpO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZm9ybU1vZGVsIGFzIER5bmFtaWNGb3JtTW9kZWw7XG4gICAgICAgICAgICB0aGlzLmluc2VydEZvcm1Hcm91cENvbnRyb2wobW9kZWwubGVuZ3RoLCBmb3JtR3JvdXAsIG1vZGVsLCAuLi5tb2RlbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBtb3ZlRm9ybUdyb3VwQ29udHJvbChpbmRleDogbnVtYmVyLCBzdGVwOiBudW1iZXIsIGZvcm1Nb2RlbDogRHluYW1pY1VuaW9uRm9ybU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGZvcm1Nb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xuXG4gICAgICAgICAgICBmb3JtTW9kZWwubW92ZShpbmRleCwgc3RlcCk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSBmb3JtTW9kZWwgYXMgRHluYW1pY0Zvcm1Nb2RlbDtcbiAgICAgICAgICAgIG1vZGVsLnNwbGljZShpbmRleCArIHN0ZXAsIDAsIC4uLm1vZGVsLnNwbGljZShpbmRleCwgMSkpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBpbnNlcnRGb3JtR3JvdXBDb250cm9sKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmb3JtTW9kZWw6IER5bmFtaWNVbmlvbkZvcm1Nb2RlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm1vZGVsczogRHluYW1pY0Zvcm1Nb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGZvcm1Nb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCA/IGZvcm1Nb2RlbCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jcmVhdGVGb3JtR3JvdXAobW9kZWxzLCBudWxsLCBwYXJlbnQpLmNvbnRyb2xzO1xuXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sTmFtZSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IG1vZGVsc1tpZHhdO1xuXG4gICAgICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG4gICAgICAgICAgICAgICAgZm9ybU1vZGVsLmluc2VydChpbmRleCwgY29udHJvbE1vZGVsKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAoZm9ybU1vZGVsIGFzIER5bmFtaWNGb3JtTW9kZWwpLnNwbGljZShpbmRleCwgMCwgY29udHJvbE1vZGVsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woY29udHJvbE5hbWUsIGNvbnRyb2xzW2NvbnRyb2xOYW1lXSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgcmVtb3ZlRm9ybUdyb3VwQ29udHJvbChpbmRleDogbnVtYmVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZm9ybU1vZGVsOiBEeW5hbWljVW5pb25Gb3JtTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGZvcm1Nb2RlbC5nZXQoaW5kZXgpLmlkKTtcbiAgICAgICAgICAgIGZvcm1Nb2RlbC5yZW1vdmUoaW5kZXgpO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGZvcm1Nb2RlbFtpbmRleF0uaWQpO1xuICAgICAgICAgICAgKGZvcm1Nb2RlbCBhcyBEeW5hbWljRm9ybU1vZGVsKS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBhZGRGb3JtQXJyYXlHcm91cChmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IGdyb3VwTW9kZWwgPSBmb3JtQXJyYXlNb2RlbC5hZGRHcm91cCgpO1xuXG4gICAgICAgIGZvcm1BcnJheS5wdXNoKHRoaXMuY3JlYXRlRm9ybUdyb3VwKGdyb3VwTW9kZWwuZ3JvdXAsIG51bGwsIGdyb3VwTW9kZWwpKTtcbiAgICB9XG5cblxuICAgIGluc2VydEZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IGZvcm1BcnJheU1vZGVsLmluc2VydEdyb3VwKGluZGV4KTtcblxuICAgICAgICBmb3JtQXJyYXkuaW5zZXJ0KGluZGV4LCB0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBudWxsLCBncm91cE1vZGVsKSk7XG4gICAgfVxuXG5cbiAgICBtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgc3RlcDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gaW5kZXggKyBzdGVwO1xuICAgICAgICBjb25zdCBtb3ZlVXAgPSBzdGVwID49IDA7XG5cbiAgICAgICAgaWYgKChpbmRleCA+PSAwICYmIGluZGV4IDwgZm9ybUFycmF5TW9kZWwuc2l6ZSkgJiYgKG5ld0luZGV4ID49IDAgJiYgbmV3SW5kZXggPCBmb3JtQXJyYXlNb2RlbC5zaXplKSkge1xuXG4gICAgICAgICAgICBjb25zdCBtb3ZpbmdHcm91cHM6IEFic3RyYWN0Q29udHJvbFtdID0gW107XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBtb3ZlVXAgPyBpbmRleCA6IG5ld0luZGV4OyBpIDw9IChtb3ZlVXAgPyBuZXdJbmRleCA6IGluZGV4KTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbW92aW5nR3JvdXBzLnB1c2goZm9ybUFycmF5LmF0KGkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW92aW5nR3JvdXBzLmZvckVhY2goKGZvcm1Db250cm9sLCBpZHgpID0+IHtcblxuICAgICAgICAgICAgICAgIGxldCBwb3NpdGlvbjtcblxuICAgICAgICAgICAgICAgIGlmIChtb3ZlVXApIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBpZHggPT09IDAgPyBuZXdJbmRleCA6IGluZGV4ICsgaWR4IC0gMTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaWR4ID09PSBtb3ZpbmdHcm91cHMubGVuZ3RoIC0gMSA/IG5ld0luZGV4IDogbmV3SW5kZXggKyBpZHggKyAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvcm1BcnJheS5zZXRDb250cm9sKHBvc2l0aW9uLCBmb3JtQ29udHJvbCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZm9ybUFycmF5TW9kZWwubW92ZUdyb3VwKGluZGV4LCBzdGVwKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmb3JtIGFycmF5IGdyb3VwIGNhbm5vdCBiZSBtb3ZlZCBkdWUgdG8gaW5kZXggb3IgbmV3IGluZGV4IGJlaW5nIG91dCBvZiBib3VuZHNgKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcmVtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgICBmb3JtQXJyYXlNb2RlbC5yZW1vdmVHcm91cChpbmRleCk7XG4gICAgfVxuXG5cbiAgICBjbGVhckZvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGZvcm1BcnJheS5jbGVhcigpO1xuICAgICAgICBmb3JtQXJyYXlNb2RlbC5jbGVhcigpO1xuICAgIH1cblxuXG4gICAgZmluZEJ5SWQoaWQ6IHN0cmluZywgZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsKTogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfCBudWxsIHtcblxuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcblxuICAgICAgICBjb25zdCBmaW5kQnlJZEZuID0gKG1vZGVsSWQ6IHN0cmluZywgZ3JvdXBNb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCk6IHZvaWQgPT4ge1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2xNb2RlbCBvZiBncm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbE1vZGVsLmlkID09PSBtb2RlbElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnRyb2xNb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xNb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xuICAgICAgICAgICAgICAgICAgICBmaW5kQnlJZEZuKG1vZGVsSWQsIChjb250cm9sTW9kZWwgYXMgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKS5ncm91cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGZpbmRCeUlkRm4oaWQsIGZvcm1Nb2RlbCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuICAgIGZpbmRNb2RlbEJ5SWQoaWQ6IHN0cmluZywgZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsKTogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEJ5SWQoaWQsIGZvcm1Nb2RlbCk7XG4gICAgfVxuXG5cbiAgICBmaW5kQ29udHJvbEJ5TW9kZWwobW9kZWw6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBncm91cDogRm9ybUdyb3VwKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBncm91cC5yb290LmdldCh0aGlzLmdldFBhdGgobW9kZWwsIHRydWUpKTtcbiAgICB9XG5cblxuICAgIGZyb21KU09OKGpzb246IHN0cmluZyB8IG9iamVjdFtdKTogRHluYW1pY0Zvcm1Nb2RlbCB8IG5ldmVyIHtcblxuICAgICAgICBjb25zdCBmb3JtTW9kZWxKU09OID0gaXNTdHJpbmcoanNvbikgPyBKU09OLnBhcnNlKGpzb24sIHBhcnNlUmV2aXZlcikgOiBqc29uO1xuICAgICAgICBjb25zdCBmb3JtTW9kZWw6IER5bmFtaWNGb3JtTW9kZWwgPSBbXTtcblxuICAgICAgICBmb3JtTW9kZWxKU09OLmZvckVhY2goKG1vZGVsOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgbGF5b3V0ID0gbW9kZWwubGF5b3V0IHx8IG51bGw7XG5cbiAgICAgICAgICAgIHN3aXRjaCAobW9kZWwudHlwZSkge1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtQXJyYXlNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNGb3JtQXJyYXlNb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtQXJyYXlNb2RlbC5ncm91cHMpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLmdyb3Vwcy5mb3JFYWNoKChncm91cE1vZGVsOiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwTW9kZWwuZ3JvdXAgPSB0aGlzLmZyb21KU09OKGdyb3VwTW9kZWwuZ3JvdXApIGFzIER5bmFtaWNGb3JtTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLmdyb3VwRmFjdG9yeSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZyb21KU09OKGZvcm1BcnJheU1vZGVsLmdyb3VwUHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0Zvcm1BcnJheU1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1g6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljQ2hlY2tib3hNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YX0dST1VQOlxuICAgICAgICAgICAgICAgICAgICBtb2RlbC5ncm91cCA9IHRoaXMuZnJvbUpTT04obW9kZWwuZ3JvdXApIGFzIER5bmFtaWNDaGVja2JveE1vZGVsW107XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljQ2hlY2tib3hHcm91cE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ09MT1JQSUNLRVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljQ29sb3JQaWNrZXJNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0RBVEVQSUNLRVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljRGF0ZVBpY2tlck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRURJVE9SOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0VkaXRvck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRklMRV9VUExPQUQ6XG4gICAgICAgICAgICAgICAgICAgIG1vZGVsLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNGaWxlVXBsb2FkTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9HUk9VUDpcbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZ3JvdXAgPSB0aGlzLmZyb21KU09OKG1vZGVsLmdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNGb3JtR3JvdXBNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVUOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dE1vZGVsID0gbW9kZWwgYXMgRHluYW1pY0lucHV0TW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0TW9kZWwubWFzayAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoaW5wdXRNb2RlbC5tYXNrIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRNb2RlbC5tYXNrID0gbWFza0Zyb21TdHJpbmcoaW5wdXRNb2RlbC5tYXNrIGFzIHN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0lucHV0TW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9SQURJT19HUk9VUDpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNSYWRpb0dyb3VwTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9SQVRJTkc6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljUmF0aW5nTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TRUxFQ1Q6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljU2VsZWN0TW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TTElERVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljU2xpZGVyTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TV0lUQ0g6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljU3dpdGNoTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9URVhUQVJFQTpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNUZXh0QXJlYU1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVElNRVBJQ0tFUjpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNUaW1lUGlja2VyTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBmb3JtIGNvbnRyb2wgbW9kZWwgdHlwZSBkZWZpbmVkIG9uIEpTT04gb2JqZWN0IHdpdGggaWQgXCIke21vZGVsLmlkfVwiYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtTW9kZWw7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZHluYW1pYy1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDN0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0SCxPQUFPLEVBQ0gsd0NBQXdDLEVBQ3hDLHlCQUF5QixFQUM1QixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BILE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsdUJBQXVCLEVBQzFCLE1BQU0sZ0RBQWdELENBQUM7QUFDeEQsT0FBTyxFQUNILG9DQUFvQyxFQUNwQyxzQkFBc0IsRUFDekIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RyxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHNCQUFzQixFQUN6QixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hHLE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsc0JBQXNCLEVBQ3pCLE1BQU0sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGtCQUFr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LENBQUM7SUFDckIsQ0FBQzs7Z0JBbFhKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBSlEsMkJBQTJCO2dCQVAzQiw0QkFBNEI7Ozs2QkEzQ3JDO0NBdWFDLEFBblhELElBbVhDO1NBaFhZLGtCQUFrQjs7Ozs7O0lBRWYsOENBQXFEOzs7OztJQUNyRCwrQ0FBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xPcHRpb25zIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgRm9ybUhvb2tzIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS12YWx1ZS1jb250cm9sLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtQXJyYXlNb2RlbCxcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZLFxuICAgIER5bmFtaWNGb3JtQXJyYXlHcm91cE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9mb3JtLWFycmF5L2R5bmFtaWMtZm9ybS1hcnJheS5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9HUk9VUCwgRHluYW1pY0Zvcm1Hcm91cE1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2Zvcm0tZ3JvdXAvZHluYW1pYy1mb3JtLWdyb3VwLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1hfR1JPVVAsXG4gICAgRHluYW1pY0NoZWNrYm94R3JvdXBNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9DSEVDS0JPWCwgRHluYW1pY0NoZWNrYm94TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NPTE9SUElDS0VSLFxuICAgIER5bmFtaWNDb2xvclBpY2tlck1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9jb2xvcnBpY2tlci9keW5hbWljLWNvbG9ycGlja2VyLm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfREFURVBJQ0tFUixcbiAgICBEeW5hbWljRGF0ZVBpY2tlck1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9kYXRlcGlja2VyL2R5bmFtaWMtZGF0ZXBpY2tlci5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9FRElUT1IsIER5bmFtaWNFZGl0b3JNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9lZGl0b3IvZHluYW1pYy1lZGl0b3IubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9GSUxFX1VQTE9BRCxcbiAgICBEeW5hbWljRmlsZVVwbG9hZE1vZGVsXG59IGZyb20gXCIuLi9tb2RlbC9maWxlLXVwbG9hZC9keW5hbWljLWZpbGUtdXBsb2FkLm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVULCBEeW5hbWljSW5wdXRNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9pbnB1dC9keW5hbWljLWlucHV0Lm1vZGVsXCI7XG5pbXBvcnQge1xuICAgIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfUkFESU9fR1JPVVAsXG4gICAgRHluYW1pY1JhZGlvR3JvdXBNb2RlbFxufSBmcm9tIFwiLi4vbW9kZWwvcmFkaW8vZHluYW1pYy1yYWRpby1ncm91cC5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9SQVRJTkcsIER5bmFtaWNSYXRpbmdNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9yYXRpbmcvZHluYW1pYy1yYXRpbmcubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfU0VMRUNULCBEeW5hbWljU2VsZWN0TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX1NMSURFUiwgRHluYW1pY1NsaWRlck1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3NsaWRlci9keW5hbWljLXNsaWRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TV0lUQ0gsIER5bmFtaWNTd2l0Y2hNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9zd2l0Y2gvZHluYW1pYy1zd2l0Y2gubW9kZWxcIjtcbmltcG9ydCB7IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVEVYVEFSRUEsIER5bmFtaWNUZXh0QXJlYU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWxcIjtcbmltcG9ydCB7XG4gICAgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9USU1FUElDS0VSLFxuICAgIER5bmFtaWNUaW1lUGlja2VyTW9kZWxcbn0gZnJvbSBcIi4uL21vZGVsL3RpbWVwaWNrZXIvZHluYW1pYy10aW1lcGlja2VyLm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2RlbCwgRHluYW1pY1VuaW9uRm9ybU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2R5bmFtaWMtZm9ybS5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY1BhdGhhYmxlIH0gZnJvbSBcIi4uL21vZGVsL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtcGF0aC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfSBmcm9tIFwiLi4vbW9kZWwvbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC12YWxpZGF0aW9uLm1vZGVsXCI7XG5pbXBvcnQgeyBtYXNrRnJvbVN0cmluZywgcGFyc2VSZXZpdmVyIH0gZnJvbSBcIi4uL3V0aWxzL2pzb24udXRpbHNcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudC9keW5hbWljLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29tcG9uZW50LnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNGb3JtQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKHZhbGlkYXRvcnNDb25maWc6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbCA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jVmFsaWRhdG9yc0NvbmZpZzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfCBudWxsID0gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlT246IEZvcm1Ib29rcyB8IG51bGwgPSBudWxsKTogQWJzdHJhY3RDb250cm9sT3B0aW9ucyB7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFzeW5jVmFsaWRhdG9yczogYXN5bmNWYWxpZGF0b3JzQ29uZmlnICE9PSBudWxsID8gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzQ29uZmlnKSA6IG51bGwsXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzQ29uZmlnICE9PSBudWxsID8gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnNDb25maWcpIDogbnVsbCxcbiAgICAgICAgICAgIHVwZGF0ZU9uOiB1cGRhdGVPbiAhPT0gbnVsbCAmJiB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmlzRm9ybUhvb2sodXBkYXRlT24pID8gdXBkYXRlT24gOiBcImNoYW5nZVwiXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY3JlYXRlRm9ybUFycmF5KGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiBGb3JtQXJyYXkge1xuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKGZvcm1BcnJheU1vZGVsLnZhbGlkYXRvcnMsIGZvcm1BcnJheU1vZGVsLmFzeW5jVmFsaWRhdG9ycyxcbiAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLnVwZGF0ZU9uKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZm9ybUFycmF5TW9kZWwuc2l6ZTsgaW5kZXgrKykge1xuXG4gICAgICAgICAgICBjb25zdCBncm91cE1vZGVsID0gZm9ybUFycmF5TW9kZWwuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwT3B0aW9ucyA9IHRoaXMuY3JlYXRlQWJzdHJhY3RDb250cm9sT3B0aW9ucyhmb3JtQXJyYXlNb2RlbC5ncm91cFZhbGlkYXRvcnMsXG4gICAgICAgICAgICAgICAgZm9ybUFycmF5TW9kZWwuZ3JvdXBBc3luY1ZhbGlkYXRvcnMsIGZvcm1BcnJheU1vZGVsLnVwZGF0ZU9uKTtcblxuICAgICAgICAgICAgY29udHJvbHMucHVzaCh0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBncm91cE9wdGlvbnMsIGdyb3VwTW9kZWwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgRm9ybUFycmF5KGNvbnRyb2xzLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjcmVhdGVGb3JtR3JvdXAoZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsLCBvcHRpb25zOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zIHwgbnVsbCA9IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogRHluYW1pY1BhdGhhYmxlIHwgbnVsbCA9IG51bGwpOiBGb3JtR3JvdXAge1xuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xzOiB7IFtjb250cm9sSWQ6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbDsgfSA9IHt9O1xuXG4gICAgICAgIGZvcm1Nb2RlbC5mb3JFYWNoKG1vZGVsID0+IHtcblxuICAgICAgICAgICAgbW9kZWwucGFyZW50ID0gcGFyZW50O1xuXG4gICAgICAgICAgICBzd2l0Y2ggKG1vZGVsLnR5cGUpIHtcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9BUlJBWTpcblxuICAgICAgICAgICAgICAgICAgICBjb250cm9sc1ttb2RlbC5pZF0gPSB0aGlzLmNyZWF0ZUZvcm1BcnJheShtb2RlbCBhcyBEeW5hbWljRm9ybUFycmF5TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9HUk9VUDpcbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1hfR1JPVVA6XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNGb3JtR3JvdXBNb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gdGhpcy5jcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKGdyb3VwTW9kZWwudmFsaWRhdG9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwTW9kZWwuYXN5bmNWYWxpZGF0b3JzLCBncm91cE1vZGVsLnVwZGF0ZU9uKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250cm9sc1ttb2RlbC5pZF0gPSB0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBncm91cE9wdGlvbnMsIGdyb3VwTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbE1vZGVsID0gbW9kZWwgYXMgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbDxhbnk+O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sU3RhdGUgPSB7dmFsdWU6IGNvbnRyb2xNb2RlbC52YWx1ZSwgZGlzYWJsZWQ6IGNvbnRyb2xNb2RlbC5kaXNhYmxlZH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xPcHRpb25zID0gdGhpcy5jcmVhdGVBYnN0cmFjdENvbnRyb2xPcHRpb25zKGNvbnRyb2xNb2RlbC52YWxpZGF0b3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE1vZGVsLmFzeW5jVmFsaWRhdG9ycywgY29udHJvbE1vZGVsLnVwZGF0ZU9uKTtcblxuICAgICAgICAgICAgICAgICAgICBjb250cm9sc1ttb2RlbC5pZF0gPSBuZXcgRm9ybUNvbnRyb2woY29udHJvbFN0YXRlLCBjb250cm9sT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGNvbnRyb2xzLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBnZXRQYXRoU2VnbWVudChtb2RlbDogRHluYW1pY1BhdGhhYmxlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1BcnJheUdyb3VwTW9kZWwgPyBtb2RlbC5pbmRleC50b1N0cmluZygpIDogKG1vZGVsIGFzIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsKS5pZDtcbiAgICB9XG5cbiAgICBnZXRQYXRoKG1vZGVsOiBEeW5hbWljUGF0aGFibGUsIGpvaW46IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcblxuICAgICAgICBjb25zdCBwYXRoID0gW3RoaXMuZ2V0UGF0aFNlZ21lbnQobW9kZWwpXTtcbiAgICAgICAgbGV0IHBhcmVudCA9IG1vZGVsLnBhcmVudDtcblxuICAgICAgICB3aGlsZSAocGFyZW50KSB7XG5cbiAgICAgICAgICAgIHBhdGgudW5zaGlmdCh0aGlzLmdldFBhdGhTZWdtZW50KHBhcmVudCkpO1xuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBqb2luID8gcGF0aC5qb2luKFwiLlwiKSA6IHBhdGg7XG4gICAgfVxuXG4gICAgYWRkRm9ybUdyb3VwQ29udHJvbChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZm9ybU1vZGVsOiBEeW5hbWljVW5pb25Gb3JtTW9kZWwsIC4uLm1vZGVsczogRHluYW1pY0Zvcm1Nb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmb3JtTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgdGhpcy5pbnNlcnRGb3JtR3JvdXBDb250cm9sKGZvcm1Nb2RlbC5zaXplKCksIGZvcm1Hcm91cCwgZm9ybU1vZGVsLCAuLi5tb2RlbHMpO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZm9ybU1vZGVsIGFzIER5bmFtaWNGb3JtTW9kZWw7XG4gICAgICAgICAgICB0aGlzLmluc2VydEZvcm1Hcm91cENvbnRyb2wobW9kZWwubGVuZ3RoLCBmb3JtR3JvdXAsIG1vZGVsLCAuLi5tb2RlbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZUZvcm1Hcm91cENvbnRyb2woaW5kZXg6IG51bWJlciwgc3RlcDogbnVtYmVyLCBmb3JtTW9kZWw6IER5bmFtaWNVbmlvbkZvcm1Nb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGlmIChmb3JtTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcblxuICAgICAgICAgICAgZm9ybU1vZGVsLm1vdmUoaW5kZXgsIHN0ZXApO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZm9ybU1vZGVsIGFzIER5bmFtaWNGb3JtTW9kZWw7XG4gICAgICAgICAgICBtb2RlbC5zcGxpY2UoaW5kZXggKyBzdGVwLCAwLCAuLi5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluc2VydEZvcm1Hcm91cENvbnRyb2woaW5kZXg6IG51bWJlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZvcm1Nb2RlbDogRHluYW1pY1VuaW9uRm9ybU1vZGVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubW9kZWxzOiBEeW5hbWljRm9ybU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsID8gZm9ybU1vZGVsIDogbnVsbDtcbiAgICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNyZWF0ZUZvcm1Hcm91cChtb2RlbHMsIG51bGwsIHBhcmVudCkuY29udHJvbHM7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xOYW1lLCBpZHgpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgY29udHJvbE1vZGVsID0gbW9kZWxzW2lkeF07XG5cbiAgICAgICAgICAgIGlmIChmb3JtTW9kZWwgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUdyb3VwTW9kZWwpIHtcbiAgICAgICAgICAgICAgICBmb3JtTW9kZWwuaW5zZXJ0KGluZGV4LCBjb250cm9sTW9kZWwpO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIChmb3JtTW9kZWwgYXMgRHluYW1pY0Zvcm1Nb2RlbCkuc3BsaWNlKGluZGV4LCAwLCBjb250cm9sTW9kZWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChjb250cm9sTmFtZSwgY29udHJvbHNbY29udHJvbE5hbWVdKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRm9ybUdyb3VwQ29udHJvbChpbmRleDogbnVtYmVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZm9ybU1vZGVsOiBEeW5hbWljVW5pb25Gb3JtTW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBpZiAoZm9ybU1vZGVsIGluc3RhbmNlb2YgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGZvcm1Nb2RlbC5nZXQoaW5kZXgpLmlkKTtcbiAgICAgICAgICAgIGZvcm1Nb2RlbC5yZW1vdmUoaW5kZXgpO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGZvcm1Nb2RlbFtpbmRleF0uaWQpO1xuICAgICAgICAgICAgKGZvcm1Nb2RlbCBhcyBEeW5hbWljRm9ybU1vZGVsKS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkRm9ybUFycmF5R3JvdXAoZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBncm91cE1vZGVsID0gZm9ybUFycmF5TW9kZWwuYWRkR3JvdXAoKTtcblxuICAgICAgICBmb3JtQXJyYXkucHVzaCh0aGlzLmNyZWF0ZUZvcm1Hcm91cChncm91cE1vZGVsLmdyb3VwLCBudWxsLCBncm91cE1vZGVsKSk7XG4gICAgfVxuXG4gICAgaW5zZXJ0Rm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUFycmF5OiBGb3JtQXJyYXksIGZvcm1BcnJheU1vZGVsOiBEeW5hbWljRm9ybUFycmF5TW9kZWwpOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBncm91cE1vZGVsID0gZm9ybUFycmF5TW9kZWwuaW5zZXJ0R3JvdXAoaW5kZXgpO1xuXG4gICAgICAgIGZvcm1BcnJheS5pbnNlcnQoaW5kZXgsIHRoaXMuY3JlYXRlRm9ybUdyb3VwKGdyb3VwTW9kZWwuZ3JvdXAsIG51bGwsIGdyb3VwTW9kZWwpKTtcbiAgICB9XG5cbiAgICBtb3ZlRm9ybUFycmF5R3JvdXAoaW5kZXg6IG51bWJlciwgc3RlcDogbnVtYmVyLCBmb3JtQXJyYXk6IEZvcm1BcnJheSwgZm9ybUFycmF5TW9kZWw6IER5bmFtaWNGb3JtQXJyYXlNb2RlbCk6IHZvaWQge1xuXG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gaW5kZXggKyBzdGVwO1xuICAgICAgICBjb25zdCBtb3ZlVXAgPSBzdGVwID49IDA7XG5cbiAgICAgICAgaWYgKChpbmRleCA+PSAwICYmIGluZGV4IDwgZm9ybUFycmF5TW9kZWwuc2l6ZSkgJiYgKG5ld0luZGV4ID49IDAgJiYgbmV3SW5kZXggPCBmb3JtQXJyYXlNb2RlbC5zaXplKSkge1xuXG4gICAgICAgICAgICBjb25zdCBtb3ZpbmdHcm91cHM6IEFic3RyYWN0Q29udHJvbFtdID0gW107XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBtb3ZlVXAgPyBpbmRleCA6IG5ld0luZGV4OyBpIDw9IChtb3ZlVXAgPyBuZXdJbmRleCA6IGluZGV4KTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbW92aW5nR3JvdXBzLnB1c2goZm9ybUFycmF5LmF0KGkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW92aW5nR3JvdXBzLmZvckVhY2goKGZvcm1Db250cm9sLCBpZHgpID0+IHtcblxuICAgICAgICAgICAgICAgIGxldCBwb3NpdGlvbjtcblxuICAgICAgICAgICAgICAgIGlmIChtb3ZlVXApIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBpZHggPT09IDAgPyBuZXdJbmRleCA6IGluZGV4ICsgaWR4IC0gMTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaWR4ID09PSBtb3ZpbmdHcm91cHMubGVuZ3RoIC0gMSA/IG5ld0luZGV4IDogbmV3SW5kZXggKyBpZHggKyAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvcm1BcnJheS5zZXRDb250cm9sKHBvc2l0aW9uLCBmb3JtQ29udHJvbCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZm9ybUFycmF5TW9kZWwubW92ZUdyb3VwKGluZGV4LCBzdGVwKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmb3JtIGFycmF5IGdyb3VwIGNhbm5vdCBiZSBtb3ZlZCBkdWUgdG8gaW5kZXggb3IgbmV3IGluZGV4IGJlaW5nIG91dCBvZiBib3VuZHNgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUZvcm1BcnJheUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgICAgICAgZm9ybUFycmF5TW9kZWwucmVtb3ZlR3JvdXAoaW5kZXgpO1xuICAgIH1cblxuICAgIGNsZWFyRm9ybUFycmF5KGZvcm1BcnJheTogRm9ybUFycmF5LCBmb3JtQXJyYXlNb2RlbDogRHluYW1pY0Zvcm1BcnJheU1vZGVsKTogdm9pZCB7XG5cbiAgICAgICAgZm9ybUFycmF5LmNsZWFyKCk7XG4gICAgICAgIGZvcm1BcnJheU1vZGVsLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgZmluZEJ5SWQoaWQ6IHN0cmluZywgZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsKTogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwgfCBudWxsIHtcblxuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcblxuICAgICAgICBjb25zdCBmaW5kQnlJZEZuID0gKG1vZGVsSWQ6IHN0cmluZywgZ3JvdXBNb2RlbDogRHluYW1pY0Zvcm1Nb2RlbCk6IHZvaWQgPT4ge1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2xNb2RlbCBvZiBncm91cE1vZGVsKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbE1vZGVsLmlkID09PSBtb2RlbElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnRyb2xNb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xNb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtR3JvdXBNb2RlbCkge1xuICAgICAgICAgICAgICAgICAgICBmaW5kQnlJZEZuKG1vZGVsSWQsIChjb250cm9sTW9kZWwgYXMgRHluYW1pY0Zvcm1Hcm91cE1vZGVsKS5ncm91cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGZpbmRCeUlkRm4oaWQsIGZvcm1Nb2RlbCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmaW5kTW9kZWxCeUlkPFQgZXh0ZW5kcyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbD4oaWQ6IHN0cmluZywgZm9ybU1vZGVsOiBEeW5hbWljRm9ybU1vZGVsKTogVCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kQnlJZChpZCwgZm9ybU1vZGVsKSBhcyBUO1xuICAgIH1cblxuICAgIGZpbmRDb250cm9sQnlNb2RlbDxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihtb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwsIGdyb3VwOiBGb3JtR3JvdXApOiBUIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBncm91cC5yb290LmdldCh0aGlzLmdldFBhdGgobW9kZWwsIHRydWUpKSBhcyBUO1xuICAgIH1cblxuICAgIGRldGVjdENoYW5nZXMoZm9ybUNvbXBvbmVudD86IER5bmFtaWNGb3JtQ29tcG9uZW50KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKGZvcm1Db21wb25lbnQgaW5zdGFuY2VvZiBEeW5hbWljRm9ybUNvbXBvbmVudCkge1xuXG4gICAgICAgICAgICBmb3JtQ29tcG9uZW50Lm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgZm9ybUNvbXBvbmVudC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIHRoaXMuY29tcG9uZW50U2VydmljZS5nZXRGb3JtcygpKSB7XG4gICAgICAgICAgICAgICAgZm9ybS5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICBmb3JtLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZyb21KU09OKGpzb246IHN0cmluZyB8IG9iamVjdFtdKTogRHluYW1pY0Zvcm1Nb2RlbCB8IG5ldmVyIHtcblxuICAgICAgICBjb25zdCBmb3JtTW9kZWxKU09OID0gaXNTdHJpbmcoanNvbikgPyBKU09OLnBhcnNlKGpzb24sIHBhcnNlUmV2aXZlcikgOiBqc29uO1xuICAgICAgICBjb25zdCBmb3JtTW9kZWw6IER5bmFtaWNGb3JtTW9kZWwgPSBbXTtcblxuICAgICAgICBmb3JtTW9kZWxKU09OLmZvckVhY2goKG1vZGVsOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgbGF5b3V0ID0gbW9kZWwubGF5b3V0IHx8IG51bGw7XG5cbiAgICAgICAgICAgIHN3aXRjaCAobW9kZWwudHlwZSkge1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0FSUkFZOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtQXJyYXlNb2RlbCA9IG1vZGVsIGFzIER5bmFtaWNGb3JtQXJyYXlNb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtQXJyYXlNb2RlbC5ncm91cHMpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLmdyb3Vwcy5mb3JFYWNoKChncm91cE1vZGVsOiBEeW5hbWljRm9ybUFycmF5R3JvdXBNb2RlbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwTW9kZWwuZ3JvdXAgPSB0aGlzLmZyb21KU09OKGdyb3VwTW9kZWwuZ3JvdXApIGFzIER5bmFtaWNGb3JtTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheU1vZGVsLmdyb3VwRmFjdG9yeSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZyb21KU09OKGZvcm1BcnJheU1vZGVsLmdyb3VwUHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0Zvcm1BcnJheU1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ0hFQ0tCT1g6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljQ2hlY2tib3hNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0NIRUNLQk9YX0dST1VQOlxuICAgICAgICAgICAgICAgICAgICBtb2RlbC5ncm91cCA9IHRoaXMuZnJvbUpTT04obW9kZWwuZ3JvdXApIGFzIER5bmFtaWNDaGVja2JveE1vZGVsW107XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljQ2hlY2tib3hHcm91cE1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfQ09MT1JQSUNLRVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljQ29sb3JQaWNrZXJNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0RBVEVQSUNLRVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljRGF0ZVBpY2tlck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRURJVE9SOlxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0VkaXRvck1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfRklMRV9VUExPQUQ6XG4gICAgICAgICAgICAgICAgICAgIG1vZGVsLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNGaWxlVXBsb2FkTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9HUk9VUDpcbiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZ3JvdXAgPSB0aGlzLmZyb21KU09OKG1vZGVsLmdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNGb3JtR3JvdXBNb2RlbChtb2RlbCwgbGF5b3V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0lOUFVUOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dE1vZGVsID0gbW9kZWwgYXMgRHluYW1pY0lucHV0TW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0TW9kZWwubWFzayAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoaW5wdXRNb2RlbC5tYXNrIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRNb2RlbC5tYXNrID0gbWFza0Zyb21TdHJpbmcoaW5wdXRNb2RlbC5tYXNrIGFzIHN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3JtTW9kZWwucHVzaChuZXcgRHluYW1pY0lucHV0TW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9SQURJT19HUk9VUDpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNSYWRpb0dyb3VwTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9SQVRJTkc6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljUmF0aW5nTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TRUxFQ1Q6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljU2VsZWN0TW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TTElERVI6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljU2xpZGVyTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9TV0lUQ0g6XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbC5wdXNoKG5ldyBEeW5hbWljU3dpdGNoTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0NPTlRST0xfVFlQRV9URVhUQVJFQTpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNUZXh0QXJlYU1vZGVsKG1vZGVsLCBsYXlvdXQpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfVElNRVBJQ0tFUjpcbiAgICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsLnB1c2gobmV3IER5bmFtaWNUaW1lUGlja2VyTW9kZWwobW9kZWwsIGxheW91dCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBmb3JtIGNvbnRyb2wgbW9kZWwgdHlwZSBkZWZpbmVkIG9uIEpTT04gb2JqZWN0IHdpdGggaWQgXCIke21vZGVsLmlkfVwiYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtTW9kZWw7XG4gICAgfVxufVxuIl19

@@ -215,2 +215,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZpbGwudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2F1dG9maWxsLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxLQUFPLGdCQUFnQixHQUFHLEtBQUs7O0FBQ3JDLE1BQU0sS0FBTyxlQUFlLEdBQUcsSUFBSTs7QUFFbkMsTUFBTSxLQUFPLHNCQUFzQixHQUFHLFNBQVM7O0FBQy9DLE1BQU0sS0FBTyx1QkFBdUIsR0FBRyxVQUFVOztBQUVqRCxNQUFNLEtBQU8sdUJBQXVCLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzs7QUFFeEYsTUFBTSxLQUFPLG1CQUFtQixHQUFHLE1BQU07O0FBQ3pDLE1BQU0sS0FBTyxtQkFBbUIsR0FBRyxNQUFNOztBQUN6QyxNQUFNLEtBQU8scUJBQXFCLEdBQUcsUUFBUTs7QUFDN0MsTUFBTSxLQUFPLGtCQUFrQixHQUFHLEtBQUs7O0FBQ3ZDLE1BQU0sS0FBTyxvQkFBb0IsR0FBRyxPQUFPOztBQUUzQyxNQUFNLEtBQU8sdUJBQXVCLEdBQUc7SUFDbkMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQzVHOztBQUVELE1BQU0sS0FBTyw2QkFBNkIsR0FBRyxnQkFBZ0I7O0FBQzdELE1BQU0sS0FBTyw2QkFBNkIsR0FBRyxlQUFlOztBQUM1RCxNQUFNLEtBQU8sNkJBQTZCLEdBQUcsZUFBZTs7QUFDNUQsTUFBTSxLQUFPLDZCQUE2QixHQUFHLGVBQWU7O0FBQzVELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBRTlELE1B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RCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDeEMsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFjOztRQUU3QixZQUFZOzs7OztJQUFHLFVBQUMsS0FBYSxFQUFFLFlBQW9CLElBQUssT0FBRyxLQUFLLFNBQUksWUFBYyxFQUExQixDQUEwQixDQUFBOztRQUNsRixhQUFhLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7UUFDNUQsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1FBQzVELE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7UUFDN0MsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1FBQzVELEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyw2QkFBMkIsYUFBYSxtQkFBYyxNQUFNLGVBQVUsYUFBYSxtQkFBYyxhQUFhLFNBQU0sQ0FBQztJQUU5SSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfT0ZGID0gXCJvZmZcIjtcbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfT04gPSBcIm9uXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9CSUxMSU5HID0gXCJiaWxsaW5nXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fU0hJUFBJTkcgPSBcInNoaXBwaW5nXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTlNfQUREUkVTUyA9IFtBVVRPRklMTF9UT0tFTl9CSUxMSU5HLCBBVVRPRklMTF9UT0tFTl9TSElQUElOR107XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9IT01FID0gXCJob21lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fV09SSyA9IFwid29ya1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX01PQklMRSA9IFwibW9iaWxlXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fRkFYID0gXCJmYXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9QQUdFUiA9IFwicGFnZXJcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOU19DT05UQUNUID0gW1xuICAgIEFVVE9GSUxMX1RPS0VOX0ZBWCwgQVVUT0ZJTExfVE9LRU5fSE9NRSwgQVVUT0ZJTExfVE9LRU5fTU9CSUxFLCBBVVRPRklMTF9UT0tFTl9QQUdFUiwgQVVUT0ZJTExfVE9LRU5fV09SS1xuXTtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1NUUkVFVF9BRERSRVNTID0gXCJzdHJlZXQtYWRkcmVzc1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8xID0gXCJhZGRyZXNzLWxpbmUxXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzIgPSBcImFkZHJlc3MtbGluZTJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMyA9IFwiYWRkcmVzcy1saW5lM1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfNCA9IFwiYWRkcmVzcy1sZXZlbDRcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzMgPSBcImFkZHJlc3MtbGV2ZWwzXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8yID0gXCJhZGRyZXNzLWxldmVsMlwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMSA9IFwiYWRkcmVzcy1sZXZlbDFcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX05BTUUgPSBcIm5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9IT05PUklGSUNfUFJFRklYID0gXCJob25vcmlmaWMtcHJlZml4XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfR0lWRU5fTkFNRSA9IFwiZ2l2ZW4tbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERElUSU9OQUxfTkFNRSA9IFwiYWRkaXRpb25hbC1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfRkFNSUxZX05BTUUgPSBcImZhbWlseS1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1NVRkZJWCA9IFwiaG9ub3JpZmljLXN1ZmZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX05JQ0tOQU1FID0gXCJuaWNrbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1VTRVJOQU1FID0gXCJ1c2VybmFtZVwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfTkVXX1BBU1NXT1JEID0gXCJuZXctcGFzc3dvcmRcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DVVJSRU5UX1BBU1NXT1JEID0gXCJjdXJyZW50LXBhc3N3b3JkXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT05fVElUTEUgPSBcIm9yZ2FuaXphdGlvbi10aXRsZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX09SR0FOSVpBVElPTiA9IFwib3JnYW5pemF0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DT1VOVFJZID0gXCJjb3VudHJ5XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ09VTlRSWV9OQU1FID0gXCJjb3VudHJ5LW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9QT1NUQUxfQ09ERSA9IFwicG9zdGFsLWNvZGVcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX05BTUUgPSBcImNjLW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19HSVZFTl9OQU1FID0gXCJjYy1naXZlbi1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfQURESVRJT05BTF9OQU1FID0gXCJjYy1hZGRpdGlvbmFsLW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19GQU1JTFlfTkFNRSA9IFwiY2MtZmFtaWx5LW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19OVU1CRVIgPSBcImNjLW51bWJlclwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX0VYUCA9IFwiY2MtZXhwXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfRVhQX01PTlRIID0gXCJjYy1leHAtbW9udGhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19FWFBfWUVBUiA9IFwiY2MtZXhwLXllYXJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19DU0MgPSBcImNjLWNzY1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX1RZUEUgPSBcImNjLXR5cGVcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RSQU5TQUNUSU9OX0NVUlJFTkNZID0gXCJ0cmFuc2FjdGlvbi1jdXJyZW5jeVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RSQU5TQUNUSU9OX0FNT1VOVCA9IFwidHJhbnNhY3Rpb24tYW1vdW50XCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9MQU5HVUFHRSA9IFwibGFuZ3VhZ2VcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0JEQVkgPSBcImJkYXlcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9CREFZX0RBWSA9IFwiYmRheS1kYXlcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9CREFZX01PTlRIID0gXCJiZGF5LW1vbnRoXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQkRBWV9ZRUFSID0gXCJiZGF5LXllYXJcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1NFWCA9IFwic2V4XCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9VUkwgPSBcInVybFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfUEhPVE8gPSBcInBob3RvXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRFMgPSBbXG5cbiAgICBBVVRPRklMTF9GSUVMRF9TVFJFRVRfQUREUkVTUywgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzEsIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8yLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8zLCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzQsIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMyxcbiAgICBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzIsIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMSwgQVVUT0ZJTExfRklFTERfTkFNRSxcbiAgICBBVVRPRklMTF9GSUVMRF9IT05PUklGSUNfUFJFRklYLCBBVVRPRklMTF9GSUVMRF9HSVZFTl9OQU1FLCBBVVRPRklMTF9GSUVMRF9BRERJVElPTkFMX05BTUUsXG4gICAgQVVUT0ZJTExfRklFTERfRkFNSUxZX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0hPTk9SSUZJQ19TVUZGSVgsIEFVVE9GSUxMX0ZJRUxEX05JQ0tOQU1FLCBBVVRPRklMTF9GSUVMRF9VU0VSTkFNRSxcbiAgICBBVVRPRklMTF9GSUVMRF9ORVdfUEFTU1dPUkQsIEFVVE9GSUxMX0ZJRUxEX0NVUlJFTlRfUEFTU1dPUkQsIEFVVE9GSUxMX0ZJRUxEX09SR0FOSVpBVElPTl9USVRMRSxcbiAgICBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT04sIEFVVE9GSUxMX0ZJRUxEX0NPVU5UUlksIEFVVE9GSUxMX0ZJRUxEX0NPVU5UUllfTkFNRSwgQVVUT0ZJTExfRklFTERfUE9TVEFMX0NPREUsXG4gICAgQVVUT0ZJTExfRklFTERfQ0NfTkFNRSwgQVVUT0ZJTExfRklFTERfQ0NfR0lWRU5fTkFNRSwgQVVUT0ZJTExfRklFTERfQ0NfQURESVRJT05BTF9OQU1FLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0NDX0ZBTUlMWV9OQU1FLCBBVVRPRklMTF9GSUVMRF9DQ19OVU1CRVIsIEFVVE9GSUxMX0ZJRUxEX0NDX0VYUCwgQVVUT0ZJTExfRklFTERfQ0NfRVhQX01PTlRILFxuICAgIEFVVE9GSUxMX0ZJRUxEX0NDX0VYUF9ZRUFSLCBBVVRPRklMTF9GSUVMRF9DQ19DU0MsIEFVVE9GSUxMX0ZJRUxEX0NDX1RZUEUsIEFVVE9GSUxMX0ZJRUxEX1RSQU5TQUNUSU9OX0NVUlJFTkNZLFxuICAgIEFVVE9GSUxMX0ZJRUxEX1RSQU5TQUNUSU9OX0FNT1VOVCwgQVVUT0ZJTExfRklFTERfTEFOR1VBR0UsIEFVVE9GSUxMX0ZJRUxEX0JEQVksIEFVVE9GSUxMX0ZJRUxEX0JEQVlfREFZLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0JEQVlfTU9OVEgsIEFVVE9GSUxMX0ZJRUxEX0JEQVlfWUVBUiwgQVVUT0ZJTExfRklFTERfU0VYLCBBVVRPRklMTF9GSUVMRF9VUkwsIEFVVE9GSUxMX0ZJRUxEX1BIT1RPXG5dO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMID0gXCJ0ZWxcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfQ09VTlRSWV9DT0RFID0gXCJ0ZWwtY291bnRyeS1jb2RlXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX05BVElPTkFMID0gXCJ0ZWwtbmF0aW9uYWxcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfQVJFQV9DT0RFID0gXCJ0ZWwtYXJlYS1jb2RlXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMID0gXCJ0ZWwtbG9jYWxcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfUFJFRklYID0gXCJ0ZWwtbG9jYWwtcHJlZml4XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1NVRkZJWCA9IFwidGVsLWxvY2FsLXN1ZmZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9FWFRFTlNJT04gPSBcInRlbC1leHRlbnNpb25cIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9FTUFJTCA9IFwiZW1haWxcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9JTVBQID0gXCJpbXBwXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRFNfQ09OVEFDVCA9IFtcblxuICAgIEFVVE9GSUxMX0ZJRUxEX1RFTCwgQVVUT0ZJTExfRklFTERfVEVMX0NPVU5UUllfQ09ERSwgQVVUT0ZJTExfRklFTERfVEVMX05BVElPTkFMLCBBVVRPRklMTF9GSUVMRF9URUxfQVJFQV9DT0RFLFxuICAgIEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTCwgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1BSRUZJWCwgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1NVRkZJWCxcbiAgICBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfRVhURU5TSU9OLCBBVVRPRklMTF9GSUVMRF9FTUFJTCwgQVVUT0ZJTExfRklFTERfSU1QUFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWRkcmVzc1Rva2VuKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfVE9LRU5TX0FERFJFU1MuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGFjdEZpZWxkKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfRklFTERTX0NPTlRBQ1QuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGFjdFRva2VuKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQVVUT0ZJTExfVE9LRU5TX0NPTlRBQ1QuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmllbGQodG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBVVRPRklMTF9GSUVMRFMuaW5kZXhPZih0b2tlbikgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VjdGlvblRva2VuKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdG9rZW4uc3RhcnRzV2l0aChcInNlY3Rpb24tXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodG9rZW5zOiBzdHJpbmcpOiBib29sZWFuIHtcblxuICAgIGNvbnN0IHRvRXhwcmVzc2lvbiA9ICh0b3RhbDogc3RyaW5nLCBjdXJyZW50VmFsdWU6IHN0cmluZykgPT4gYCR7dG90YWx9fCR7Y3VycmVudFZhbHVlfWA7XG4gICAgY29uc3QgdG9rZW5zQWRkcmVzcyA9IEFVVE9GSUxMX1RPS0VOU19BRERSRVNTLnJlZHVjZSh0b0V4cHJlc3Npb24pO1xuICAgIGNvbnN0IHRva2Vuc0NvbnRhY3QgPSBBVVRPRklMTF9UT0tFTlNfQ09OVEFDVC5yZWR1Y2UodG9FeHByZXNzaW9uKTtcbiAgICBjb25zdCBmaWVsZHMgPSBBVVRPRklMTF9GSUVMRFMucmVkdWNlKHRvRXhwcmVzc2lvbik7XG4gICAgY29uc3QgZmllbGRzQ29udGFjdCA9IEFVVE9GSUxMX0ZJRUxEU19DT05UQUNULnJlZHVjZSh0b0V4cHJlc3Npb24pO1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXihzZWN0aW9uLVxcXFx3K1xcXFxzezF9KT8oKCR7dG9rZW5zQWRkcmVzc30pezF9XFxcXHMpPygoJHtmaWVsZHN9KXsxfXwoKCR7dG9rZW5zQ29udGFjdH0pezF9XFxcXHN7MX0oJHtmaWVsZHNDb250YWN0fSkpKSRgKTtcblxuICAgIHJldHVybiByZWdleC50ZXN0KHRva2Vucyk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZpbGwudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctZHluYW1pYy1mb3Jtcy9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2F1dG9maWxsLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxLQUFPLGdCQUFnQixHQUFHLEtBQUs7O0FBQ3JDLE1BQU0sS0FBTyxlQUFlLEdBQUcsSUFBSTs7QUFFbkMsTUFBTSxLQUFPLHNCQUFzQixHQUFHLFNBQVM7O0FBQy9DLE1BQU0sS0FBTyx1QkFBdUIsR0FBRyxVQUFVOztBQUVqRCxNQUFNLEtBQU8sdUJBQXVCLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzs7QUFFeEYsTUFBTSxLQUFPLG1CQUFtQixHQUFHLE1BQU07O0FBQ3pDLE1BQU0sS0FBTyxtQkFBbUIsR0FBRyxNQUFNOztBQUN6QyxNQUFNLEtBQU8scUJBQXFCLEdBQUcsUUFBUTs7QUFDN0MsTUFBTSxLQUFPLGtCQUFrQixHQUFHLEtBQUs7O0FBQ3ZDLE1BQU0sS0FBTyxvQkFBb0IsR0FBRyxPQUFPOztBQUUzQyxNQUFNLEtBQU8sdUJBQXVCLEdBQUc7SUFDbkMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQzVHOztBQUVELE1BQU0sS0FBTyw2QkFBNkIsR0FBRyxnQkFBZ0I7O0FBQzdELE1BQU0sS0FBTyw2QkFBNkIsR0FBRyxlQUFlOztBQUM1RCxNQUFNLEtBQU8sNkJBQTZCLEdBQUcsZUFBZTs7QUFDNUQsTUFBTSxLQUFPLDZCQUE2QixHQUFHLGVBQWU7O0FBQzVELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBQzlELE1BQU0sS0FBTyw4QkFBOEIsR0FBRyxnQkFBZ0I7O0FBRTlELE1B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RCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDeEMsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFjOztRQUU3QixZQUFZOzs7OztJQUFHLFVBQUMsS0FBYSxFQUFFLFlBQW9CLElBQUssT0FBRyxLQUFLLFNBQUksWUFBYyxFQUExQixDQUEwQixDQUFBOztRQUNsRixhQUFhLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7UUFDNUQsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1FBQzVELE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs7UUFDN0MsYUFBYSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O1FBQzVELEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyw2QkFBMkIsYUFBYSxtQkFBYyxNQUFNLGVBQVUsYUFBYSxtQkFBYyxhQUFhLFNBQU0sQ0FBQztJQUU5SSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfT0ZGID0gXCJvZmZcIjtcbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfT04gPSBcIm9uXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9CSUxMSU5HID0gXCJiaWxsaW5nXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fU0hJUFBJTkcgPSBcInNoaXBwaW5nXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTlNfQUREUkVTUyA9IFtBVVRPRklMTF9UT0tFTl9CSUxMSU5HLCBBVVRPRklMTF9UT0tFTl9TSElQUElOR107XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9IT01FID0gXCJob21lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fV09SSyA9IFwid29ya1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOX01PQklMRSA9IFwibW9iaWxlXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfVE9LRU5fRkFYID0gXCJmYXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9UT0tFTl9QQUdFUiA9IFwicGFnZXJcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX1RPS0VOU19DT05UQUNUID0gW1xuICAgIEFVVE9GSUxMX1RPS0VOX0ZBWCwgQVVUT0ZJTExfVE9LRU5fSE9NRSwgQVVUT0ZJTExfVE9LRU5fTU9CSUxFLCBBVVRPRklMTF9UT0tFTl9QQUdFUiwgQVVUT0ZJTExfVE9LRU5fV09SS1xuXTtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1NUUkVFVF9BRERSRVNTID0gXCJzdHJlZXQtYWRkcmVzc1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8xID0gXCJhZGRyZXNzLWxpbmUxXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MSU5FXzIgPSBcImFkZHJlc3MtbGluZTJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMyA9IFwiYWRkcmVzcy1saW5lM1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfNCA9IFwiYWRkcmVzcy1sZXZlbDRcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzMgPSBcImFkZHJlc3MtbGV2ZWwzXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8yID0gXCJhZGRyZXNzLWxldmVsMlwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTEVWRUxfMSA9IFwiYWRkcmVzcy1sZXZlbDFcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX05BTUUgPSBcIm5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9IT05PUklGSUNfUFJFRklYID0gXCJob25vcmlmaWMtcHJlZml4XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfR0lWRU5fTkFNRSA9IFwiZ2l2ZW4tbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0FERElUSU9OQUxfTkFNRSA9IFwiYWRkaXRpb25hbC1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfRkFNSUxZX05BTUUgPSBcImZhbWlseS1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1NVRkZJWCA9IFwiaG9ub3JpZmljLXN1ZmZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX05JQ0tOQU1FID0gXCJuaWNrbmFtZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1VTRVJOQU1FID0gXCJ1c2VybmFtZVwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfTkVXX1BBU1NXT1JEID0gXCJuZXctcGFzc3dvcmRcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DVVJSRU5UX1BBU1NXT1JEID0gXCJjdXJyZW50LXBhc3N3b3JkXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT05fVElUTEUgPSBcIm9yZ2FuaXphdGlvbi10aXRsZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX09SR0FOSVpBVElPTiA9IFwib3JnYW5pemF0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DT1VOVFJZID0gXCJjb3VudHJ5XCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ09VTlRSWV9OQU1FID0gXCJjb3VudHJ5LW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9QT1NUQUxfQ09ERSA9IFwicG9zdGFsLWNvZGVcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX05BTUUgPSBcImNjLW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19HSVZFTl9OQU1FID0gXCJjYy1naXZlbi1uYW1lXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfQURESVRJT05BTF9OQU1FID0gXCJjYy1hZGRpdGlvbmFsLW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19GQU1JTFlfTkFNRSA9IFwiY2MtZmFtaWx5LW5hbWVcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19OVU1CRVIgPSBcImNjLW51bWJlclwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX0VYUCA9IFwiY2MtZXhwXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQ0NfRVhQX01PTlRIID0gXCJjYy1leHAtbW9udGhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19FWFBfWUVBUiA9IFwiY2MtZXhwLXllYXJcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9DQ19DU0MgPSBcImNjLWNzY1wiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0NDX1RZUEUgPSBcImNjLXR5cGVcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RSQU5TQUNUSU9OX0NVUlJFTkNZID0gXCJ0cmFuc2FjdGlvbi1jdXJyZW5jeVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RSQU5TQUNUSU9OX0FNT1VOVCA9IFwidHJhbnNhY3Rpb24tYW1vdW50XCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9MQU5HVUFHRSA9IFwibGFuZ3VhZ2VcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX0JEQVkgPSBcImJkYXlcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9CREFZX0RBWSA9IFwiYmRheS1kYXlcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9CREFZX01PTlRIID0gXCJiZGF5LW1vbnRoXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfQkRBWV9ZRUFSID0gXCJiZGF5LXllYXJcIjtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1NFWCA9IFwic2V4XCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9VUkwgPSBcInVybFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfUEhPVE8gPSBcInBob3RvXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRFMgPSBbXG4gICAgQVVUT0ZJTExfRklFTERfU1RSRUVUX0FERFJFU1MsIEFVVE9GSUxMX0ZJRUxEX0FERFJFU1NfTElORV8xLCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMixcbiAgICBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xJTkVfMywgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF80LCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzMsXG4gICAgQVVUT0ZJTExfRklFTERfQUREUkVTU19MRVZFTF8yLCBBVVRPRklMTF9GSUVMRF9BRERSRVNTX0xFVkVMXzEsIEFVVE9GSUxMX0ZJRUxEX05BTUUsXG4gICAgQVVUT0ZJTExfRklFTERfSE9OT1JJRklDX1BSRUZJWCwgQVVUT0ZJTExfRklFTERfR0lWRU5fTkFNRSwgQVVUT0ZJTExfRklFTERfQURESVRJT05BTF9OQU1FLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0ZBTUlMWV9OQU1FLCBBVVRPRklMTF9GSUVMRF9IT05PUklGSUNfU1VGRklYLCBBVVRPRklMTF9GSUVMRF9OSUNLTkFNRSwgQVVUT0ZJTExfRklFTERfVVNFUk5BTUUsXG4gICAgQVVUT0ZJTExfRklFTERfTkVXX1BBU1NXT1JELCBBVVRPRklMTF9GSUVMRF9DVVJSRU5UX1BBU1NXT1JELCBBVVRPRklMTF9GSUVMRF9PUkdBTklaQVRJT05fVElUTEUsXG4gICAgQVVUT0ZJTExfRklFTERfT1JHQU5JWkFUSU9OLCBBVVRPRklMTF9GSUVMRF9DT1VOVFJZLCBBVVRPRklMTF9GSUVMRF9DT1VOVFJZX05BTUUsIEFVVE9GSUxMX0ZJRUxEX1BPU1RBTF9DT0RFLFxuICAgIEFVVE9GSUxMX0ZJRUxEX0NDX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0NDX0dJVkVOX05BTUUsIEFVVE9GSUxMX0ZJRUxEX0NDX0FERElUSU9OQUxfTkFNRSxcbiAgICBBVVRPRklMTF9GSUVMRF9DQ19GQU1JTFlfTkFNRSwgQVVUT0ZJTExfRklFTERfQ0NfTlVNQkVSLCBBVVRPRklMTF9GSUVMRF9DQ19FWFAsIEFVVE9GSUxMX0ZJRUxEX0NDX0VYUF9NT05USCxcbiAgICBBVVRPRklMTF9GSUVMRF9DQ19FWFBfWUVBUiwgQVVUT0ZJTExfRklFTERfQ0NfQ1NDLCBBVVRPRklMTF9GSUVMRF9DQ19UWVBFLCBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9DVVJSRU5DWSxcbiAgICBBVVRPRklMTF9GSUVMRF9UUkFOU0FDVElPTl9BTU9VTlQsIEFVVE9GSUxMX0ZJRUxEX0xBTkdVQUdFLCBBVVRPRklMTF9GSUVMRF9CREFZLCBBVVRPRklMTF9GSUVMRF9CREFZX0RBWSxcbiAgICBBVVRPRklMTF9GSUVMRF9CREFZX01PTlRILCBBVVRPRklMTF9GSUVMRF9CREFZX1lFQVIsIEFVVE9GSUxMX0ZJRUxEX1NFWCwgQVVUT0ZJTExfRklFTERfVVJMLCBBVVRPRklMTF9GSUVMRF9QSE9UT1xuXTtcblxuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTCA9IFwidGVsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0NPVU5UUllfQ09ERSA9IFwidGVsLWNvdW50cnktY29kZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9OQVRJT05BTCA9IFwidGVsLW5hdGlvbmFsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0FSRUFfQ09ERSA9IFwidGVsLWFyZWEtY29kZVwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTCA9IFwidGVsLWxvY2FsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMX1BSRUZJWCA9IFwidGVsLWxvY2FsLXByZWZpeFwiO1xuZXhwb3J0IGNvbnN0IEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9TVUZGSVggPSBcInRlbC1sb2NhbC1zdWZmaXhcIjtcbmV4cG9ydCBjb25zdCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfRVhURU5TSU9OID0gXCJ0ZWwtZXh0ZW5zaW9uXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfRU1BSUwgPSBcImVtYWlsXCI7XG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERfSU1QUCA9IFwiaW1wcFwiO1xuXG5leHBvcnQgY29uc3QgQVVUT0ZJTExfRklFTERTX0NPTlRBQ1QgPSBbXG4gICAgQVVUT0ZJTExfRklFTERfVEVMLCBBVVRPRklMTF9GSUVMRF9URUxfQ09VTlRSWV9DT0RFLCBBVVRPRklMTF9GSUVMRF9URUxfTkFUSU9OQUwsIEFVVE9GSUxMX0ZJRUxEX1RFTF9BUkVBX0NPREUsXG4gICAgQVVUT0ZJTExfRklFTERfVEVMX0xPQ0FMLCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfUFJFRklYLCBBVVRPRklMTF9GSUVMRF9URUxfTE9DQUxfU1VGRklYLFxuICAgIEFVVE9GSUxMX0ZJRUxEX1RFTF9MT0NBTF9FWFRFTlNJT04sIEFVVE9GSUxMX0ZJRUxEX0VNQUlMLCBBVVRPRklMTF9GSUVMRF9JTVBQXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNBZGRyZXNzVG9rZW4odG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBVVRPRklMTF9UT0tFTlNfQUREUkVTUy5pbmRleE9mKHRva2VuKSA+IC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250YWN0RmllbGQodG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBVVRPRklMTF9GSUVMRFNfQ09OVEFDVC5pbmRleE9mKHRva2VuKSA+IC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250YWN0VG9rZW4odG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBVVRPRklMTF9UT0tFTlNfQ09OVEFDVC5pbmRleE9mKHRva2VuKSA+IC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaWVsZCh0b2tlbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFVVE9GSUxMX0ZJRUxEUy5pbmRleE9mKHRva2VuKSA+IC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWN0aW9uVG9rZW4odG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0b2tlbi5zdGFydHNXaXRoKFwic2VjdGlvbi1cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZSh0b2tlbnM6IHN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgY29uc3QgdG9FeHByZXNzaW9uID0gKHRvdGFsOiBzdHJpbmcsIGN1cnJlbnRWYWx1ZTogc3RyaW5nKSA9PiBgJHt0b3RhbH18JHtjdXJyZW50VmFsdWV9YDtcbiAgICBjb25zdCB0b2tlbnNBZGRyZXNzID0gQVVUT0ZJTExfVE9LRU5TX0FERFJFU1MucmVkdWNlKHRvRXhwcmVzc2lvbik7XG4gICAgY29uc3QgdG9rZW5zQ29udGFjdCA9IEFVVE9GSUxMX1RPS0VOU19DT05UQUNULnJlZHVjZSh0b0V4cHJlc3Npb24pO1xuICAgIGNvbnN0IGZpZWxkcyA9IEFVVE9GSUxMX0ZJRUxEUy5yZWR1Y2UodG9FeHByZXNzaW9uKTtcbiAgICBjb25zdCBmaWVsZHNDb250YWN0ID0gQVVUT0ZJTExfRklFTERTX0NPTlRBQ1QucmVkdWNlKHRvRXhwcmVzc2lvbik7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeKHNlY3Rpb24tXFxcXHcrXFxcXHN7MX0pPygoJHt0b2tlbnNBZGRyZXNzfSl7MX1cXFxccyk/KCgke2ZpZWxkc30pezF9fCgoJHt0b2tlbnNDb250YWN0fSl7MX1cXFxcc3sxfSgke2ZpZWxkc0NvbnRhY3R9KSkpJGApO1xuXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodG9rZW5zKTtcbn1cbiJdfQ==

@@ -12,2 +12,3 @@ /**

}
// tslint:disable-next-line:ban-types
/**

@@ -41,2 +42,2 @@ * @param {?} value

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvY29yZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUN0QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBVTtJQUNqQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUN2QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNyQyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0FBQ3ZELENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFVO0lBQy9CLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvY29yZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUN0QyxDQUFDOzs7Ozs7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQVU7SUFDakMsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDdkMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDL0IsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDckMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDL0IsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztBQUN2RCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpiYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xufVxuIl19

@@ -5,3 +5,3 @@ /**

*/
export { DynamicFormArrayComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicTemplateableFormControlComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicIdDirective, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DisabledMatcher, HiddenMatcher, RequiredMatcher, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from "./lib/core";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwraUpBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmVcIjtcbiJdfQ==
export { DynamicFormArrayComponent, DynamicFormGroupComponent, DynamicFormComponent, DynamicFormControlContainerComponent, isDynamicFormControlEvent, DynamicFormControlEventType, DynamicFormControlComponent, DynamicFormControlWithTemplateComponent, serializable, getSerializables, serialize, METADATA_KEY_SERIALIZABLE, DynamicListDirective, DYNAMIC_TEMPLATE_DIRECTIVE_ALIGNMENT, DynamicTemplateDirective, DynamicFormControlModel, DynamicFormValueControlModel, DynamicCheckControlModel, DynamicDateControlModel, DynamicFileControlModel, DynamicInputControlModel, DynamicFormOption, DynamicOptionControlModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DynamicCheckboxModel, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DynamicCheckboxGroupModel, DYNAMIC_FORM_CONTROL_TYPE_COLORPICKER, DynamicColorPickerModel, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DynamicDatePickerModel, DYNAMIC_FORM_CONTROL_TYPE_EDITOR, DynamicEditorModel, DYNAMIC_FORM_CONTROL_TYPE_FILE_UPLOAD, DynamicFileUploadModel, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DynamicFormGroupModel, DynamicFormArrayGroupModel, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayModel, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_COLOR, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_DATETIME_LOCAL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_EMAIL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_FILE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_MONTH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_NUMBER, DYNAMIC_FORM_CONTROL_INPUT_TYPE_PASSWORD, DYNAMIC_FORM_CONTROL_INPUT_TYPE_RANGE, DYNAMIC_FORM_CONTROL_INPUT_TYPE_SEARCH, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TEXT, DYNAMIC_FORM_CONTROL_INPUT_TYPE_TIME, DYNAMIC_FORM_CONTROL_INPUT_TYPE_URL, DYNAMIC_FORM_CONTROL_INPUT_TYPE_WEEK, DynamicInputModel, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DynamicRadioGroupModel, DYNAMIC_FORM_CONTROL_TYPE_RATING, DynamicRatingModel, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DynamicSelectModel, DYNAMIC_FORM_CONTROL_TYPE_SLIDER, DynamicSliderModel, DYNAMIC_FORM_CONTROL_TYPE_SWITCH, DynamicSwitchModel, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_TEXTAREA_WRAP_HARD, DYNAMIC_FORM_TEXTAREA_WRAP_SOFT, DynamicTextAreaModel, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DynamicTimePickerModel, DynamicFormService, DYNAMIC_FORM_CONTROL_MAP_FN, DynamicFormComponentService, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, MATCH_DISABLED, MATCH_ENABLED, MATCH_HIDDEN, MATCH_OPTIONAL, MATCH_REQUIRED, MATCH_VISIBLE, AND_OPERATOR, OR_OPERATOR, DYNAMIC_MATCHERS, DISABLED_MATCHER, HIDDEN_MATCHER, REQUIRED_MATCHER, DISABLED_MATCHER_PROVIDER, HIDDEN_MATCHER_PROVIDER, REQUIRED_MATCHER_PROVIDER, DYNAMIC_MATCHER_PROVIDERS, DYNAMIC_VALIDATORS, isAddressToken, isContactField, isContactToken, isField, isSectionToken, validate, AUTOCOMPLETE_OFF, AUTOCOMPLETE_ON, AUTOFILL_TOKEN_BILLING, AUTOFILL_TOKEN_SHIPPING, AUTOFILL_TOKENS_ADDRESS, AUTOFILL_TOKEN_HOME, AUTOFILL_TOKEN_WORK, AUTOFILL_TOKEN_MOBILE, AUTOFILL_TOKEN_FAX, AUTOFILL_TOKEN_PAGER, AUTOFILL_TOKENS_CONTACT, AUTOFILL_FIELD_STREET_ADDRESS, AUTOFILL_FIELD_ADDRESS_LINE_1, AUTOFILL_FIELD_ADDRESS_LINE_2, AUTOFILL_FIELD_ADDRESS_LINE_3, AUTOFILL_FIELD_ADDRESS_LEVEL_4, AUTOFILL_FIELD_ADDRESS_LEVEL_3, AUTOFILL_FIELD_ADDRESS_LEVEL_2, AUTOFILL_FIELD_ADDRESS_LEVEL_1, AUTOFILL_FIELD_NAME, AUTOFILL_FIELD_HONORIFIC_PREFIX, AUTOFILL_FIELD_GIVEN_NAME, AUTOFILL_FIELD_ADDITIONAL_NAME, AUTOFILL_FIELD_FAMILY_NAME, AUTOFILL_FIELD_HONORIFIC_SUFFIX, AUTOFILL_FIELD_NICKNAME, AUTOFILL_FIELD_USERNAME, AUTOFILL_FIELD_NEW_PASSWORD, AUTOFILL_FIELD_CURRENT_PASSWORD, AUTOFILL_FIELD_ORGANIZATION_TITLE, AUTOFILL_FIELD_ORGANIZATION, AUTOFILL_FIELD_COUNTRY, AUTOFILL_FIELD_COUNTRY_NAME, AUTOFILL_FIELD_POSTAL_CODE, AUTOFILL_FIELD_CC_NAME, AUTOFILL_FIELD_CC_GIVEN_NAME, AUTOFILL_FIELD_CC_ADDITIONAL_NAME, AUTOFILL_FIELD_CC_FAMILY_NAME, AUTOFILL_FIELD_CC_NUMBER, AUTOFILL_FIELD_CC_EXP, AUTOFILL_FIELD_CC_EXP_MONTH, AUTOFILL_FIELD_CC_EXP_YEAR, AUTOFILL_FIELD_CC_CSC, AUTOFILL_FIELD_CC_TYPE, AUTOFILL_FIELD_TRANSACTION_CURRENCY, AUTOFILL_FIELD_TRANSACTION_AMOUNT, AUTOFILL_FIELD_LANGUAGE, AUTOFILL_FIELD_BDAY, AUTOFILL_FIELD_BDAY_DAY, AUTOFILL_FIELD_BDAY_MONTH, AUTOFILL_FIELD_BDAY_YEAR, AUTOFILL_FIELD_SEX, AUTOFILL_FIELD_URL, AUTOFILL_FIELD_PHOTO, AUTOFILL_FIELDS, AUTOFILL_FIELD_TEL, AUTOFILL_FIELD_TEL_COUNTRY_CODE, AUTOFILL_FIELD_TEL_NATIONAL, AUTOFILL_FIELD_TEL_AREA_CODE, AUTOFILL_FIELD_TEL_LOCAL, AUTOFILL_FIELD_TEL_LOCAL_PREFIX, AUTOFILL_FIELD_TEL_LOCAL_SUFFIX, AUTOFILL_FIELD_TEL_LOCAL_EXTENSION, AUTOFILL_FIELD_EMAIL, AUTOFILL_FIELD_IMPP, AUTOFILL_FIELDS_CONTACT, isBoolean, isFunction, isNumber, isObject, isString, maskToString, maskFromString, parseReviver, DynamicFormsCoreModule } from "./lib/core";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1keW5hbWljLWZvcm1zL2NvcmUvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxvbEpBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmVcIjtcbiJdfQ==

@@ -6,3 +6,5 @@ import { QueryList } from "@angular/core";

import { DynamicFormArrayModel } from "../model/form-array/dynamic-form-array.model";
import { DynamicFormControlContainerComponent } from "./dynamic-form-control-container.component";
export declare abstract class DynamicFormArrayComponent extends DynamicFormControlComponent {
components: QueryList<DynamicFormControlContainerComponent>;
model: DynamicFormArrayModel;

@@ -13,2 +15,3 @@ templates: QueryList<DynamicTemplateDirective> | undefined;

readonly endTemplate: DynamicTemplateDirective | undefined;
markForCheck(): void;
}

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

import { ComponentFactoryResolver, ComponentRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges, Type, ViewContainerRef } from "@angular/core";
import { ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges, Type, ViewContainerRef } from "@angular/core";
import { FormControl, FormGroup } from "@angular/forms";
import { Subscription } from "rxjs";
import { DynamicFormControlCustomEvent, DynamicFormControlEvent } from "./dynamic-form-control.event";
import { DynamicFormControlCustomEvent, DynamicFormControlEvent } from "./dynamic-form-control-event";
import { DynamicFormControlModel } from "../model/dynamic-form-control.model";
import { DynamicFormArrayGroupModel } from "../model/form-array/dynamic-form-array.model";
import { DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace } from "../model/misc/dynamic-form-control-layout.model";
import { DynamicFormControl } from "./dynamic-form-control.interface";
import { DynamicFormControlLayout, DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace } from "../model/misc/dynamic-form-control-layout.model";
import { DynamicFormControl } from "./dynamic-form-control-interface";
import { DynamicTemplateDirective } from "../directive/dynamic-template.directive";

@@ -15,2 +15,3 @@ import { DynamicFormLayout, DynamicFormLayoutService } from "../service/dynamic-form-layout.service";

export declare abstract class DynamicFormControlContainerComponent implements OnChanges, OnDestroy {
protected changeDetectorRef: ChangeDetectorRef;
protected componentFactoryResolver: ComponentFactoryResolver;

@@ -25,2 +26,4 @@ protected layoutService: DynamicFormLayoutService;

hasFocus: boolean;
hostClass: string[];
klass: string;
layout: DynamicFormLayout;

@@ -37,20 +40,22 @@ model: DynamicFormControlModel;

protected componentSubscriptions: Subscription[];
protected controlLayout: DynamicFormControlLayout;
protected subscriptions: Subscription[];
protected constructor(componentFactoryResolver: ComponentFactoryResolver, layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService, componentService: DynamicFormComponentService, relationService: DynamicFormRelationService);
protected constructor(changeDetectorRef: ChangeDetectorRef, componentFactoryResolver: ComponentFactoryResolver, layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService, componentService: DynamicFormComponentService, relationService: DynamicFormRelationService);
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
abstract readonly componentType: Type<DynamicFormControl> | null;
readonly errorMessages: string[];
readonly id: string;
readonly hasLabel: boolean;
readonly hasHint: boolean;
readonly hint: string | null;
readonly hasLabel: boolean;
readonly errorMessages: string[];
readonly showErrorMessages: boolean;
readonly isCheckbox: boolean;
readonly elementId: string;
readonly isInvalid: boolean;
readonly isValid: boolean;
readonly showErrorMessages: boolean;
readonly templates: QueryList<DynamicTemplateDirective> | undefined;
readonly startTemplate: DynamicTemplateDirective | undefined;
readonly endTemplate: DynamicTemplateDirective | undefined;
getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace, model?: DynamicFormControlModel): string;
getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace): string;
markForCheck(): void;
protected createFormControlComponent(): void;

@@ -63,2 +68,5 @@ protected destroyFormControlComponent(): void;

onModelDisabledUpdates(disabled: boolean): void;
onLayoutOrModelChange(): void;
onModelChange(): void;
onGroupOrModelChange(): void;
onChange($event: Event | DynamicFormControlEvent | any): void;

@@ -68,4 +76,4 @@ onBlur($event: FocusEvent | DynamicFormControlEvent | any): void;

onCustomEvent($event: DynamicFormControlEvent | DynamicFormControlCustomEvent): void;
private registerComponentRef;
private unregisterComponentRef;
private registerFormControlComponentRef;
private unregisterFormControlComponentRef;
}
import { EventEmitter } from "@angular/core";
import { AbstractControl, FormGroup } from "@angular/forms";
import { DynamicFormControl } from "./dynamic-form-control.interface";
import { DynamicFormControlCustomEvent } from "./dynamic-form-control.event";
import { DynamicFormControl } from "./dynamic-form-control-interface";
import { DynamicFormControlCustomEvent } from "./dynamic-form-control-event";
import { DynamicFormControlModel } from "../model/dynamic-form-control.model";
import { DynamicCheckboxModel } from "../model/checkbox/dynamic-checkbox.model";
import { DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace } from "../model/misc/dynamic-form-control-layout.model";
import { DynamicFormControlLayout, DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace } from "../model/misc/dynamic-form-control-layout.model";
import { DynamicFormValidationService } from "../service/dynamic-form-validation.service";

@@ -14,4 +13,5 @@ import { DynamicFormLayout, DynamicFormLayoutService, DynamicFormControlTemplates } from "../service/dynamic-form-layout.service";

private _hasFocus;
formLayout: DynamicFormLayout;
group: FormGroup;
layout: DynamicFormLayout;
layout: DynamicFormControlLayout;
model: DynamicFormControlModel;

@@ -21,18 +21,17 @@ templates: DynamicFormControlTemplates;

change: EventEmitter<any>;
customEvent: EventEmitter<DynamicFormControlCustomEvent> | undefined;
customEvent: EventEmitter<DynamicFormControlCustomEvent>;
focus: EventEmitter<any>;
protected constructor(layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService);
readonly control: AbstractControl | never;
readonly elementId: string;
readonly id: string;
readonly errorMessages: string[];
readonly showErrorMessages: boolean;
readonly hasFocus: boolean;
readonly isInvalid: boolean;
readonly isValid: boolean;
readonly showErrorMessages: boolean;
getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace, model?: DynamicFormControlModel): string;
onBlur($event: any): void;
onChange($event: any): void;
onEmbeddedCheckboxChange($event: Event, model: DynamicCheckboxModel): void;
onCustomEvent($event: any, type?: string | null, bypass?: boolean): void;
onFocus($event: any): void;
}
export * from "./component/dynamic-form-array.component";
export * from "./component/dynamic-form-component";
export * from "./component/dynamic-form-group.component";
export * from "./component/dynamic-form.component";
export * from "./component/dynamic-form-control-container.component";
export * from "./component/dynamic-form-control.event";
export * from "./component/dynamic-form-control-event";
export * from "./component/dynamic-form-control.component";
export * from "./component/dynamic-form-control.interface";
export * from "./component/dynamic-templateable-form-control.component";
export * from "./component/dynamic-templateable-form-control.interface";
export * from "./component/dynamic-form-control-interface";
export * from "./component/dynamic-form-control-with-template.component";
export * from "./component/dynamic-form-control-with-template-interface";
export * from "./decorator/serializable.decorator";
export * from "./directive/dynamic-id.directive";
export * from "./directive/dynamic-list.directive";

@@ -46,4 +46,4 @@ export * from "./directive/dynamic-template.directive";

export * from "./service/dynamic-form-validation.service";
export * from "./service/dynamic-form-relation.matchers";
export * from "./service/dynamic-form.validators";
export * from "./service/dynamic-form-relation-matchers";
export * from "./service/dynamic-form-validators";
export * from "./utils/autofill.utils";

@@ -50,0 +50,0 @@ export * from "./utils/core.utils";

import { ComponentRef, InjectionToken, Type } from "@angular/core";
import { DynamicFormControl } from "../component/dynamic-form-control.interface";
import { DynamicFormControl } from "../component/dynamic-form-control-interface";
import { DynamicFormComponent } from "../component/dynamic-form.component";
import { DynamicFormControlModel } from "../model/dynamic-form-control.model";

@@ -9,8 +10,12 @@ export declare type DynamicFormControlRef = ComponentRef<DynamicFormControl>;

private readonly DYNAMIC_FORM_CONTROL_MAP_FN;
private componentRefs;
private forms;
private formControls;
constructor(DYNAMIC_FORM_CONTROL_MAP_FN: any);
getForms(): IterableIterator<DynamicFormComponent>;
registerForm(component: DynamicFormComponent): void;
unregisterForm(component: DynamicFormComponent): void;
getFormControlRef(modelId: string, index?: number): DynamicFormControlRef | undefined;
registerFormControlRef(model: DynamicFormControlModel, instance: DynamicFormControlRef, index?: number): void;
unregisterFormControlRef(modelId: string, index?: number): void;
registerFormControl(model: DynamicFormControlModel, ref: DynamicFormControlRef, index?: number): void;
unregisterFormControl(modelId: string, index?: number): void;
getCustomComponentType(model: DynamicFormControlModel): Type<DynamicFormControl> | null;
}

@@ -16,4 +16,5 @@ import { QueryList } from "@angular/core";

getEndTemplate(model: DynamicFormControlModel, templates: DynamicFormControlTemplates): DynamicTemplateDirective | undefined;
getClass(layout: DynamicFormControlLayout | null, context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace): string;
getClass(layout: DynamicFormControlLayout | null | undefined, context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace): string;
getHostClass(layout: DynamicFormControlLayout | null | undefined): string;
getElementId(model: DynamicFormControlModel): string;
}
import { Injector } from "@angular/core";
import { FormControl, FormGroup } from "@angular/forms";
import { DynamicFormControlModel } from "../model/dynamic-form-control.model";
import { DynamicFormControlMatcher } from "./dynamic-form-relation.matchers";
import { DynamicFormControlMatcher } from "./dynamic-form-relation-matchers";
import { DynamicFormControlRelation } from "../model/misc/dynamic-form-control-relation.model";

@@ -6,0 +6,0 @@ import { Subscription } from "rxjs";

import { AbstractControl, AsyncValidatorFn, ValidatorFn } from "@angular/forms";
import { DynamicFormControlModel } from "../model/dynamic-form-control.model";
import { DynamicValidatorsConfig } from "../model/misc/dynamic-form-control-validation.model";
import { Validator, ValidatorFactory } from "./dynamic-form.validators";
import { Validator, ValidatorFactory } from "./dynamic-form-validators";
export declare class DynamicFormValidationService {

@@ -6,0 +6,0 @@ private VALIDATORS;

@@ -8,5 +8,8 @@ import { AbstractControl, FormArray, FormGroup } from "@angular/forms";

import { DynamicPathable } from "../model/misc/dynamic-form-control-path.model";
import { DynamicFormComponent } from "../component/dynamic-form.component";
import { DynamicFormComponentService } from "./dynamic-form-component.service";
export declare class DynamicFormService {
private componentService;
private validationService;
constructor(validationService: DynamicFormValidationService);
constructor(componentService: DynamicFormComponentService, validationService: DynamicFormValidationService);
private createAbstractControlOptions;

@@ -27,5 +30,6 @@ createFormArray(formArrayModel: DynamicFormArrayModel): FormArray;

findById(id: string, formModel: DynamicFormModel): DynamicFormControlModel | null;
findModelById(id: string, formModel: DynamicFormModel): DynamicFormControlModel | null;
findControlByModel(model: DynamicFormControlModel, group: FormGroup): AbstractControl | null;
findModelById<T extends DynamicFormControlModel>(id: string, formModel: DynamicFormModel): T | null;
findControlByModel<T extends AbstractControl>(model: DynamicFormControlModel, group: FormGroup): T | null;
detectChanges(formComponent?: DynamicFormComponent): void;
fromJSON(json: string | object[]): DynamicFormModel | never;
}
{
"name": "@ng-dynamic-forms/core",
"version": "9.1.0",
"version": "10.0.0",
"description": "A rapid form development library for Angular",

@@ -5,0 +5,0 @@ "keywords": [

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

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 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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc