Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ng-select2-component

Package Overview
Dependencies
Maintainers
1
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ng-select2-component - npm Package Compare versions

Comparing version 7.2.1 to 7.2.2

2

bundles/ng-select2-component.umd.min.js

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs"),require("@angular/common"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ng-select2-component",["exports","rxjs","@angular/common","@angular/core","@angular/forms"],t):t(e["ng-select2-component"]={},e.rxjs,e.ng.common,e.ng.core,e.ng.forms)}(this,function(e,l,t,i,n){"use strict";function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}var s=[{l:"a",s:/[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi},{l:"aa",s:/ꜳ/gi},{l:"ae",s:/[æǽǣ]/gi},{l:"ao",s:/ꜵ/gi},{l:"au",s:/ꜷ/gi},{l:"av",s:/[ꜹꜻ]/gi},{l:"ay",s:/ꜽ/gi},{l:"b",s:/[ⓑbḃḅḇƀƃɓ]/gi},{l:"c",s:/[ⓒcćĉċčçḉƈȼꜿↄ]/gi},{l:"d",s:/[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi},{l:"dz",s:/[dzdž]/gi},{l:"e",s:/[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi},{l:"f",s:/[ⓕfḟƒꝼ]/gi},{l:"g",s:/[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi},{l:"h",s:/[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi},{l:"hv",s:/ƕ/gi},{l:"i",s:/[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi},{l:"j",s:/[ⓙjĵǰɉ]/gi},{l:"k",s:/[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi},{l:"l",s:/[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi},{l:"lj",s:/lj/gi},{l:"m",s:/[ⓜmḿṁṃɱɯ]/gi},{l:"n",s:/[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi},{l:"nj",s:/nj/gi},{l:"o",s:/[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi},{l:"oi",s:/ƣ/gi},{l:"oe",s:/œ/gi},{l:"oo",s:/ꝏ/gi},{l:"ou",s:/ȣ/gi},{l:"p",s:/[ⓟpṕṗƥᵽꝑꝓꝕ]/gi},{l:"q",s:/[ⓠqɋꝗꝙ]/gi},{l:"r",s:/[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi},{l:"s",s:/[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi},{l:"t",s:/[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi},{l:"tz",s:/ꜩ/gi},{l:"u",s:/[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi},{l:"v",s:/[ⓥvṽṿʋꝟʌ]/gi},{l:"vy",s:/ꝡ/gi},{l:"w",s:/[ⓦwẁẃŵẇẅẘẉⱳ]/gi},{l:"x",s:/[ⓧxẋẍ]/gi},{l:"y",s:/[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi},{l:"z",s:/[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi}],o=(m.getOptionByValue=function(e,t){var n,o,r,l;if(Array.isArray(e))try{for(var i=b(e),s=i.next();!s.done;s=i.next()){var a=s.value,c=a.options;if(c)try{for(var u=b(c),p=u.next();!p.done;p=u.next()){var d=p.value;if(d.value===t)return d}}catch(h){r={error:h}}finally{try{p&&!p.done&&(l=u["return"])&&l.call(u)}finally{if(r)throw r.error}}else if(a.value===t)return a}}catch(f){n={error:f}}finally{try{s&&!s.done&&(o=i["return"])&&o.call(i)}finally{if(n)throw n.error}}return null},m.getOptionsByValue=function(e,t,n){var o,r;if(n){var l=Array.isArray(t)?t:[],i=[];try{for(var s=b(l),a=s.next();!a.done;a=s.next()){var c=a.value,c=m.getOptionByValue(e,c);c&&i.push(c)}}catch(u){o={error:u}}finally{try{a&&!a.done&&(r=s["return"])&&r.call(s)}finally{if(o)throw o.error}}return i}return m.getOptionByValue(e,t)},m.getFirstAvailableOption=function(e){var t,n,o,r;if(Array.isArray(e))try{for(var l=b(e),i=l.next();!i.done;i=l.next()){var s=i.value,a=s.options;if(a)try{for(var c,u=b(a),p=u.next();!p.done;p=u.next())if(!(c=p.value).disabled)return c.value}catch(d){o={error:d}}finally{try{p&&!p.done&&(r=u["return"])&&r.call(u)}finally{if(o)throw o.error}}else if(!(c=s).disabled)return c.value}}catch(h){t={error:h}}finally{try{i&&!i.done&&(n=l["return"])&&n.call(l)}finally{if(t)throw t.error}}return null},m.getOptionsCount=function(e){var t,n,o=0;if(Array.isArray(e))try{for(var r=b(e),l=r.next();!l.done;l=r.next()){var i=l.value.options;i?o+=i.length:o++}}catch(s){t={error:s}}finally{try{l&&!l.done&&(n=r["return"])&&n.call(r)}finally{if(t)throw t.error}}return o},m.valueIsNotInFilteredData=function(e,t){var n,o,r,l;if(m.isNullOrUndefined(t))return!0;try{for(var i=b(e),s=i.next();!s.done;s=i.next()){var a=s.value,c=a.options;if(c)try{for(var u=b(c),p=u.next();!p.done;p=u.next())if(p.value.value===t)return!1}catch(d){r={error:d}}finally{try{p&&!p.done&&(l=u["return"])&&l.call(u)}finally{if(r)throw r.error}}else if(a.value===t)return!1}}catch(h){n={error:h}}finally{try{s&&!s.done&&(o=i["return"])&&o.call(i)}finally{if(n)throw n.error}}return!0},m.getPreviousOption=function(e,t){for(var n=m.isNullOrUndefined(t),o=e.length-1;0<=o;o--){var r=e[o],l=r.options;if(l)for(var i=l.length-1;0<=i;i--){var s=l[i];if(n&&!s.disabled)return s;n=n||s.value===t}else{s=r;if(n&&!s.disabled)return s;n=n||s.value===t}}return null},m.getNextOption=function(e,t){var n,o,r,l,i=m.isNullOrUndefined(t);try{for(var s=b(e),a=s.next();!a.done;a=s.next()){var c=a.value,u=c.options;if(u)try{for(var p=b(u),d=p.next();!d.done;d=p.next()){var h=d.value;if(i){if(!h.disabled)return h}else i=i||h.value===t}}catch(f){r={error:f}}finally{try{d&&!d.done&&(l=p["return"])&&l.call(p)}finally{if(r)throw r.error}}else{h=c;if(i){if(!h.disabled)return h}else i=i||h.value===t}}}catch(g){n={error:g}}finally{try{a&&!a.done&&(o=s["return"])&&o.call(s)}finally{if(n)throw n.error}}return null},m.isNullOrUndefined=function(e){return null===e||e===undefined},m.containSearchText=function(e,t,n){return!t||null!==m.formatSansUnicode(e).match(new RegExp(m.formatPattern(t,n),"i"))},m.protectPattern=function(e){return e.replace(new RegExp("[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]","g"),"\\$&")},m.formatSansUnicode=function(e){var t,n;try{for(var o=b(s),r=o.next();!r.done;r=o.next()){var l=r.value;e=e.replace(l.s,l.l)}}catch(i){t={error:i}}finally{try{r&&!r.done&&(n=o["return"])&&n.call(o)}finally{if(t)throw t.error}}return e},m.formatPattern=function(e,t){return e=m.formatSansUnicode(m.protectPattern(e)),t&&"function"==typeof t&&(e=t(e)),e},m.getFilteredData=function(e,t,n){var o,r;if(t){var l=[];try{for(var i=b(e),s=i.next();!s.done;s=i.next()){var a=s.value,c=a.options;c?c.some(function(e){return m.containSearchText(e.label,t,n)})&&(c=c.filter(function(e){return m.containSearchText(e.label,t,n)}),l.push({label:a.label,options:c})):m.containSearchText(a.label,t,n)&&l.push(a)}}catch(u){o={error:u}}finally{try{s&&!s.done&&(r=i["return"])&&r.call(i)}finally{if(o)throw o.error}}return l}return e},m.getFilteredSelectedData=function(e,t){var n,o,r=[];try{for(var l=b(e),i=l.next();!i.done;i=l.next()){var s=i.value,a=s.options;a?(a=a.filter(function(e){return"false"===m.isSelected(t,e,!0)})).length&&r.push({label:s.label,options:a}):"false"===m.isSelected(t,s,!0)&&r.push(s)}}catch(c){n={error:c}}finally{try{i&&!i.done&&(o=l["return"])&&o.call(l)}finally{if(n)throw n.error}}return r},m.isSearchboxHiddex=function(e,t){return""!==t&&t!==undefined&&null!==t&&!isNaN(+t)||(t=6),m.getOptionsCount(e)<+t},m.isSelected=function(e,t,n){return n?e&&e.some(function(e){return e.value===t.value})?"true":"false":e&&t.value===e.value?"true":"false"},m.removeSelection=function(e,t){for(var n=0;n<e.length;n++)if(e[n].value===t.value)return void e.splice(n,1)},m);function m(){}var a=0,r=["default","hidden","always"],c=(Object.defineProperty(u.prototype,"select2Options",{get:function(){return this.multiple?this.option:null},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"select2Option",{get:function(){return this.multiple?null:this.option},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"searchText",{get:function(){return this.innerSearchText},set:function(e){this.customSearchEnabled&&this.search.emit({component:this,value:this._value,search:e}),this.innerSearchText=e},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"minCountForSearch",{get:function(){return this._minCountForSearch},set:function(e){this._minCountForSearch=e,this.updateSearchBox()},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"id",{get:function(){return this._id},set:function(e){this._id=e||this._uid},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"required",{get:function(){return this._required},set:function(e){this._required=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"disabled",{get:function(){return this._control?this._control.disabled:this._disabled},set:function(e){this._disabled=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"hideSelectedItems",{get:function(){return this._hideSelectedItems},set:function(e){this._hideSelectedItems=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"readonly",{get:function(){return this._readonly},set:function(e){this._readonly=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"value",{get:function(){return this._value},set:function(e){var t=this;this.testValueChange(this._value,e)&&setTimeout(function(){t._value=e,t.writeValue(e)},10)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"tabIndex",{get:function(){return this.disabled?-1:this._tabIndex},set:function(e){void 0!==e&&(this._tabIndex=e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"resettable",{get:function(){return this._resettable},set:function(e){this._resettable=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"ariaInvalid",{get:function(){return this._isErrorState()},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"classMaterial",{get:function(){return""===this.material||!0===this.material||"true"===this.material},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"classNostyle",{get:function(){return""===this.noStyle||!0===this.noStyle||"true"===this.noStyle},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"select2above",{get:function(){return"above"===this.listPosition},enumerable:!0,configurable:!0}),u.prototype.ngOnInit=function(){var e=o.getOptionsByValue(this.data,(this._control||this).value,this.multiple);null!==e&&(this.option=e),Array.isArray(e)||(this.hoveringValue=this.value),this.updateSearchBox()},u.prototype.ngAfterViewInit=function(){this.selectionElement=this.selection.nativeElement,this.searchInputElement=this.searchInput.nativeElement,this.resultsElement=this.resultContainer.nativeElement},u.prototype.ngDoCheck=function(){this.updateSearchBox(),this._dirtyCheckNativeValue()},u.prototype.ngOnDestroy=function(){window.document.body.removeEventListener("click",this._clickDetectionFc)},u.prototype.updateSearchBox=function(){var e=!this.customSearchEnabled&&o.isSearchboxHiddex(this.data,this._minCountForSearch);this.isSearchboxHidden!==e&&(this.isSearchboxHidden=e)},u.prototype.hideSearch=function(){var e=-1<r.indexOf(this.displaySearchStatus)?this.displaySearchStatus:"default";return"default"===e&&this.isSearchboxHidden||"hidden"===e},u.prototype.getOptionStyle=function(e){return"select2-results__option "+(e.hide?"select2-results__option--hide ":"")+(e.value===this.hoveringValue?"select2-results__option--highlighted ":"")+(e.classes||"")},u.prototype.mouseenter=function(e){e.disabled||(this.hoveringValue=e.value)},u.prototype.click=function(e){this.testSelection(e)&&this.select(e)},u.prototype.reset=function(e){this.select(null),e.preventDefault(),e.stopPropagation()},u.prototype.prevChange=function(e){e.stopPropagation()},u.prototype.toggleOpenAndClose=function(){var t=this;this.disabled||(this._focus(!0),this.isOpen=!this.isOpen,this.isOpen?(this.innerSearchText="",this.updateFilteredData(),this._focusSearchboxOrResultsElement(),setTimeout(function(){var e;t.option?(e=t.option instanceof Array?t.option[0]:t.option,t.updateScrollFromOption(e)):t.resultsElement.scrollTop=0}),this.open.emit(this)):this.close.emit(this),this.isOpen&&!this._clickDetection&&setTimeout(function(){window.document.body.addEventListener("click",t._clickDetectionFc,!1),t._clickDetection=!0},200),this._changeDetectorRef.markForCheck())},u.prototype.hasTemplate=function(e,t){return this.templates instanceof i.TemplateRef||this.templates&&this.templates[e.templateId]instanceof i.TemplateRef||this.templates&&this.templates[t]instanceof i.TemplateRef},u.prototype.getTemplate=function(e,t){return this.hasTemplate(e,t)?this.templates[e.templateId]||this.templates[t]||this.templates:undefined},u.prototype.testSelection=function(e){return!e.disabled&&!(this.multiple&&this.limitSelection&&!(Array.isArray(this._value)&&this._value.length<this.limitSelection))},u.prototype.testValueChange=function(e,t){var n,o;if((null===e||e===undefined)&&(null===t||t===undefined)||e===t)return!1;if(this.multiple&&e&&e.length&&t&&t.length&&e.length===t.length){try{for(var r=b(e),l=r.next();!l.done;l=r.next()){var i=l.value;if(!(-1<t.indexOf(i)))return!0}}catch(s){n={error:s}}finally{try{l&&!l.done&&(o=r["return"])&&o.call(r)}finally{if(n)throw n.error}}return!1}return!0},u.prototype.updateFilteredData=function(){var t=this;setTimeout(function(){var e=t.data;t.multiple&&t.hideSelectedItems&&(e=o.getFilteredSelectedData(e,t.option)),!t.customSearchEnabled&&t.searchText&&t.searchText.length>=+t.minCharForSearch&&(e=o.getFilteredData(e,t.searchText,t.editPattern)),o.valueIsNotInFilteredData(e,t.hoveringValue)&&(t.hoveringValue=o.getFirstAvailableOption(e)),t.filteredData=e,t._changeDetectorRef.markForCheck()})},u.prototype.clickDetection=function(e){this.ifParentContainsClass(e.target,"selection")?this.isOpen&&!this.ifParentContainsId(e.target,this._id)&&(this.toggleOpenAndClose(),this.clickExit()):(this.isOpen&&!this.ifParentContainsClass(e.target,"select2-dropdown")&&this.toggleOpenAndClose(),this.ifParentContainsId(e.target,this._id)||this.clickExit())},u.prototype.clickExit=function(){this._focus(!1),window.document.body.removeEventListener("click",this._clickDetectionFc),this._clickDetection=!1},u.prototype.ifParentContainsClass=function(e,t){return null!==this.getParentElementByClass(e,t)},u.prototype.ifParentContainsId=function(e,t){return null!==this.getParentElementById(e,t)},u.prototype.getParentElementByClass=function(e,t){return this.containClasses(e,t.trim().split(/\s+/))?e:e.parentElement?this.getParentElementByClass(e.parentElement,t):null},u.prototype.getParentElementById=function(e,t){return e.id===t?e:e.parentElement?this.getParentElementById(e.parentElement,t):null},u.prototype.containClasses=function(e,t){var n,o;if(!e.classList)return!1;try{for(var r=b(t),l=r.next();!l.done;l=r.next()){var i=l.value;if(!e.classList.contains(i))return!1}}catch(s){n={error:s}}finally{try{l&&!l.done&&(o=r["return"])&&o.call(r)}finally{if(n)throw n.error}}return!0},u.prototype.focusin=function(){this.disabled||this._focus(!0)},u.prototype.focusout=function(){this.selectionElement&&!this.selectionElement.classList.contains("select2-focused")&&(this._focus(!1),this._onTouched())},u.prototype.moveUp=function(){this.updateScrollFromOption(o.getPreviousOption(this.filteredData,this.hoveringValue))},u.prototype.moveDown=function(){this.updateScrollFromOption(o.getNextOption(this.filteredData,this.hoveringValue))},u.prototype.updateScrollFromOption=function(t){var e,n;t&&(this.hoveringValue=t.value,(n=this.results.find(function(e){return e.nativeElement.innerText.trim()===t.label}))&&(this.resultsElement.scrollTop=0,e=this.resultsElement.getBoundingClientRect(),n=n.nativeElement.getBoundingClientRect(),this.resultsElement.scrollTop=n.top-e.top))},u.prototype.selectByEnter=function(){var e;this.hoveringValue&&(e=o.getOptionByValue(this.data,this.hoveringValue),this.select(e))},u.prototype.select=function(t){var e,n;null!==t?n=this.multiple?(-1===(n=(e=this.option).findIndex(function(e){return e.value===t.value}))?e.push(t):e.splice(n,1),this.option.map(function(e){return e.value})):(this.option=t,this.isOpen&&(this.isOpen=!1,this.close.emit(this),this.selectionElement&&this.selectionElement.focus()),this.option.value):this.option=null,this.multiple&&this.hideSelectedItems&&this.updateFilteredData(),this._control?this._onChange(n):this._value=n,this.update.emit({component:this,value:n,options:Array.isArray(this.option)?this.option:this.option?[this.option]:null})},u.prototype.keyDown=function(e){this._testKey(e,["ArrowDown",40])?(this.moveDown(),e.preventDefault()):this._testKey(e,["ArrowUp",38])?(this.moveUp(),e.preventDefault()):this._testKey(e,["Enter",13])?(this.selectByEnter(),e.preventDefault()):this._testKey(e,["Escape","Tab",9,27])&&this.isOpen&&(this.toggleOpenAndClose(),this._focus(!1))},u.prototype.openKey=function(e){this._testKey(e,["ArrowDown","ArrowUp","Enter",40,38,13])?(this.toggleOpenAndClose(),e.preventDefault()):this._testKey(e,["Escape","Tab",9,27])&&(this._focus(!1),this._onTouched())},u.prototype.trackBy=function(e,t){return t.value},u.prototype.searchUpdate=function(e){this.searchText=e.target.value,this.updateFilteredData()},u.prototype.isSelected=function(e){return o.isSelected(this.option,e,this.multiple)},u.prototype.isDisabled=function(e){return e.disabled?"true":"false"},u.prototype.removeSelection=function(e,t){o.removeSelection(this.option,t),this.multiple&&this.hideSelectedItems&&this.updateFilteredData();t=this.option.map(function(e){return e.value});this._control?this._onChange(t):this._value=t,this.update.emit({component:this,value:t,options:Array.isArray(this.option)?this.option:this.option?[this.option]:null}),e.preventDefault(),e.stopPropagation(),this.isOpen&&this._focusSearchboxOrResultsElement()},u.prototype.writeValue=function(e){this._setSelectionByValue(e)},u.prototype.registerOnChange=function(e){this._onChange=e},u.prototype.registerOnTouched=function(e){this._onTouched=e},u.prototype.setDisabledState=function(e){this.disabled=e},u.prototype._isErrorState=function(){var e=this._control&&this._control.invalid,t=this._control&&this._control.touched,n=this._parentFormGroup&&this._parentFormGroup.submitted||this._parentForm&&this._parentForm.submitted;return!(!e||!t&&!n)},u.prototype._testKey=function(e,t){return void 0===t&&(t=[]),this._isKey(this._getKey(e),t)},u.prototype._getKey=function(e){var t;return e.key!==undefined?t=e.key:e.keyIdentifier!==undefined?t=e.keyIdentifier:e.keyCode!==undefined?t=e.keyCode:e.preventDefault(),t},u.prototype._isKey=function(e,t){return void 0===t&&(t=[]),!!(t&&0<t.length)&&-1!==t.indexOf(e)},u.prototype._setSelectionByValue=function(e){var t=this;if(this.option||e!==undefined&&null!==e){var n=Array.isArray(e);if(this.multiple&&e&&!n)throw new Error("Non array value.");this.data?this.multiple?(this.option=[],n&&o.getOptionsByValue(this.data,e,this.multiple).map(function(e){return t.select(e)})):this.select(o.getOptionByValue(this.data,e)):this._control&&this._control.viewToModelUpdate(e),this._changeDetectorRef.markForCheck()}},u.prototype._dirtyCheckNativeValue=function(){var e=this.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this._stateChanges.next())},u.prototype._coerceBooleanProperty=function(e){return null!=e&&""+e!="false"},u.prototype._focusSearchboxOrResultsElement=function(){this.isSearchboxHidden?this.resultsElement&&this.resultsElement.focus():this.searchInputElement&&this.searchInputElement.focus()},u.prototype._focus=function(e){!e&&this.focused?(this.focused=e,this.blur.emit(this)):e&&!this.focused&&(this.focused=e,this.focus.emit(this))},u.decorators=[{type:i.Component,args:[{selector:"select2",template:'<div class="select2-label"\r\n (click)="toggleOpenAndClose()">\r\n <ng-content select="select2-label"></ng-content><span *ngIf="required"\r\n class="select2-required"></span>\r\n</div>\r\n<div class="select2 select2-container select2-container--default select2-container--focus"\r\n [class.select2-container--below]="!select2above"\r\n [class.select2-container--above]="select2above"\r\n [class.select2-container--open]="isOpen"\r\n [class.select2-container--disabled]="disabled">\r\n <div class="selection"\r\n #selection\r\n [attr.tabindex]="!this.isOpen ? tabIndex : \'-1\'"\r\n (click)="toggleOpenAndClose()"\r\n (focus)="focusin()"\r\n (blur)="focusout()"\r\n (keydown)="openKey($event)"\r\n [class.select2-focused]="focused">\r\n <div class="select2-selection"\r\n [class.select2-selection--multiple]="multiple"\r\n [class.select2-selection--single]="!multiple"\r\n role="combobox">\r\n <span *ngIf="!multiple"\r\n class="select2-selection__rendered"\r\n [title]="select2Option?.label || \'\'">\r\n <span *ngIf="!select2Option">&nbsp;</span>\r\n <span *ngIf="select2Option"\r\n [innerHTML]="select2Option.label"></span>\r\n <span [class.select2-selection__placeholder__option]="option"\r\n class="select2-selection__placeholder">{{placeholder}}</span>\r\n </span>\r\n <span (click)="reset($event)"\r\n *ngIf="!multiple && resettable && select2Option"\r\n class="select2-selection__reset"\r\n role="presentation">×</span>\r\n <span *ngIf="!multiple"\r\n class="select2-selection__arrow"\r\n role="presentation">\r\n </span>\r\n <ul *ngIf="multiple"\r\n class="select2-selection__rendered">\r\n <span [class.select2-selection__placeholder__option]="select2Options?.length > 0"\r\n class="select2-selection__placeholder">{{placeholder}}</span>\r\n <li *ngFor="let op of option; trackBy: trackBy"\r\n class="select2-selection__choice"\r\n [title]="op.label">\r\n <span (click)="removeSelection($event, op)"\r\n class="select2-selection__choice__remove"\r\n role="presentation">×</span>\r\n <span [innerHTML]="op.label"></span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class="select2-container select2-container--default select2-container-dropdown"\r\n [class.select2-container--open]="isOpen">\r\n <div class="select2-dropdown"\r\n [class.select2-dropdown--below]="!select2above"\r\n [class.select2-dropdown--above]="select2above">\r\n <div class="select2-search select2-search--dropdown"\r\n [class.select2-search--hide]="hideSearch()">\r\n <input #searchInput\r\n [id]="id + \'-search-field\'"\r\n [value]="searchText"\r\n (keydown)="keyDown($event)"\r\n (keyup)="searchUpdate($event)"\r\n (change)="prevChange($event)"\r\n class="select2-search__field"\r\n type="search"\r\n role="textbox"\r\n autocomplete="off"\r\n autocorrect="off"\r\n autocapitalize="off"\r\n spellcheck="false"\r\n [attr.tabindex]="this.isOpen ? tabIndex : \'-1\'">\r\n </div>\r\n <div class="select2-results">\r\n <ul #results\r\n class="select2-results__options"\r\n [style.max-height]="resultMaxHeight"\r\n role="tree"\r\n tabindex="-1"\r\n (keydown)="keyDown($event)">\r\n <ng-container *ngFor="let groupOrOption of filteredData; index as i; trackBy:trackBy">\r\n <li *ngIf="groupOrOption.options"\r\n class="select2-results__option"\r\n role="group">\r\n <strong *ngIf="!hasTemplate(groupOrOption, \'group\'); else optGroup"\r\n [attr.class]="\'select2-results__group\' + (groupOrOption.classes ? \' \' + groupOrOption.classes : \'\')"\r\n [innerHTML]="groupOrOption.label"></strong>\r\n <ng-template #optGroup>\r\n <ng-container\r\n *ngTemplateOutlet="getTemplate(groupOrOption, \'group\'); context: groupOrOption">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ul class="select2-results__options select2-results__options--nested">\r\n <li *ngFor="let option of groupOrOption.options; index as j; trackBy:trackBy"\r\n #result\r\n [id]="option.id || id + \'-option-\' + i + \'-\' + j"\r\n [class]="getOptionStyle(option)"\r\n role="treeitem"\r\n [attr.aria-selected]="isSelected(option)"\r\n [attr.aria-disabled]="isDisabled(option)"\r\n (mouseenter)="mouseenter(option)"\r\n (click)="click(option)">\r\n <div *ngIf="!hasTemplate(option, \'option\'); else liGroup"\r\n class="select2-label-content"\r\n [innerHTML]="option.label"></div>\r\n <ng-template #liGroup>\r\n <ng-container\r\n *ngTemplateOutlet="getTemplate(option, \'option\'); context: option">\r\n </ng-container>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf="!groupOrOption.options"\r\n #result\r\n [id]="groupOrOption.id || id + \'-option-\' + i"\r\n [class]="getOptionStyle(groupOrOption)"\r\n role="treeitem"\r\n [attr.aria-selected]="isSelected(groupOrOption)"\r\n [attr.aria-disabled]="isDisabled(groupOrOption)"\r\n (mouseenter)="mouseenter(groupOrOption)"\r\n (click)="click(groupOrOption)">\r\n <div *ngIf="!hasTemplate(groupOrOption, \'option\'); else li"\r\n [innerHTML]="groupOrOption.label"\r\n class="select2-label-content"></div>\r\n <ng-template #li>\r\n <ng-container\r\n *ngTemplateOutlet="getTemplate(groupOrOption, \'option\'); context: groupOrOption">\r\n </ng-container>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="select2-subscript-wrapper">\r\n <ng-content select="select2-hint"></ng-content>\r\n </div>\r\n</div>\r\n',styles:[".select2-label{color:#000;color:var(--select2-label-text-color,#000)}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle;width:100%}.select2-container .select2-container-dropdown{position:absolute;width:0;opacity:0}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding:0 0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background:#fff;background:var(--select2-dropdown-background,#fff);border:1px solid #aaa;border:1px solid var(--select2-dropdown-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);box-sizing:border-box;display:block;position:absolute;width:100%;z-index:1051;height:0;overflow:hidden}.select2-dropdown .select2-label-content{display:contents}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#000;color:var(--select2-option-text-color,#000)}.select2-results__option[aria-selected]{cursor:pointer}.select2-container.select2-container-dropdown.select2-container--open{width:100%;opacity:1}.select2-container--open .select2-dropdown{overflow:auto;height:auto}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:27px;display:flex;flex-direction:column-reverse}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background:#fff}.select2-required::before{content:'*';color:red;color:var(--select2-required-color,red)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background:#fff;background:var(--select2-selection-background,#fff);border:1px solid #aaa;border:1px solid var(--select2-selection-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);display:flex}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;color:var(--select2-selection-text-color,#444);line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999;color:var(--select2-placeholder-color,#999)}.select2-container--default .select2-selection--single .select2-selection__placeholder__option{display:none}.select2-container--default .select2-selection--single .select2-selection__arrow,.select2-container--default .select2-selection--single .select2-selection__reset{display:flex;width:20px;align-items:center;justify-content:center}.select2-container--default .select2-selection--single .select2-selection__arrow::before{content:' ';border-color:#888 transparent;border-color:var(--select2-arrow-color,#888) transparent;border-style:solid;border-width:5px 4px 0;height:0;width:0}.select2-container--default .select2-selection--single .select2-selection__reset{color:#999;color:var(--select2-reset-color,#999)}.select2-container--default.select2-container--disabled .select2-selection--single{background:#eee;background:var(--select2-selection-disabled-background,#eee);cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow::before{border-color:transparent transparent #888;border-color:transparent transparent var(--select2-arrow-color,#888);border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background:#fff;background:var(--select2-selection-background,#fff);border:1px solid #aaa;border:1px solid var(--select2-selection-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{flex:1 1 auto;box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;color:var(--select2-placeholder-color,#999);margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__placeholder__option{display:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{color:#000;color:var(--select2-selection-choice-text-color,#000);background:#e4e4e4;background:var(--select2-selection-choice-background,#e4e4e4);border:1px solid #aaa;border:1px solid var(--select2-selection-choice-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;color:var(--select2-selection-choice-close-color,#999);cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333;color:var(--select2-selection-choice-hover-close-color,#333)}.select2-container--default.select2-container--focused .select2-selection--multiple,.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple,.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single{border:1px solid #000;border:solid var(--select2-selection-focus-border-color,#000) 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background:#eee;background:var(--select2-selection-disabled-background,#eee);cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa;border:1px solid var(--select2-search-border-color,#aaa);background:#fff;background:1px solid var(--select2-search-background,#fff);border-radius:0;border-radius:var(--select2-search-border-radius,0)}.select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999;color:var(--select2-option-disabled-text-color,#999);background:0 0;background:var(--select2-option-disabled-background,transparent)}.select2-container--default .select2-results__option[aria-selected=true]{color:#000;color:var(--select2-option-selected-text-color,#000);background:#ddd;background:var(--select2-option-selected-background,#ddd)}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background:#5897fb;background:var(--select2-option-highlighted-background,#5897fb);color:#fff;color:var(--select2-option-highlighted-text-color,#fff)}.select2-container--default .select2-results__option--hide{display:none}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px;color:gray;color:var(--select2-option-group-text-color,gray);background:0 0;background:var(--select2-option-group-background,transparent)}:host.nostyle .select2-dropdown{border-color:transparent}:host.nostyle .select2-selection--multiple,:host.nostyle .select2-selection--single{background:0 0;border-color:transparent}:host.nostyle .select2-container--default .select2-focused .select2-selection--multiple,:host.nostyle .select2-container--default .select2-focused .select2-selection--single,:host.nostyle .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple,:host.nostyle .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single{background:0 0;border-color:transparent}:host.material{display:inline-block;width:300px}:host.material>.select2-container{padding-bottom:1.29688em;vertical-align:inherit}:host.material>.select2-container .selection{padding:.4375em 0;border-top:.84375em solid transparent;display:inline-flex;align-items:baseline;width:100%;height:auto}:host.material .select2-container--default .select2-selection--multiple,:host.material .select2-container--default .select2-selection--single{width:100%;border:0;border-radius:0;height:24px;box-sizing:border-box}:host.material .select2-container--default .select2-selection--multiple::before,:host.material .select2-container--default .select2-selection--single::before{content:' ';display:block;position:absolute;bottom:1.65em;background:#ddd;background:var(--select2-material-underline,#ddd);height:1px;width:100%}:host.material .select2-container--default .select2-selection--multiple::after,:host.material .select2-container--default .select2-selection--single::after{content:' ';display:block;position:absolute;bottom:1.63em;background:#5a419e;background:var(--select2-material-underline-active,#5a419e);height:2px;width:0%;left:50%;transition:none}:host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered,:host.material .select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:1px;line-height:inherit}:host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder,:host.material .select2-container--default .select2-selection--single .select2-selection__placeholder{display:block;color:rgba(0,0,0,.38);color:var(--select2-material-placeholder-color,rgba(0,0,0,.38));transition:transform .3s;position:absolute;transform-origin:0 21px;left:0;top:20px}:host.material .select2-container--default .select2-container--open{left:0;bottom:1.6em}:host.material .select2-container--default .select2-selection__placeholder__option{transform:translateY(-1.5em) scale(.75) perspective(100px) translateZ(.001px);width:133.33333%}:host.material .select2-container--default .select2-selection__arrow{top:20px}:host.material .select2-container--default .select2-focused .select2-selection--multiple::after,:host.material .select2-container--default .select2-focused .select2-selection--single::after,:host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,:host.material .select2-container--default.select2-container--open .select2-selection--single::after{transition:width .3s cubic-bezier(.12,1,.77,1),left .3s cubic-bezier(.12,1,.77,1);width:100%;left:0}:host.material .select2-container--default .select2-dropdown{border-radius:0;border:0;box-shadow:0 5px 5px rgba(0,0,0,.5)}:host.material .select2-container--default .select2-results__option--highlighted[aria-selected],:host.material .select2-container--default .select2-results__option[aria-selected=true]{background:rgba(0,0,0,.04);background:var(--select2-material-option-selected-background,rgba(0,0,0,.04));color:#000;color:var(--select2-material-option-highlighted-text-color,#000)}:host.material .select2-container--default .select2-results__option[aria-selected=true]{color:#ff5722;color:var(--select2-material-option-selected-text-color,#ff5722)}:host.material .select2-container--default.select2-container--disabled .select2-selection--multiple,:host.material .select2-container--default.select2-container--disabled .select2-selection--single{background:0 0}:host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before,:host.material .select2-container--default.select2-container--disabled .select2-selection--single::before{background:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background:var(--select2-material-underline-disabled,linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0));background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom}:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after,:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before,:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after,:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before{background:red;background:var(--select2-material-underline-invalid,red)}:host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple,:host.material:not(.select2-container--open) .select2-focused .select2-selection--single{border:0}:host.material .select2-subscript-wrapper{position:absolute;top:calc(100% - 1.72917em);font-size:75%;color:#888;color:var(--select2-hint-text-color,#888)}@supports (-moz-appearance:none){select2.material .select2-container--default .select2-selection--multiple,select2.material .select2-container--default .select2-selection--single{height:26px}}@supports (-ms-scroll-limit:0){select2.material .select2-container--default .select2-selection--multiple,select2.material .select2-container--default .select2-selection--single{height:25px}}"]}]}],u.ctorParameters=function(){return[{type:i.ChangeDetectorRef},{type:n.NgForm,decorators:[{type:i.Optional}]},{type:n.FormGroupDirective,decorators:[{type:i.Optional}]},{type:n.NgControl,decorators:[{type:i.Self},{type:i.Optional}]},{type:String,decorators:[{type:i.Attribute,args:["tabindex"]}]}]},u.propDecorators={data:[{type:i.Input}],minCharForSearch:[{type:i.Input}],displaySearchStatus:[{type:i.Input}],placeholder:[{type:i.Input}],customSearchEnabled:[{type:i.Input}],multiple:[{type:i.Input}],limitSelection:[{type:i.Input}],listPosition:[{type:i.Input}],material:[{type:i.Input}],noStyle:[{type:i.Input}],editPattern:[{type:i.Input}],templates:[{type:i.Input}],resultMaxHeight:[{type:i.Input}],update:[{type:i.Output}],open:[{type:i.Output}],close:[{type:i.Output}],focus:[{type:i.Output}],blur:[{type:i.Output}],search:[{type:i.Output}],minCountForSearch:[{type:i.Input}],id:[{type:i.Input},{type:i.HostBinding,args:["id"]}],required:[{type:i.Input}],disabled:[{type:i.Input}],hideSelectedItems:[{type:i.Input}],readonly:[{type:i.Input}],value:[{type:i.Input}],tabIndex:[{type:i.Input}],resettable:[{type:i.Input}],ariaInvalid:[{type:i.HostBinding,args:["attr.aria-invalid"]}],classMaterial:[{type:i.HostBinding,args:["class.material"]}],classNostyle:[{type:i.HostBinding,args:["class.nostyle"]}],select2above:[{type:i.HostBinding,args:["class.select2-above"]}],selection:[{type:i.ViewChild,args:["selection"]}],resultContainer:[{type:i.ViewChild,args:["results"]}],results:[{type:i.ViewChildren,args:["result"]}],searchInput:[{type:i.ViewChild,args:["searchInput"]}]},u);function u(e,t,n,o,r){this._changeDetectorRef=e,this._parentForm=t,this._parentFormGroup=n,this._control=o,this.minCharForSearch=0,this.limitSelection=0,this.resultMaxHeight="200px",this.update=new i.EventEmitter,this.open=new i.EventEmitter,this.close=new i.EventEmitter,this.focus=new i.EventEmitter,this.blur=new i.EventEmitter,this.search=new i.EventEmitter,this.option=null,this.isOpen=!1,this.focused=!1,this.hoveringValue=null,this.innerSearchText="",this._stateChanges=new l.Subject,this._disabled=!1,this._required=!1,this._readonly=!1,this._resettable=!1,this._hideSelectedItems=!1,this._clickDetection=!1,this._uid="select2-"+a++,this._onTouched=function(){},this._onChange=function(){},this.id=this.id,this._tabIndex=parseInt(r,10)||0,this._control&&(this._control.valueAccessor=this),this._clickDetectionFc=this.clickDetection.bind(this)}var p=(d.decorators=[{type:i.Directive,args:[{selector:"select2-hint"}]}],d);function d(){}var h=(f.decorators=[{type:i.Directive,args:[{selector:"select2-label"}]}],f);function f(){}g.decorators=[{type:i.NgModule,args:[{imports:[t.CommonModule,n.FormsModule,n.ReactiveFormsModule],declarations:[p,h,c],exports:[n.FormsModule,n.ReactiveFormsModule,p,h,c]}]}],t=g;function g(){}e.Select2=c,e.Select2Hint=p,e.Select2Label=h,e.timeout=200,e.unicodePatterns=s,e.Select2Utils=o,e.Select2Module=t,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs"),require("@angular/common"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ng-select2-component",["exports","rxjs","@angular/common","@angular/core","@angular/forms"],t):t(e["ng-select2-component"]={},e.rxjs,e.ng.common,e.ng.core,e.ng.forms)}(this,function(e,l,t,i,n){"use strict";function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}var s=[{l:"a",s:/[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi},{l:"aa",s:/ꜳ/gi},{l:"ae",s:/[æǽǣ]/gi},{l:"ao",s:/ꜵ/gi},{l:"au",s:/ꜷ/gi},{l:"av",s:/[ꜹꜻ]/gi},{l:"ay",s:/ꜽ/gi},{l:"b",s:/[ⓑbḃḅḇƀƃɓ]/gi},{l:"c",s:/[ⓒcćĉċčçḉƈȼꜿↄ]/gi},{l:"d",s:/[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi},{l:"dz",s:/[dzdž]/gi},{l:"e",s:/[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi},{l:"f",s:/[ⓕfḟƒꝼ]/gi},{l:"g",s:/[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi},{l:"h",s:/[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi},{l:"hv",s:/ƕ/gi},{l:"i",s:/[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi},{l:"j",s:/[ⓙjĵǰɉ]/gi},{l:"k",s:/[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi},{l:"l",s:/[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi},{l:"lj",s:/lj/gi},{l:"m",s:/[ⓜmḿṁṃɱɯ]/gi},{l:"n",s:/[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi},{l:"nj",s:/nj/gi},{l:"o",s:/[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi},{l:"oi",s:/ƣ/gi},{l:"oe",s:/œ/gi},{l:"oo",s:/ꝏ/gi},{l:"ou",s:/ȣ/gi},{l:"p",s:/[ⓟpṕṗƥᵽꝑꝓꝕ]/gi},{l:"q",s:/[ⓠqɋꝗꝙ]/gi},{l:"r",s:/[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi},{l:"s",s:/[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi},{l:"t",s:/[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi},{l:"tz",s:/ꜩ/gi},{l:"u",s:/[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi},{l:"v",s:/[ⓥvṽṿʋꝟʌ]/gi},{l:"vy",s:/ꝡ/gi},{l:"w",s:/[ⓦwẁẃŵẇẅẘẉⱳ]/gi},{l:"x",s:/[ⓧxẋẍ]/gi},{l:"y",s:/[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi},{l:"z",s:/[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi}],o=(m.getOptionByValue=function(e,t){var n,o,r,l;if(Array.isArray(e))try{for(var i=b(e),s=i.next();!s.done;s=i.next()){var a=s.value,c=a.options;if(c)try{for(var u=b(c),p=u.next();!p.done;p=u.next()){var d=p.value;if(d.value===t)return d}}catch(h){r={error:h}}finally{try{p&&!p.done&&(l=u["return"])&&l.call(u)}finally{if(r)throw r.error}}else if(a.value===t)return a}}catch(f){n={error:f}}finally{try{s&&!s.done&&(o=i["return"])&&o.call(i)}finally{if(n)throw n.error}}return null},m.getOptionsByValue=function(e,t,n){var o,r;if(n){var l=Array.isArray(t)?t:[],i=[];try{for(var s=b(l),a=s.next();!a.done;a=s.next()){var c=a.value,c=m.getOptionByValue(e,c);c&&i.push(c)}}catch(u){o={error:u}}finally{try{a&&!a.done&&(r=s["return"])&&r.call(s)}finally{if(o)throw o.error}}return i}return m.getOptionByValue(e,t)},m.getFirstAvailableOption=function(e){var t,n,o,r;if(Array.isArray(e))try{for(var l=b(e),i=l.next();!i.done;i=l.next()){var s=i.value,a=s.options;if(a)try{for(var c,u=b(a),p=u.next();!p.done;p=u.next())if(!(c=p.value).disabled)return c.value}catch(d){o={error:d}}finally{try{p&&!p.done&&(r=u["return"])&&r.call(u)}finally{if(o)throw o.error}}else if(!(c=s).disabled)return c.value}}catch(h){t={error:h}}finally{try{i&&!i.done&&(n=l["return"])&&n.call(l)}finally{if(t)throw t.error}}return null},m.getOptionsCount=function(e){var t,n,o=0;if(Array.isArray(e))try{for(var r=b(e),l=r.next();!l.done;l=r.next()){var i=l.value.options;i?o+=i.length:o++}}catch(s){t={error:s}}finally{try{l&&!l.done&&(n=r["return"])&&n.call(r)}finally{if(t)throw t.error}}return o},m.valueIsNotInFilteredData=function(e,t){var n,o,r,l;if(m.isNullOrUndefined(t))return!0;try{for(var i=b(e),s=i.next();!s.done;s=i.next()){var a=s.value,c=a.options;if(c)try{for(var u=b(c),p=u.next();!p.done;p=u.next())if(p.value.value===t)return!1}catch(d){r={error:d}}finally{try{p&&!p.done&&(l=u["return"])&&l.call(u)}finally{if(r)throw r.error}}else if(a.value===t)return!1}}catch(h){n={error:h}}finally{try{s&&!s.done&&(o=i["return"])&&o.call(i)}finally{if(n)throw n.error}}return!0},m.getPreviousOption=function(e,t){for(var n=m.isNullOrUndefined(t),o=e.length-1;0<=o;o--){var r=e[o],l=r.options;if(l)for(var i=l.length-1;0<=i;i--){var s=l[i];if(n&&!s.disabled&&!s.hide)return s;n=n||s.value===t}else{s=r;if(n&&!s.disabled&&!s.hide)return s;n=n||s.value===t}}return null},m.getNextOption=function(e,t){var n,o,r,l,i=m.isNullOrUndefined(t);try{for(var s=b(e),a=s.next();!a.done;a=s.next()){var c=a.value,u=c.options;if(u)try{for(var p=b(u),d=p.next();!d.done;d=p.next()){var h=d.value;if(i){if(!h.disabled&&!h.hide)return h}else i=i||h.value===t}}catch(f){r={error:f}}finally{try{d&&!d.done&&(l=p["return"])&&l.call(p)}finally{if(r)throw r.error}}else{h=c;if(i){if(!h.disabled&&!h.hide)return h}else i=i||h.value===t}}}catch(g){n={error:g}}finally{try{a&&!a.done&&(o=s["return"])&&o.call(s)}finally{if(n)throw n.error}}return null},m.isNullOrUndefined=function(e){return null===e||e===undefined},m.containSearchText=function(e,t,n){return!t||null!==m.formatSansUnicode(e).match(new RegExp(m.formatPattern(t,n),"i"))},m.protectPattern=function(e){return e.replace(new RegExp("[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]","g"),"\\$&")},m.formatSansUnicode=function(e){var t,n;try{for(var o=b(s),r=o.next();!r.done;r=o.next()){var l=r.value;e=e.replace(l.s,l.l)}}catch(i){t={error:i}}finally{try{r&&!r.done&&(n=o["return"])&&n.call(o)}finally{if(t)throw t.error}}return e},m.formatPattern=function(e,t){return e=m.formatSansUnicode(m.protectPattern(e)),t&&"function"==typeof t&&(e=t(e)),e},m.getFilteredData=function(e,t,n){var o,r;if(t){var l=[];try{for(var i=b(e),s=i.next();!s.done;s=i.next()){var a=s.value,c=a.options;c?c.some(function(e){return m.containSearchText(e.label,t,n)})&&(c=c.filter(function(e){return m.containSearchText(e.label,t,n)}),l.push({label:a.label,options:c})):m.containSearchText(a.label,t,n)&&l.push(a)}}catch(u){o={error:u}}finally{try{s&&!s.done&&(r=i["return"])&&r.call(i)}finally{if(o)throw o.error}}return l}return e},m.getFilteredSelectedData=function(e,t){var n,o,r=[];try{for(var l=b(e),i=l.next();!i.done;i=l.next()){var s=i.value,a=s.options;a?(a=a.filter(function(e){return"false"===m.isSelected(t,e,!0)})).length&&r.push({label:s.label,options:a}):"false"===m.isSelected(t,s,!0)&&r.push(s)}}catch(c){n={error:c}}finally{try{i&&!i.done&&(o=l["return"])&&o.call(l)}finally{if(n)throw n.error}}return r},m.isSearchboxHiddex=function(e,t){return""!==t&&t!==undefined&&null!==t&&!isNaN(+t)||(t=6),m.getOptionsCount(e)<+t},m.isSelected=function(e,t,n){return n?e&&e.some(function(e){return e.value===t.value})?"true":"false":e&&t.value===e.value?"true":"false"},m.removeSelection=function(e,t){for(var n=0;n<e.length;n++)if(e[n].value===t.value)return void e.splice(n,1)},m);function m(){}var a=0,r=["default","hidden","always"],c=(Object.defineProperty(u.prototype,"select2Options",{get:function(){return this.multiple?this.option:null},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"select2Option",{get:function(){return this.multiple?null:this.option},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"searchText",{get:function(){return this.innerSearchText},set:function(e){this.customSearchEnabled&&this.search.emit({component:this,value:this._value,search:e}),this.innerSearchText=e},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"minCountForSearch",{get:function(){return this._minCountForSearch},set:function(e){this._minCountForSearch=e,this.updateSearchBox()},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"id",{get:function(){return this._id},set:function(e){this._id=e||this._uid},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"required",{get:function(){return this._required},set:function(e){this._required=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"disabled",{get:function(){return this._control?this._control.disabled:this._disabled},set:function(e){this._disabled=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"hideSelectedItems",{get:function(){return this._hideSelectedItems},set:function(e){this._hideSelectedItems=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"readonly",{get:function(){return this._readonly},set:function(e){this._readonly=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"value",{get:function(){return this._value},set:function(e){var t=this;this.testValueChange(this._value,e)&&setTimeout(function(){t._value=e,t.writeValue(e)},10)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"tabIndex",{get:function(){return this.disabled?-1:this._tabIndex},set:function(e){void 0!==e&&(this._tabIndex=e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"resettable",{get:function(){return this._resettable},set:function(e){this._resettable=this._coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"ariaInvalid",{get:function(){return this._isErrorState()},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"classMaterial",{get:function(){return""===this.material||!0===this.material||"true"===this.material},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"classNostyle",{get:function(){return""===this.noStyle||!0===this.noStyle||"true"===this.noStyle},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"select2above",{get:function(){return"above"===this.listPosition},enumerable:!0,configurable:!0}),u.prototype.ngOnInit=function(){var e=o.getOptionsByValue(this.data,(this._control||this).value,this.multiple);null!==e&&(this.option=e),Array.isArray(e)||(this.hoveringValue=this.value),this.updateSearchBox()},u.prototype.ngAfterViewInit=function(){this.selectionElement=this.selection.nativeElement,this.searchInputElement=this.searchInput.nativeElement,this.resultsElement=this.resultContainer.nativeElement},u.prototype.ngDoCheck=function(){this.updateSearchBox(),this._dirtyCheckNativeValue()},u.prototype.ngOnDestroy=function(){window.document.body.removeEventListener("click",this._clickDetectionFc)},u.prototype.updateSearchBox=function(){var e=!this.customSearchEnabled&&o.isSearchboxHiddex(this.data,this._minCountForSearch);this.isSearchboxHidden!==e&&(this.isSearchboxHidden=e)},u.prototype.hideSearch=function(){var e=-1<r.indexOf(this.displaySearchStatus)?this.displaySearchStatus:"default";return"default"===e&&this.isSearchboxHidden||"hidden"===e},u.prototype.getOptionStyle=function(e){return"select2-results__option "+(e.hide?"select2-results__option--hide ":"")+(e.value===this.hoveringValue?"select2-results__option--highlighted ":"")+(e.classes||"")},u.prototype.mouseenter=function(e){e.disabled||(this.hoveringValue=e.value)},u.prototype.click=function(e){this.testSelection(e)&&this.select(e)},u.prototype.reset=function(e){this.select(null),e.preventDefault(),e.stopPropagation()},u.prototype.prevChange=function(e){e.stopPropagation()},u.prototype.toggleOpenAndClose=function(){var t=this;this.disabled||(this._focus(!0),this.isOpen=!this.isOpen,this.isOpen?(this.innerSearchText="",this.updateFilteredData(),this._focusSearchboxOrResultsElement(),setTimeout(function(){var e;t.option?(e=t.option instanceof Array?t.option[0]:t.option,t.updateScrollFromOption(e)):t.resultsElement.scrollTop=0}),this.open.emit(this)):this.close.emit(this),this.isOpen&&!this._clickDetection&&setTimeout(function(){window.document.body.addEventListener("click",t._clickDetectionFc,!1),t._clickDetection=!0},200),this._changeDetectorRef.markForCheck())},u.prototype.hasTemplate=function(e,t){return this.templates instanceof i.TemplateRef||this.templates&&this.templates[e.templateId]instanceof i.TemplateRef||this.templates&&this.templates[t]instanceof i.TemplateRef},u.prototype.getTemplate=function(e,t){return this.hasTemplate(e,t)?this.templates[e.templateId]||this.templates[t]||this.templates:undefined},u.prototype.testSelection=function(e){return!e.disabled&&!(this.multiple&&this.limitSelection&&!(Array.isArray(this._value)&&this._value.length<this.limitSelection))},u.prototype.testValueChange=function(e,t){var n,o;if((null===e||e===undefined)&&(null===t||t===undefined)||e===t)return!1;if(this.multiple&&e&&e.length&&t&&t.length&&e.length===t.length){try{for(var r=b(e),l=r.next();!l.done;l=r.next()){var i=l.value;if(!(-1<t.indexOf(i)))return!0}}catch(s){n={error:s}}finally{try{l&&!l.done&&(o=r["return"])&&o.call(r)}finally{if(n)throw n.error}}return!1}return!0},u.prototype.updateFilteredData=function(){var t=this;setTimeout(function(){var e=t.data;t.multiple&&t.hideSelectedItems&&(e=o.getFilteredSelectedData(e,t.option)),!t.customSearchEnabled&&t.searchText&&t.searchText.length>=+t.minCharForSearch&&(e=o.getFilteredData(e,t.searchText,t.editPattern)),o.valueIsNotInFilteredData(e,t.hoveringValue)&&(t.hoveringValue=o.getFirstAvailableOption(e)),t.filteredData=e,t._changeDetectorRef.markForCheck()})},u.prototype.clickDetection=function(e){this.ifParentContainsClass(e.target,"selection")?this.isOpen&&!this.ifParentContainsId(e.target,this._id)&&(this.toggleOpenAndClose(),this.clickExit()):(this.isOpen&&!this.ifParentContainsClass(e.target,"select2-dropdown")&&this.toggleOpenAndClose(),this.ifParentContainsId(e.target,this._id)||this.clickExit())},u.prototype.clickExit=function(){this._focus(!1),window.document.body.removeEventListener("click",this._clickDetectionFc),this._clickDetection=!1},u.prototype.ifParentContainsClass=function(e,t){return null!==this.getParentElementByClass(e,t)},u.prototype.ifParentContainsId=function(e,t){return null!==this.getParentElementById(e,t)},u.prototype.getParentElementByClass=function(e,t){return this.containClasses(e,t.trim().split(/\s+/))?e:e.parentElement?this.getParentElementByClass(e.parentElement,t):null},u.prototype.getParentElementById=function(e,t){return e.id===t?e:e.parentElement?this.getParentElementById(e.parentElement,t):null},u.prototype.containClasses=function(e,t){var n,o;if(!e.classList)return!1;try{for(var r=b(t),l=r.next();!l.done;l=r.next()){var i=l.value;if(!e.classList.contains(i))return!1}}catch(s){n={error:s}}finally{try{l&&!l.done&&(o=r["return"])&&o.call(r)}finally{if(n)throw n.error}}return!0},u.prototype.focusin=function(){this.disabled||this._focus(!0)},u.prototype.focusout=function(){this.selectionElement&&!this.selectionElement.classList.contains("select2-focused")&&(this._focus(!1),this._onTouched())},u.prototype.moveUp=function(){this.updateScrollFromOption(o.getPreviousOption(this.filteredData,this.hoveringValue))},u.prototype.moveDown=function(){this.updateScrollFromOption(o.getNextOption(this.filteredData,this.hoveringValue))},u.prototype.updateScrollFromOption=function(t){var e,n;t&&(this.hoveringValue=t.value,(n=this.results.find(function(e){return e.nativeElement.innerText.trim()===t.label}))&&(this.resultsElement.scrollTop=0,e=this.resultsElement.getBoundingClientRect(),n=n.nativeElement.getBoundingClientRect(),this.resultsElement.scrollTop=n.top-e.top))},u.prototype.selectByEnter=function(){var e;this.hoveringValue&&(e=o.getOptionByValue(this.data,this.hoveringValue),this.select(e))},u.prototype.select=function(t){var e,n;null!==t?n=this.multiple?(-1===(n=(e=this.option).findIndex(function(e){return e.value===t.value}))?e.push(t):e.splice(n,1),this.option.map(function(e){return e.value})):(this.option=t,this.isOpen&&(this.isOpen=!1,this.close.emit(this),this.selectionElement&&this.selectionElement.focus()),this.option.value):this.option=null,this.multiple&&this.hideSelectedItems&&this.updateFilteredData(),this._control?this._onChange(n):this._value=n,this.update.emit({component:this,value:n,options:Array.isArray(this.option)?this.option:this.option?[this.option]:null})},u.prototype.keyDown=function(e){this._testKey(e,["ArrowDown",40])?(this.moveDown(),e.preventDefault()):this._testKey(e,["ArrowUp",38])?(this.moveUp(),e.preventDefault()):this._testKey(e,["Enter",13])?(this.selectByEnter(),e.preventDefault()):this._testKey(e,["Escape","Tab",9,27])&&this.isOpen&&(this.toggleOpenAndClose(),this._focus(!1))},u.prototype.openKey=function(e){this._testKey(e,["ArrowDown","ArrowUp","Enter",40,38,13])?(this.toggleOpenAndClose(),e.preventDefault()):this._testKey(e,["Escape","Tab",9,27])&&(this._focus(!1),this._onTouched())},u.prototype.trackBy=function(e,t){return t.value},u.prototype.searchUpdate=function(e){this.searchText=e.target.value,this.updateFilteredData()},u.prototype.isSelected=function(e){return o.isSelected(this.option,e,this.multiple)},u.prototype.isDisabled=function(e){return e.disabled?"true":"false"},u.prototype.removeSelection=function(e,t){o.removeSelection(this.option,t),this.multiple&&this.hideSelectedItems&&this.updateFilteredData();t=this.option.map(function(e){return e.value});this._control?this._onChange(t):this._value=t,this.update.emit({component:this,value:t,options:Array.isArray(this.option)?this.option:this.option?[this.option]:null}),e.preventDefault(),e.stopPropagation(),this.isOpen&&this._focusSearchboxOrResultsElement()},u.prototype.writeValue=function(e){this._setSelectionByValue(e)},u.prototype.registerOnChange=function(e){this._onChange=e},u.prototype.registerOnTouched=function(e){this._onTouched=e},u.prototype.setDisabledState=function(e){this.disabled=e},u.prototype._isErrorState=function(){var e=this._control&&this._control.invalid,t=this._control&&this._control.touched,n=this._parentFormGroup&&this._parentFormGroup.submitted||this._parentForm&&this._parentForm.submitted;return!(!e||!t&&!n)},u.prototype._testKey=function(e,t){return void 0===t&&(t=[]),this._isKey(this._getKey(e),t)},u.prototype._getKey=function(e){var t;return e.key!==undefined?t=e.key:e.keyIdentifier!==undefined?t=e.keyIdentifier:e.keyCode!==undefined?t=e.keyCode:e.preventDefault(),t},u.prototype._isKey=function(e,t){return void 0===t&&(t=[]),!!(t&&0<t.length)&&-1!==t.indexOf(e)},u.prototype._setSelectionByValue=function(e){var t=this;if(this.option||e!==undefined&&null!==e){var n=Array.isArray(e);if(this.multiple&&e&&!n)throw new Error("Non array value.");this.data?this.multiple?(this.option=[],n&&o.getOptionsByValue(this.data,e,this.multiple).map(function(e){return t.select(e)})):this.select(o.getOptionByValue(this.data,e)):this._control&&this._control.viewToModelUpdate(e),this._changeDetectorRef.markForCheck()}},u.prototype._dirtyCheckNativeValue=function(){var e=this.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this._stateChanges.next())},u.prototype._coerceBooleanProperty=function(e){return null!=e&&""+e!="false"},u.prototype._focusSearchboxOrResultsElement=function(){this.isSearchboxHidden?this.resultsElement&&this.resultsElement.focus():this.searchInputElement&&this.searchInputElement.focus()},u.prototype._focus=function(e){!e&&this.focused?(this.focused=e,this.blur.emit(this)):e&&!this.focused&&(this.focused=e,this.focus.emit(this))},u.decorators=[{type:i.Component,args:[{selector:"select2",template:'<div class="select2-label"\r\n (click)="toggleOpenAndClose()">\r\n <ng-content select="select2-label"></ng-content><span *ngIf="required"\r\n class="select2-required"></span>\r\n</div>\r\n<div class="select2 select2-container select2-container--default select2-container--focus"\r\n [class.select2-container--below]="!select2above"\r\n [class.select2-container--above]="select2above"\r\n [class.select2-container--open]="isOpen"\r\n [class.select2-container--disabled]="disabled">\r\n <div class="selection"\r\n #selection\r\n [attr.tabindex]="!this.isOpen ? tabIndex : \'-1\'"\r\n (click)="toggleOpenAndClose()"\r\n (focus)="focusin()"\r\n (blur)="focusout()"\r\n (keydown)="openKey($event)"\r\n [class.select2-focused]="focused">\r\n <div class="select2-selection"\r\n [class.select2-selection--multiple]="multiple"\r\n [class.select2-selection--single]="!multiple"\r\n role="combobox">\r\n <span *ngIf="!multiple"\r\n class="select2-selection__rendered"\r\n [title]="select2Option?.label || \'\'">\r\n <span *ngIf="!select2Option">&nbsp;</span>\r\n <span *ngIf="select2Option"\r\n [innerHTML]="select2Option.label"></span>\r\n <span [class.select2-selection__placeholder__option]="option"\r\n class="select2-selection__placeholder">{{placeholder}}</span>\r\n </span>\r\n <span (click)="reset($event)"\r\n *ngIf="!multiple && resettable && select2Option"\r\n class="select2-selection__reset"\r\n role="presentation">×</span>\r\n <span *ngIf="!multiple"\r\n class="select2-selection__arrow"\r\n role="presentation">\r\n </span>\r\n <ul *ngIf="multiple"\r\n class="select2-selection__rendered">\r\n <span [class.select2-selection__placeholder__option]="select2Options?.length > 0"\r\n class="select2-selection__placeholder">{{placeholder}}</span>\r\n <li *ngFor="let op of option; trackBy: trackBy"\r\n class="select2-selection__choice"\r\n [title]="op.label">\r\n <span (click)="removeSelection($event, op)"\r\n class="select2-selection__choice__remove"\r\n role="presentation">×</span>\r\n <span [innerHTML]="op.label"></span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class="select2-container select2-container--default select2-container-dropdown"\r\n [class.select2-container--open]="isOpen">\r\n <div class="select2-dropdown"\r\n [class.select2-dropdown--below]="!select2above"\r\n [class.select2-dropdown--above]="select2above">\r\n <div class="select2-search select2-search--dropdown"\r\n [class.select2-search--hide]="hideSearch()">\r\n <input #searchInput\r\n [id]="id + \'-search-field\'"\r\n [value]="searchText"\r\n (keydown)="keyDown($event)"\r\n (keyup)="searchUpdate($event)"\r\n (change)="prevChange($event)"\r\n class="select2-search__field"\r\n type="search"\r\n role="textbox"\r\n autocomplete="off"\r\n autocorrect="off"\r\n autocapitalize="off"\r\n spellcheck="false"\r\n [attr.tabindex]="this.isOpen ? tabIndex : \'-1\'">\r\n </div>\r\n <div class="select2-results">\r\n <ul #results\r\n class="select2-results__options"\r\n [style.max-height]="resultMaxHeight"\r\n role="tree"\r\n tabindex="-1"\r\n (keydown)="keyDown($event)">\r\n <ng-container *ngFor="let groupOrOption of filteredData; index as i; trackBy:trackBy">\r\n <li *ngIf="groupOrOption.options"\r\n class="select2-results__option"\r\n role="group">\r\n <strong *ngIf="!hasTemplate(groupOrOption, \'group\'); else optGroup"\r\n [attr.class]="\'select2-results__group\' + (groupOrOption.classes ? \' \' + groupOrOption.classes : \'\')"\r\n [innerHTML]="groupOrOption.label"></strong>\r\n <ng-template #optGroup>\r\n <ng-container\r\n *ngTemplateOutlet="getTemplate(groupOrOption, \'group\'); context: groupOrOption">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ul class="select2-results__options select2-results__options--nested">\r\n <li *ngFor="let option of groupOrOption.options; index as j; trackBy:trackBy"\r\n #result\r\n [id]="option.id || id + \'-option-\' + i + \'-\' + j"\r\n [class]="getOptionStyle(option)"\r\n role="treeitem"\r\n [attr.aria-selected]="isSelected(option)"\r\n [attr.aria-disabled]="isDisabled(option)"\r\n (mouseenter)="mouseenter(option)"\r\n (click)="click(option)">\r\n <div *ngIf="!hasTemplate(option, \'option\'); else liGroup"\r\n class="select2-label-content"\r\n [innerHTML]="option.label"></div>\r\n <ng-template #liGroup>\r\n <ng-container\r\n *ngTemplateOutlet="getTemplate(option, \'option\'); context: option">\r\n </ng-container>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </li>\r\n <li *ngIf="!groupOrOption.options"\r\n #result\r\n [id]="groupOrOption.id || id + \'-option-\' + i"\r\n [class]="getOptionStyle(groupOrOption)"\r\n role="treeitem"\r\n [attr.aria-selected]="isSelected(groupOrOption)"\r\n [attr.aria-disabled]="isDisabled(groupOrOption)"\r\n (mouseenter)="mouseenter(groupOrOption)"\r\n (click)="click(groupOrOption)">\r\n <div *ngIf="!hasTemplate(groupOrOption, \'option\'); else li"\r\n [innerHTML]="groupOrOption.label"\r\n class="select2-label-content"></div>\r\n <ng-template #li>\r\n <ng-container\r\n *ngTemplateOutlet="getTemplate(groupOrOption, \'option\'); context: groupOrOption">\r\n </ng-container>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="select2-subscript-wrapper">\r\n <ng-content select="select2-hint"></ng-content>\r\n </div>\r\n</div>\r\n',styles:[".select2-label{color:#000;color:var(--select2-label-text-color,#000)}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle;width:100%}.select2-container .select2-container-dropdown{position:absolute;width:0;opacity:0}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding:0 0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background:#fff;background:var(--select2-dropdown-background,#fff);border:1px solid #aaa;border:1px solid var(--select2-dropdown-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);box-sizing:border-box;display:block;position:absolute;width:100%;z-index:1051;height:0;overflow:hidden}.select2-dropdown .select2-label-content{display:contents}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#000;color:var(--select2-option-text-color,#000)}.select2-results__option[aria-selected]{cursor:pointer}.select2-container.select2-container-dropdown.select2-container--open{width:100%;opacity:1}.select2-container--open .select2-dropdown{overflow:auto;height:auto}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:27px;display:flex;flex-direction:column-reverse}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background:#fff}.select2-required::before{content:'*';color:red;color:var(--select2-required-color,red)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background:#fff;background:var(--select2-selection-background,#fff);border:1px solid #aaa;border:1px solid var(--select2-selection-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);display:flex}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;color:var(--select2-selection-text-color,#444);line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999;color:var(--select2-placeholder-color,#999)}.select2-container--default .select2-selection--single .select2-selection__placeholder__option{display:none}.select2-container--default .select2-selection--single .select2-selection__arrow,.select2-container--default .select2-selection--single .select2-selection__reset{display:flex;width:20px;align-items:center;justify-content:center}.select2-container--default .select2-selection--single .select2-selection__arrow::before{content:' ';border-color:#888 transparent;border-color:var(--select2-arrow-color,#888) transparent;border-style:solid;border-width:5px 4px 0;height:0;width:0}.select2-container--default .select2-selection--single .select2-selection__reset{color:#999;color:var(--select2-reset-color,#999)}.select2-container--default.select2-container--disabled .select2-selection--single{background:#eee;background:var(--select2-selection-disabled-background,#eee);cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow::before{border-color:transparent transparent #888;border-color:transparent transparent var(--select2-arrow-color,#888);border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background:#fff;background:var(--select2-selection-background,#fff);border:1px solid #aaa;border:1px solid var(--select2-selection-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{flex:1 1 auto;box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;color:var(--select2-placeholder-color,#999);margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__placeholder__option{display:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{color:#000;color:var(--select2-selection-choice-text-color,#000);background:#e4e4e4;background:var(--select2-selection-choice-background,#e4e4e4);border:1px solid #aaa;border:1px solid var(--select2-selection-choice-border-color,#aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius,4px);cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;color:var(--select2-selection-choice-close-color,#999);cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333;color:var(--select2-selection-choice-hover-close-color,#333)}.select2-container--default.select2-container--focused .select2-selection--multiple,.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple,.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single{border:1px solid #000;border:solid var(--select2-selection-focus-border-color,#000) 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background:#eee;background:var(--select2-selection-disabled-background,#eee);cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa;border:1px solid var(--select2-search-border-color,#aaa);background:#fff;background:1px solid var(--select2-search-background,#fff);border-radius:0;border-radius:var(--select2-search-border-radius,0)}.select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999;color:var(--select2-option-disabled-text-color,#999);background:0 0;background:var(--select2-option-disabled-background,transparent)}.select2-container--default .select2-results__option[aria-selected=true]{color:#000;color:var(--select2-option-selected-text-color,#000);background:#ddd;background:var(--select2-option-selected-background,#ddd)}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background:#5897fb;background:var(--select2-option-highlighted-background,#5897fb);color:#fff;color:var(--select2-option-highlighted-text-color,#fff)}.select2-container--default .select2-results__option--hide{display:none}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px;color:gray;color:var(--select2-option-group-text-color,gray);background:0 0;background:var(--select2-option-group-background,transparent)}:host.nostyle .select2-dropdown{border-color:transparent}:host.nostyle .select2-selection--multiple,:host.nostyle .select2-selection--single{background:0 0;border-color:transparent}:host.nostyle .select2-container--default .select2-focused .select2-selection--multiple,:host.nostyle .select2-container--default .select2-focused .select2-selection--single,:host.nostyle .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple,:host.nostyle .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single{background:0 0;border-color:transparent}:host.material{display:inline-block;width:300px}:host.material>.select2-container{padding-bottom:1.29688em;vertical-align:inherit}:host.material>.select2-container .selection{padding:.4375em 0;border-top:.84375em solid transparent;display:inline-flex;align-items:baseline;width:100%;height:auto}:host.material .select2-container--default .select2-selection--multiple,:host.material .select2-container--default .select2-selection--single{width:100%;border:0;border-radius:0;height:24px;box-sizing:border-box}:host.material .select2-container--default .select2-selection--multiple::before,:host.material .select2-container--default .select2-selection--single::before{content:' ';display:block;position:absolute;bottom:1.65em;background:#ddd;background:var(--select2-material-underline,#ddd);height:1px;width:100%}:host.material .select2-container--default .select2-selection--multiple::after,:host.material .select2-container--default .select2-selection--single::after{content:' ';display:block;position:absolute;bottom:1.63em;background:#5a419e;background:var(--select2-material-underline-active,#5a419e);height:2px;width:0%;left:50%;transition:none}:host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered,:host.material .select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:1px;line-height:inherit}:host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder,:host.material .select2-container--default .select2-selection--single .select2-selection__placeholder{display:block;color:rgba(0,0,0,.38);color:var(--select2-material-placeholder-color,rgba(0,0,0,.38));transition:transform .3s;position:absolute;transform-origin:0 21px;left:0;top:20px}:host.material .select2-container--default .select2-container--open{left:0;bottom:1.6em}:host.material .select2-container--default .select2-selection__placeholder__option{transform:translateY(-1.5em) scale(.75) perspective(100px) translateZ(.001px);width:133.33333%}:host.material .select2-container--default .select2-selection__arrow{top:20px}:host.material .select2-container--default .select2-focused .select2-selection--multiple::after,:host.material .select2-container--default .select2-focused .select2-selection--single::after,:host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,:host.material .select2-container--default.select2-container--open .select2-selection--single::after{transition:width .3s cubic-bezier(.12,1,.77,1),left .3s cubic-bezier(.12,1,.77,1);width:100%;left:0}:host.material .select2-container--default .select2-dropdown{border-radius:0;border:0;box-shadow:0 5px 5px rgba(0,0,0,.5)}:host.material .select2-container--default .select2-results__option--highlighted[aria-selected],:host.material .select2-container--default .select2-results__option[aria-selected=true]{background:rgba(0,0,0,.04);background:var(--select2-material-option-selected-background,rgba(0,0,0,.04));color:#000;color:var(--select2-material-option-highlighted-text-color,#000)}:host.material .select2-container--default .select2-results__option[aria-selected=true]{color:#ff5722;color:var(--select2-material-option-selected-text-color,#ff5722)}:host.material .select2-container--default.select2-container--disabled .select2-selection--multiple,:host.material .select2-container--default.select2-container--disabled .select2-selection--single{background:0 0}:host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before,:host.material .select2-container--default.select2-container--disabled .select2-selection--single::before{background:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background:var(--select2-material-underline-disabled,linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0));background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom}:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after,:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before,:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after,:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before{background:red;background:var(--select2-material-underline-invalid,red)}:host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple,:host.material:not(.select2-container--open) .select2-focused .select2-selection--single{border:0}:host.material .select2-subscript-wrapper{position:absolute;top:calc(100% - 1.72917em);font-size:75%;color:#888;color:var(--select2-hint-text-color,#888)}@supports (-moz-appearance:none){select2.material .select2-container--default .select2-selection--multiple,select2.material .select2-container--default .select2-selection--single{height:26px}}@supports (-ms-scroll-limit:0){select2.material .select2-container--default .select2-selection--multiple,select2.material .select2-container--default .select2-selection--single{height:25px}}"]}]}],u.ctorParameters=function(){return[{type:i.ChangeDetectorRef},{type:n.NgForm,decorators:[{type:i.Optional}]},{type:n.FormGroupDirective,decorators:[{type:i.Optional}]},{type:n.NgControl,decorators:[{type:i.Self},{type:i.Optional}]},{type:String,decorators:[{type:i.Attribute,args:["tabindex"]}]}]},u.propDecorators={data:[{type:i.Input}],minCharForSearch:[{type:i.Input}],displaySearchStatus:[{type:i.Input}],placeholder:[{type:i.Input}],customSearchEnabled:[{type:i.Input}],multiple:[{type:i.Input}],limitSelection:[{type:i.Input}],listPosition:[{type:i.Input}],material:[{type:i.Input}],noStyle:[{type:i.Input}],editPattern:[{type:i.Input}],templates:[{type:i.Input}],resultMaxHeight:[{type:i.Input}],update:[{type:i.Output}],open:[{type:i.Output}],close:[{type:i.Output}],focus:[{type:i.Output}],blur:[{type:i.Output}],search:[{type:i.Output}],minCountForSearch:[{type:i.Input}],id:[{type:i.Input},{type:i.HostBinding,args:["id"]}],required:[{type:i.Input}],disabled:[{type:i.Input}],hideSelectedItems:[{type:i.Input}],readonly:[{type:i.Input}],value:[{type:i.Input}],tabIndex:[{type:i.Input}],resettable:[{type:i.Input}],ariaInvalid:[{type:i.HostBinding,args:["attr.aria-invalid"]}],classMaterial:[{type:i.HostBinding,args:["class.material"]}],classNostyle:[{type:i.HostBinding,args:["class.nostyle"]}],select2above:[{type:i.HostBinding,args:["class.select2-above"]}],selection:[{type:i.ViewChild,args:["selection"]}],resultContainer:[{type:i.ViewChild,args:["results"]}],results:[{type:i.ViewChildren,args:["result"]}],searchInput:[{type:i.ViewChild,args:["searchInput"]}]},u);function u(e,t,n,o,r){this._changeDetectorRef=e,this._parentForm=t,this._parentFormGroup=n,this._control=o,this.minCharForSearch=0,this.limitSelection=0,this.resultMaxHeight="200px",this.update=new i.EventEmitter,this.open=new i.EventEmitter,this.close=new i.EventEmitter,this.focus=new i.EventEmitter,this.blur=new i.EventEmitter,this.search=new i.EventEmitter,this.option=null,this.isOpen=!1,this.focused=!1,this.hoveringValue=null,this.innerSearchText="",this._stateChanges=new l.Subject,this._disabled=!1,this._required=!1,this._readonly=!1,this._resettable=!1,this._hideSelectedItems=!1,this._clickDetection=!1,this._uid="select2-"+a++,this._onTouched=function(){},this._onChange=function(){},this.id=this.id,this._tabIndex=parseInt(r,10)||0,this._control&&(this._control.valueAccessor=this),this._clickDetectionFc=this.clickDetection.bind(this)}var p=(d.decorators=[{type:i.Directive,args:[{selector:"select2-hint"}]}],d);function d(){}var h=(f.decorators=[{type:i.Directive,args:[{selector:"select2-label"}]}],f);function f(){}g.decorators=[{type:i.NgModule,args:[{imports:[t.CommonModule,n.FormsModule,n.ReactiveFormsModule],declarations:[p,h,c],exports:[n.FormsModule,n.ReactiveFormsModule,p,h,c]}]}],t=g;function g(){}e.Select2=c,e.Select2Hint=p,e.Select2Label=h,e.timeout=200,e.unicodePatterns=s,e.Select2Utils=o,e.Select2Module=t,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ng-select2-component.umd.min.js.map
# Changelog of ng-select2
## V7.2.1 (2020-03-04)
## V7.2.2 (2021-03-05)
### Corrections
- add an argument `resettable` to display a reset button (in single mode)
## V7.2.1 (2021-03-04)
### Changes

@@ -6,0 +11,0 @@

@@ -303,3 +303,3 @@ /**

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -317,3 +317,3 @@ }

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -344,3 +344,3 @@ }

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -358,3 +358,3 @@ }

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -539,2 +539,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Mi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXNlbGVjdDItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL3NlbGVjdDItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSxrQ0FXQzs7Ozs7O0lBVEcsNkJBQWM7Ozs7O0lBRWQsK0JBQXlCOzs7OztJQUV6QiwrQkFBaUI7Ozs7O0lBRWpCLGtDQUFvQjs7Ozs7SUFFcEIsNEJBQVc7Ozs7O0FBR2YsbUNBaUJDOzs7Ozs7SUFmRyw4QkFBb0I7Ozs7O0lBRXBCLDhCQUFjOzs7OztJQUVkLGlDQUFtQjs7Ozs7SUFFbkIsMkJBQVk7Ozs7O0lBRVosZ0NBQWlCOzs7OztJQUVqQixtQ0FBb0I7Ozs7O0lBRXBCLDZCQUFXOzs7OztJQUVYLDZCQUFlOzs7Ozs7QUFTbkIsd0NBSUM7OztJQUhHLHVDQUFtQjs7SUFDbkIsbUNBQVM7O0lBQ1QscUNBQXlCOzs7Ozs7QUFHN0Isd0NBSUM7OztJQUhHLHVDQUFtQjs7SUFDbkIsbUNBQVM7O0lBQ1Qsb0NBQWU7OztBQUduQixNQUFNLE9BQU8sT0FBTyxHQUFHLEdBQUc7O0FBRTFCLE1BQU0sT0FBTyxlQUFlLEdBQStCO0lBQ3ZELEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsd0NBQXdDLEVBQUU7SUFDdkQsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7SUFDckIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7SUFDekIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7SUFDckIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7SUFDckIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUU7SUFDeEIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENB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QU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLE9BQU87YUFDVjtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0MiB9IGZyb20gJy4vc2VsZWN0Mi5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3QyR3JvdXAge1xyXG4gICAgLyoqIGxhYmVsIG9mIGdyb3VwICovXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgLyoqIG9wdGlvbnMgbGlzdCAqL1xyXG4gICAgb3B0aW9uczogU2VsZWN0Mk9wdGlvbltdO1xyXG4gICAgLyoqIGFkZCBjbGFzc2VzICAqL1xyXG4gICAgY2xhc3Nlcz86IHN0cmluZztcclxuICAgIC8qKiB0ZW1wbGF0ZSBpZCAgKi9cclxuICAgIHRlbXBsYXRlSWQ/OiBzdHJpbmc7XHJcbiAgICAvKiogdGVtcGxhdGUgZGF0YSAgKi9cclxuICAgIGRhdGE/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0Mk9wdGlvbiB7XHJcbiAgICAvKiogdmFsdWUgICovXHJcbiAgICB2YWx1ZTogU2VsZWN0MlZhbHVlO1xyXG4gICAgLyoqIGxhYmVsIG9mIG9wdGlvbiAqL1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIC8qKiBubyBzZWxlY3RhYmxlIGlzIGRpc2FibGVkICovXHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICAvKiogZm9yIGlkZW50aWZpY2F0aW9uICovXHJcbiAgICBpZD86IHN0cmluZztcclxuICAgIC8qKiBhZGQgY2xhc3NlcyAgKi9cclxuICAgIGNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgICAvKiogdGVtcGxhdGUgaWQgICovXHJcbiAgICB0ZW1wbGF0ZUlkPzogc3RyaW5nO1xyXG4gICAgLyoqIHRlbXBsYXRlIGRhdGEgICovXHJcbiAgICBkYXRhPzogYW55O1xyXG4gICAgLyoqIGhpZGUgdGhpcyBvcHRpb24gKi9cclxuICAgIGhpZGU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWxlY3QyVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0MlVwZGF0ZVZhbHVlID0gU2VsZWN0MlZhbHVlIHwgU2VsZWN0MlZhbHVlW107XHJcblxyXG5leHBvcnQgdHlwZSBTZWxlY3QyRGF0YSA9IChTZWxlY3QyR3JvdXAgfCBTZWxlY3QyT3B0aW9uKVtdO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3QyVXBkYXRlRXZlbnQ8VSBleHRlbmRzIFNlbGVjdDJVcGRhdGVWYWx1ZSA9IFNlbGVjdDJWYWx1ZT4ge1xyXG4gICAgY29tcG9uZW50OiBTZWxlY3QyO1xyXG4gICAgdmFsdWU6IFU7XHJcbiAgICBvcHRpb25zOiBTZWxlY3QyT3B0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0MlNlYXJjaEV2ZW50PFUgZXh0ZW5kcyBTZWxlY3QyVXBkYXRlVmFsdWUgPSBTZWxlY3QyVmFsdWU+IHtcclxuICAgIGNvbXBvbmVudDogU2VsZWN0MjtcclxuICAgIHZhbHVlOiBVO1xyXG4gICAgc2VhcmNoOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB0aW1lb3V0ID0gMjAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IHVuaWNvZGVQYXR0ZXJuczogeyBsOiBzdHJpbmcsIHM6IFJlZ0V4cCB9W10gPSBbXHJcbiAgICB7IGw6ICdhJywgczogL1vik5DvvYHhuprDoMOhw6LhuqfhuqXhuqvhuqnDo8SBxIPhurHhuq/hurXhurPIp8ehw6THn+G6o8Olx7vHjsiByIPhuqHhuq3hurfhuIHEheKxpcmQXS9naSB9LFxyXG4gICAgeyBsOiAnYWEnLCBzOiAv6pyzL2dpIH0sXHJcbiAgICB7IGw6ICdhZScsIHM6IC9bw6bHvcejXS9naSB9LFxyXG4gICAgeyBsOiAnYW8nLCBzOiAv6py1L2dpIH0sXHJcbiAgICB7IGw6ICdhdScsIHM6IC/qnLcvZ2kgfSxcclxuICAgIHsgbDogJ2F2JywgczogL1vqnLnqnLtdL2dpIH0sXHJcbiAgICB7IGw6ICdheScsIHM6IC/qnL0vZ2kgfSxcclxuICAgIHsgbDogJ2InLCBzOiAvW+KTke+9guG4g+G4heG4h8aAxoPJk10vZ2kgfSxcclxuICAgIHsgbDogJ2MnLCBzOiAvW+KTku+9g8SHxInEi8SNw6fhuInGiMi86py/4oaEXS9naSB9LFxyXG4gICAgeyBsOiAnZCcsIHM6IC9b4pOT772E4biLxI/huI3huJHhuJPhuI/EkcaMyZbJl+qdul0vZ2kgfSxcclxuICAgIHsgbDogJ2R6JywgczogL1vHs8eGXS9naSB9LFxyXG4gICAgeyBsOiAnZScsIHM6IC9b4pOU772Fw6jDqcOq4buB4bq/4buF4buD4bq9xJPhuJXhuJfElcSXw6vhurvEm8iFyIfhurnhu4fIqeG4ncSZ4biZ4bibyYfJm8edXS9naSB9LFxyXG4gICAgeyBsOiAnZicsIHM6IC9b4pOV772G4bifxpLqnbxdL2dpIH0sXHJcbiAgICB7IGw6ICdnJywgczogL1vik5bvvYfHtcSd4bihxJ/EocenxKPHpcmg6p6h4bW56p2/XS9naSB9LFxyXG4gICAgeyBsOiAnaCcsIHM6IC9b4pOX772IxKXhuKPhuKfIn+G4peG4qeG4q+G6lsSn4rGo4rG2yaVdL2dpIH0sXHJcbiAgICB7IGw6ICdodicsIHM6IC/GlS9naSB9LFxyXG4gICAgeyBsOiAnaScsIHM6IC9b4pOY772Jw6zDrcOuxKnEq8StxLDDr+G4r+G7iceQyInIi+G7i8Sv4bityajEsV0vZ2kgfSxcclxuICAgIHsgbDogJ2onLCBzOiAvW+KTme+9isS1x7DJiV0vZ2kgfSxcclxuICAgIHsgbDogJ2snLCBzOiAvW+KTmu+9i+G4scep4bizxLfhuLXGmeKxquqdgeqdg+qdheqeo10vZ2kgfSxcclxuICAgIHsgbDogJ2wnLCBzOiAvW+KTm++9jMWAxLrEvuG4t+G4ucS84bi94bi7xb/FgsaayavisaHqnYnqnoHqnYfqnYZdL2dpIH0sXHJcbiAgICB7IGw6ICdsaicsIHM6IC/HiS9naSB9LFxyXG4gICAgeyBsOiAnbScsIHM6IC9b4pOc772N4bi/4bmB4bmDybHJr10vZ2kgfSxcclxuICAgIHsgbDogJ24nLCBzOiAvW+KTne+9jse5xYTDseG5hcWI4bmHxYbhuYvhuYnGnsmyxYnqnpHqnqVdL2dpIH0sXHJcbiAgICB7IGw6ICduaicsIHM6IC/HjC9naSB9LFxyXG4gICAgeyBsOiAnbycsIHM6IC9b4pOe772Pw7LDs8O04buT4buR4buX4buVw7XhuY3IreG5j8WN4bmR4bmTxY/Ir8ixw7bIq+G7j8WRx5LIjciPxqHhu53hu5vhu6Hhu5/hu6Phu43hu5nHq8etw7jHv8mUxp/qnYvqnY3JtV0vZ2kgfSxcclxuICAgIHsgbDogJ29pJywgczogL8ajL2dpIH0sXHJcbiAgICB7IGw6ICdvZScsIHM6IC/Fky9naSB9LFxyXG4gICAgeyBsOiAnb28nLCBzOiAv6p2PL2dpIH0sXHJcbiAgICB7IGw6ICdvdScsIHM6IC/Ioy9naSB9LFxyXG4gICAgeyBsOiAncCcsIHM6IC9b4pOf772Q4bmV4bmXxqXhtb3qnZHqnZPqnZVdL2dpIH0sXHJcbiAgICB7IGw6ICdxJywgczogL1vik6DvvZHJi+qdl+qdmV0vZ2kgfSxcclxuICAgIHsgbDogJ3InLCBzOiAvW+KToe+9ksWV4bmZxZnIkciT4bmb4bmdxZfhuZ/Jjcm96p2b6p6n6p6DXS9naSB9LFxyXG4gICAgeyBsOiAncycsIHM6IC9b4pOi772Tw5/hup7Fm+G5pcWd4bmhxaHhuafhuaPhuanImcWfyL/qnqnqnoXhuptdL2dpIH0sXHJcbiAgICB7IGw6ICd0JywgczogL1vik6PvvZThuavhupfFpeG5rcibxaPhubHhua/Fp8atyojisabqnoddL2dpIH0sXHJcbiAgICB7IGw6ICd0eicsIHM6IC/qnKkvZ2kgfSxcclxuICAgIHsgbDogJ3UnLCBzOiAvW+KTpO+9lcO5w7rDu8Wp4bm5xavhubvFrcO8x5zHmMeWx5rhu6fFr8Wxx5TIlciXxrDhu6vhu6nhu6/hu63hu7Hhu6XhubPFs+G5t+G5tcqJXS9naSB9LFxyXG4gICAgeyBsOiAndicsIHM6IC9b4pOl772W4bm94bm/yovqnZ/KjF0vZ2kgfSxcclxuICAgIHsgbDogJ3Z5JywgczogL+qdoS9naSB9LFxyXG4gICAgeyBsOiAndycsIHM6IC9b4pOm772X4bqB4bqDxbXhuofhuoXhupjhuonisbNdL2dpIH0sXHJcbiAgICB7IGw6ICd4JywgczogL1vik6fvvZjhuovhuo1dL2dpIH0sXHJcbiAgICB7IGw6ICd5JywgczogL1vik6jvvZnhu7PDvcW34bu5yLPhuo/Dv+G7t+G6meG7tca0yY/hu79dL2dpIH0sXHJcbiAgICB7IGw6ICd6JywgczogL1vik6nvvZrFuuG6kcW8xb7hupPhupXGtsilyYDisazqnaNdL2dpIH1cclxuXTtcclxuXHJcbmNvbnN0IGRlZmF1bHRNaW5Db3VudEZvclNlYXJjaCA9IDY7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VsZWN0MlV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgZ2V0T3B0aW9uQnlWYWx1ZShkYXRhOiBTZWxlY3QyRGF0YSwgdmFsdWU6IFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uLnZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb24pLnZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0T3B0aW9uc0J5VmFsdWUoXHJcbiAgICAgICAgZGF0YTogU2VsZWN0MkRhdGEsXHJcbiAgICAgICAgdmFsdWU6IFNlbGVjdDJVcGRhdGVWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgICAgICAgbXVsdGlwbGU6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBTZWxlY3QyVmFsdWVbXSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBTZWxlY3QyT3B0aW9uW10gPSBbXTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gU2VsZWN0MlV0aWxzLmdldE9wdGlvbkJ5VmFsdWUoZGF0YSwgdik7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gob3B0aW9uKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU2VsZWN0MlV0aWxzLmdldE9wdGlvbkJ5VmFsdWUoZGF0YSwgdmFsdWUgYXMgU2VsZWN0MlZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEZpcnN0QXZhaWxhYmxlT3B0aW9uKGRhdGE6IFNlbGVjdDJEYXRhKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRPcHRpb25zQ291bnQoZGF0YTogU2VsZWN0MkRhdGEpIHtcclxuICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb3VudCArPSBvcHRpb25zLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHZhbHVlSXNOb3RJbkZpbHRlcmVkRGF0YShmaWx0ZXJlZERhdGE6IFNlbGVjdDJEYXRhLCB2YWx1ZTogU2VsZWN0MlZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChTZWxlY3QyVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZmlsdGVyZWREYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICgoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uKS52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvZ25pdGl2ZS1jb21wbGV4aXR5XHJcbiAgICBzdGF0aWMgZ2V0UHJldmlvdXNPcHRpb24oZmlsdGVyZWREYXRhOiBTZWxlY3QyRGF0YSwgaG92ZXJpbmdWYWx1ZTogU2VsZWN0MlZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBmaW5kSXQgPSBTZWxlY3QyVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQoaG92ZXJpbmdWYWx1ZSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IGZpbHRlcmVkRGF0YS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICBjb25zdCBncm91cE9yT3B0aW9uID0gZmlsdGVyZWREYXRhW2ldO1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IG9wdGlvbnMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvZ25pdGl2ZS1jb21wbGV4aXR5XHJcbiAgICBzdGF0aWMgZ2V0TmV4dE9wdGlvbihmaWx0ZXJlZERhdGE6IFNlbGVjdDJEYXRhLCBob3ZlcmluZ1ZhbHVlOiBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgbGV0IGZpbmRJdCA9IFNlbGVjdDJVdGlscy5pc051bGxPclVuZGVmaW5lZChob3ZlcmluZ1ZhbHVlKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZmlsdGVyZWREYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5kSXQgPSBvcHRpb24udmFsdWUgPT09IGhvdmVyaW5nVmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjb250YWluU2VhcmNoVGV4dChcclxuICAgICAgICBsYWJlbDogc3RyaW5nLFxyXG4gICAgICAgIHNlYXJjaFRleHQ6IHN0cmluZyB8IG51bGwsXHJcbiAgICAgICAgZWRpdFBhdHRlcm46ICgoc3RyOiBzdHJpbmcpID0+IHN0cmluZykgfCB1bmRlZmluZWRcclxuICAgICk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzZWFyY2hUZXh0XHJcbiAgICAgICAgICAgID8gU2VsZWN0MlV0aWxzXHJcbiAgICAgICAgICAgICAgICAuZm9ybWF0U2Fuc1VuaWNvZGUobGFiZWwpXHJcbiAgICAgICAgICAgICAgICAubWF0Y2gobmV3IFJlZ0V4cChTZWxlY3QyVXRpbHMuZm9ybWF0UGF0dGVybihzZWFyY2hUZXh0LCBlZGl0UGF0dGVybiksICdpJykpICE9PSBudWxsXHJcbiAgICAgICAgICAgIDogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBwcm90ZWN0UGF0dGVybihzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJ1tcXFxcLVxcXFxbXFxcXF1cXFxcL1xcXFx7XFxcXH1cXFxcKFxcXFwpXFxcXCpcXFxcK1xcXFw/XFxcXC5cXFxcXFxcXFxcXFxeXFxcXCRcXFxcfF0nLCAnZycpLCAnXFxcXCQmJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9ybWF0U2Fuc1VuaWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGZvciAoY29uc3QgdW5pY29kZVBhdHRlcm4gb2YgdW5pY29kZVBhdHRlcm5zKSB7XHJcbiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKHVuaWNvZGVQYXR0ZXJuLnMsIHVuaWNvZGVQYXR0ZXJuLmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGZvcm1hdFBhdHRlcm4oc3RyOiBzdHJpbmcsIGVkaXRQYXR0ZXJuOiAoKHN0cjogc3RyaW5nKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgICAgICBzdHIgPSBTZWxlY3QyVXRpbHMuZm9ybWF0U2Fuc1VuaWNvZGUoU2VsZWN0MlV0aWxzLnByb3RlY3RQYXR0ZXJuKHN0cikpO1xyXG5cclxuICAgICAgICBpZiAoZWRpdFBhdHRlcm4gJiYgdHlwZW9mIGVkaXRQYXR0ZXJuID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHN0ciA9IGVkaXRQYXR0ZXJuKHN0cik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEZpbHRlcmVkRGF0YShkYXRhOiBTZWxlY3QyRGF0YSwgc2VhcmNoVGV4dDogc3RyaW5nIHwgbnVsbCwgZWRpdFBhdHRlcm4/OiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyk6IFNlbGVjdDJEYXRhIHtcclxuICAgICAgICBpZiAoc2VhcmNoVGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IFNlbGVjdDJEYXRhID0gW107XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5zb21lKGdyb3VwID0+IFNlbGVjdDJVdGlscy5jb250YWluU2VhcmNoVGV4dChncm91cC5sYWJlbCwgc2VhcmNoVGV4dCwgZWRpdFBhdHRlcm4pKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZE9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0+IFNlbGVjdDJVdGlscy5jb250YWluU2VhcmNoVGV4dChncm91cC5sYWJlbCwgc2VhcmNoVGV4dCwgZWRpdFBhdHRlcm4pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBncm91cE9yT3B0aW9uLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogZmlsdGVyZWRPcHRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoU2VsZWN0MlV0aWxzLmNvbnRhaW5TZWFyY2hUZXh0KGdyb3VwT3JPcHRpb24ubGFiZWwsIHNlYXJjaFRleHQsIGVkaXRQYXR0ZXJuKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGdyb3VwT3JPcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGaWx0ZXJlZFNlbGVjdGVkRGF0YShkYXRhOiBTZWxlY3QyRGF0YSwgc2VsZWN0ZWRPcHRpb25zOiBTZWxlY3QyT3B0aW9uIHwgU2VsZWN0Mk9wdGlvbltdIHwgbnVsbCk6IFNlbGVjdDJEYXRhIHtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IFNlbGVjdDJEYXRhID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwID0+IFNlbGVjdDJVdGlscy5pc1NlbGVjdGVkKHNlbGVjdGVkT3B0aW9ucywgZ3JvdXAsIHRydWUpID09PSAnZmFsc2UnXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBncm91cE9yT3B0aW9uLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChTZWxlY3QyVXRpbHMuaXNTZWxlY3RlZChzZWxlY3RlZE9wdGlvbnMsIGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbiwgdHJ1ZSkgPT09ICdmYWxzZScpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGdyb3VwT3JPcHRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzU2VhcmNoYm94SGlkZGV4KGRhdGE6IFNlbGVjdDJEYXRhLCBtaW5Db3VudEZvclNlYXJjaD86IG51bWJlciB8IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChtaW5Db3VudEZvclNlYXJjaCA9PT0gJycgfHwgbWluQ291bnRGb3JTZWFyY2ggPT09IHVuZGVmaW5lZCB8fCBtaW5Db3VudEZvclNlYXJjaCA9PT0gbnVsbCB8fCBpc05hTigrbWluQ291bnRGb3JTZWFyY2gpKSB7XHJcbiAgICAgICAgICAgIG1pbkNvdW50Rm9yU2VhcmNoID0gZGVmYXVsdE1pbkNvdW50Rm9yU2VhcmNoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRpb25Db3VudCA9IFNlbGVjdDJVdGlscy5nZXRPcHRpb25zQ291bnQoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbkNvdW50IDwgK21pbkNvdW50Rm9yU2VhcmNoO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1NlbGVjdGVkKFxyXG4gICAgICAgIG9wdGlvbnM6IFNlbGVjdDJPcHRpb24gfCBTZWxlY3QyT3B0aW9uW10gfCBudWxsLFxyXG4gICAgICAgIG9wdGlvbjogU2VsZWN0Mk9wdGlvbixcclxuICAgICAgICBtdWx0aXBsZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcclxuICAgICkge1xyXG4gICAgICAgIHJldHVybiBtdWx0aXBsZVxyXG4gICAgICAgICAgICA/IG9wdGlvbnMgJiYgKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbltdKVxyXG4gICAgICAgICAgICAgICAgLnNvbWUob3AgPT4gb3AudmFsdWUgPT09IG9wdGlvbi52YWx1ZSkgPyAndHJ1ZScgOiAnZmFsc2UnXHJcbiAgICAgICAgICAgIDogb3B0aW9ucyAmJiBvcHRpb24udmFsdWUgPT09IChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb24pLnZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJztcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmVtb3ZlU2VsZWN0aW9uKG9wdGlvbnM6IFNlbGVjdDJPcHRpb24gfCBTZWxlY3QyT3B0aW9uW10gfCBudWxsLCBvcHRpb246IFNlbGVjdDJPcHRpb24pIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb25bXSkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb25bXSlbaV0udmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbltdKS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Mi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXNlbGVjdDItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL3NlbGVjdDItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSxrQ0FXQzs7Ozs7O0lBVEcsNkJBQWM7Ozs7O0lBRWQsK0JBQXlCOzs7OztJQUV6QiwrQkFBaUI7Ozs7O0lBRWpCLGtDQUFvQjs7Ozs7SUFFcEIsNEJBQVc7Ozs7O0FBR2YsbUNBaUJDOzs7Ozs7SUFmRyw4QkFBb0I7Ozs7O0lBRXBCLDhCQUFjOzs7OztJQUVkLGlDQUFtQjs7Ozs7SUFFbkIsMkJBQVk7Ozs7O0lBRVosZ0NBQWlCOzs7OztJQUVqQixtQ0FBb0I7Ozs7O0lBRXBCLDZCQUFXOzs7OztJQUVYLDZCQUFlOzs7Ozs7QUFTbkIsd0NBSUM7OztJQUhHLHVDQUFtQjs7SUFDbkIsbUNBQVM7O0lBQ1QscUNBQXlCOzs7Ozs7QUFHN0Isd0NBSUM7OztJQUhHLHVDQUFtQjs7SUFDbkIsbUNBQVM7O0lBQ1Qsb0NBQWU7OztBQUduQixNQUFNLE9BQU8sT0FBTyxHQUFHLEdBQUc7O0FBRTFCLE1BQU0sT0FBTyxlQUFlLEdBQStCO0lBQ3ZELEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsd0NBQXdDLEVBQUU7SUFDdkQsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7SUFDckIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7SUFDekIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7SUFDckIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7SUFDckIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUU7SUFDeEIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENB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QW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDeEQsQ0FBQyxtQkFBQSxPQUFPLEVBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxPQUFPO2FBQ1Y7U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdDIgfSBmcm9tICcuL3NlbGVjdDIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0Mkdyb3VwIHtcclxuICAgIC8qKiBsYWJlbCBvZiBncm91cCAqL1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIC8qKiBvcHRpb25zIGxpc3QgKi9cclxuICAgIG9wdGlvbnM6IFNlbGVjdDJPcHRpb25bXTtcclxuICAgIC8qKiBhZGQgY2xhc3NlcyAgKi9cclxuICAgIGNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgICAvKiogdGVtcGxhdGUgaWQgICovXHJcbiAgICB0ZW1wbGF0ZUlkPzogc3RyaW5nO1xyXG4gICAgLyoqIHRlbXBsYXRlIGRhdGEgICovXHJcbiAgICBkYXRhPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdDJPcHRpb24ge1xyXG4gICAgLyoqIHZhbHVlICAqL1xyXG4gICAgdmFsdWU6IFNlbGVjdDJWYWx1ZTtcclxuICAgIC8qKiBsYWJlbCBvZiBvcHRpb24gKi9cclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICAvKiogbm8gc2VsZWN0YWJsZSBpcyBkaXNhYmxlZCAqL1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgLyoqIGZvciBpZGVudGlmaWNhdGlvbiAqL1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICAvKiogYWRkIGNsYXNzZXMgICovXHJcbiAgICBjbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgLyoqIHRlbXBsYXRlIGlkICAqL1xyXG4gICAgdGVtcGxhdGVJZD86IHN0cmluZztcclxuICAgIC8qKiB0ZW1wbGF0ZSBkYXRhICAqL1xyXG4gICAgZGF0YT86IGFueTtcclxuICAgIC8qKiBoaWRlIHRoaXMgb3B0aW9uICovXHJcbiAgICBoaWRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0MlZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdDJVcGRhdGVWYWx1ZSA9IFNlbGVjdDJWYWx1ZSB8IFNlbGVjdDJWYWx1ZVtdO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0MkRhdGEgPSAoU2VsZWN0Mkdyb3VwIHwgU2VsZWN0Mk9wdGlvbilbXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0MlVwZGF0ZUV2ZW50PFUgZXh0ZW5kcyBTZWxlY3QyVXBkYXRlVmFsdWUgPSBTZWxlY3QyVmFsdWU+IHtcclxuICAgIGNvbXBvbmVudDogU2VsZWN0MjtcclxuICAgIHZhbHVlOiBVO1xyXG4gICAgb3B0aW9uczogU2VsZWN0Mk9wdGlvbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdDJTZWFyY2hFdmVudDxVIGV4dGVuZHMgU2VsZWN0MlVwZGF0ZVZhbHVlID0gU2VsZWN0MlZhbHVlPiB7XHJcbiAgICBjb21wb25lbnQ6IFNlbGVjdDI7XHJcbiAgICB2YWx1ZTogVTtcclxuICAgIHNlYXJjaDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgdGltZW91dCA9IDIwMDtcclxuXHJcbmV4cG9ydCBjb25zdCB1bmljb2RlUGF0dGVybnM6IHsgbDogc3RyaW5nLCBzOiBSZWdFeHAgfVtdID0gW1xyXG4gICAgeyBsOiAnYScsIHM6IC9b4pOQ772B4bqaw6DDocOi4bqn4bql4bqr4bqpw6PEgcSD4bqx4bqv4bq14bqzyKfHocOkx5/huqPDpce7x47IgciD4bqh4bqt4bq34biBxIXisaXJkF0vZ2kgfSxcclxuICAgIHsgbDogJ2FhJywgczogL+qcsy9naSB9LFxyXG4gICAgeyBsOiAnYWUnLCBzOiAvW8Omx73Ho10vZ2kgfSxcclxuICAgIHsgbDogJ2FvJywgczogL+qctS9naSB9LFxyXG4gICAgeyBsOiAnYXUnLCBzOiAv6py3L2dpIH0sXHJcbiAgICB7IGw6ICdhdicsIHM6IC9b6py56py7XS9naSB9LFxyXG4gICAgeyBsOiAnYXknLCBzOiAv6py9L2dpIH0sXHJcbiAgICB7IGw6ICdiJywgczogL1vik5HvvYLhuIPhuIXhuIfGgMaDyZNdL2dpIH0sXHJcbiAgICB7IGw6ICdjJywgczogL1vik5LvvYPEh8SJxIvEjcOn4biJxojIvOqcv+KGhF0vZ2kgfSxcclxuICAgIHsgbDogJ2QnLCBzOiAvW+KTk++9hOG4i8SP4biN4biR4biT4biPxJHGjMmWyZfqnbpdL2dpIH0sXHJcbiAgICB7IGw6ICdkeicsIHM6IC9bx7PHhl0vZ2kgfSxcclxuICAgIHsgbDogJ2UnLCBzOiAvW+KTlO+9hcOow6nDquG7geG6v+G7heG7g+G6vcST4biV4biXxJXEl8Or4bq7xJvIhciH4bq54buHyKnhuJ3EmeG4meG4m8mHyZvHnV0vZ2kgfSxcclxuICAgIHsgbDogJ2YnLCBzOiAvW+KTle+9huG4n8aS6p28XS9naSB9LFxyXG4gICAgeyBsOiAnZycsIHM6IC9b4pOW772Hx7XEneG4ocSfxKHHp8Sjx6XJoOqeoeG1ueqdv10vZ2kgfSxcclxuICAgIHsgbDogJ2gnLCBzOiAvW+KTl++9iMSl4bij4binyJ/huKXhuKnhuKvhupbEp+KxqOKxtsmlXS9naSB9LFxyXG4gICAgeyBsOiAnaHYnLCBzOiAvxpUvZ2kgfSxcclxuICAgIHsgbDogJ2knLCBzOiAvW+KTmO+9icOsw63DrsSpxKvErcSww6/huK/hu4nHkMiJyIvhu4vEr+G4rcmoxLFdL2dpIH0sXHJcbiAgICB7IGw6ICdqJywgczogL1vik5nvvYrEtcewyYldL2dpIH0sXHJcbiAgICB7IGw6ICdrJywgczogL1vik5rvvYvhuLHHqeG4s8S34bi1xpnisarqnYHqnYPqnYXqnqNdL2dpIH0sXHJcbiAgICB7IGw6ICdsJywgczogL1vik5vvvYzFgMS6xL7huLfhuLnEvOG4veG4u8W/xYLGmsmr4rGh6p2J6p6B6p2H6p2GXS9naSB9LFxyXG4gICAgeyBsOiAnbGonLCBzOiAvx4kvZ2kgfSxcclxuICAgIHsgbDogJ20nLCBzOiAvW+KTnO+9jeG4v+G5geG5g8mxya9dL2dpIH0sXHJcbiAgICB7IGw6ICduJywgczogL1vik53vvY7HucWEw7HhuYXFiOG5h8WG4bmL4bmJxp7JssWJ6p6R6p6lXS9naSB9LFxyXG4gICAgeyBsOiAnbmonLCBzOiAvx4wvZ2kgfSxcclxuICAgIHsgbDogJ28nLCBzOiAvW+KTnu+9j8Oyw7PDtOG7k+G7keG7l+G7lcO14bmNyK3huY/FjeG5keG5k8WPyK/IscO2yKvhu4/FkceSyI3Ij8ah4bud4bub4buh4buf4buj4buN4buZx6vHrcO4x7/JlMaf6p2L6p2NybVdL2dpIH0sXHJcbiAgICB7IGw6ICdvaScsIHM6IC/Goy9naSB9LFxyXG4gICAgeyBsOiAnb2UnLCBzOiAvxZMvZ2kgfSxcclxuICAgIHsgbDogJ29vJywgczogL+qdjy9naSB9LFxyXG4gICAgeyBsOiAnb3UnLCBzOiAvyKMvZ2kgfSxcclxuICAgIHsgbDogJ3AnLCBzOiAvW+KTn++9kOG5leG5l8al4bW96p2R6p2T6p2VXS9naSB9LFxyXG4gICAgeyBsOiAncScsIHM6IC9b4pOg772RyYvqnZfqnZldL2dpIH0sXHJcbiAgICB7IGw6ICdyJywgczogL1vik6HvvZLFleG5mcWZyJHIk+G5m+G5ncWX4bmfyY3Jveqdm+qep+qeg10vZ2kgfSxcclxuICAgIHsgbDogJ3MnLCBzOiAvW+KTou+9k8Of4bqexZvhuaXFneG5ocWh4bmn4bmj4bmpyJnFn8i/6p6p6p6F4bqbXS9naSB9LFxyXG4gICAgeyBsOiAndCcsIHM6IC9b4pOj772U4bmr4bqXxaXhua3Im8Wj4bmx4bmvxafGrcqI4rGm6p6HXS9naSB9LFxyXG4gICAgeyBsOiAndHonLCBzOiAv6pypL2dpIH0sXHJcbiAgICB7IGw6ICd1JywgczogL1vik6TvvZXDucO6w7vFqeG5ucWr4bm7xa3DvMecx5jHlsea4bunxa/FsceUyJXIl8aw4bur4bup4buv4but4bux4bul4bmzxbPhubfhubXKiV0vZ2kgfSxcclxuICAgIHsgbDogJ3YnLCBzOiAvW+KTpe+9luG5veG5v8qL6p2fyoxdL2dpIH0sXHJcbiAgICB7IGw6ICd2eScsIHM6IC/qnaEvZ2kgfSxcclxuICAgIHsgbDogJ3cnLCBzOiAvW+KTpu+9l+G6geG6g8W14bqH4bqF4bqY4bqJ4rGzXS9naSB9LFxyXG4gICAgeyBsOiAneCcsIHM6IC9b4pOn772Y4bqL4bqNXS9naSB9LFxyXG4gICAgeyBsOiAneScsIHM6IC9b4pOo772Z4buzw73Ft+G7uciz4bqPw7/hu7fhupnhu7XGtMmP4bu/XS9naSB9LFxyXG4gICAgeyBsOiAneicsIHM6IC9b4pOp772axbrhupHFvMW+4bqT4bqVxrbIpcmA4rGs6p2jXS9naSB9XHJcbl07XHJcblxyXG5jb25zdCBkZWZhdWx0TWluQ291bnRGb3JTZWFyY2ggPSA2O1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdDJVdGlscyB7XHJcblxyXG4gICAgc3RhdGljIGdldE9wdGlvbkJ5VmFsdWUoZGF0YTogU2VsZWN0MkRhdGEsIHZhbHVlOiBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uKS52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldE9wdGlvbnNCeVZhbHVlKFxyXG4gICAgICAgIGRhdGE6IFNlbGVjdDJEYXRhLFxyXG4gICAgICAgIHZhbHVlOiBTZWxlY3QyVXBkYXRlVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlczogU2VsZWN0MlZhbHVlW10gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogU2VsZWN0Mk9wdGlvbltdID0gW107XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IFNlbGVjdDJVdGlscy5nZXRPcHRpb25CeVZhbHVlKGRhdGEsIHYpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFNlbGVjdDJVdGlscy5nZXRPcHRpb25CeVZhbHVlKGRhdGEsIHZhbHVlIGFzIFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGaXJzdEF2YWlsYWJsZU9wdGlvbihkYXRhOiBTZWxlY3QyRGF0YSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0T3B0aW9uc0NvdW50KGRhdGE6IFNlbGVjdDJEYXRhKSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gb3B0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB2YWx1ZUlzTm90SW5GaWx0ZXJlZERhdGEoZmlsdGVyZWREYXRhOiBTZWxlY3QyRGF0YSwgdmFsdWU6IFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoU2VsZWN0MlV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGZpbHRlcmVkRGF0YSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb24udmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbikudmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb2duaXRpdmUtY29tcGxleGl0eVxyXG4gICAgc3RhdGljIGdldFByZXZpb3VzT3B0aW9uKGZpbHRlcmVkRGF0YTogU2VsZWN0MkRhdGEsIGhvdmVyaW5nVmFsdWU6IFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBsZXQgZmluZEl0ID0gU2VsZWN0MlV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKGhvdmVyaW5nVmFsdWUpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBmaWx0ZXJlZERhdGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgZ3JvdXBPck9wdGlvbiA9IGZpbHRlcmVkRGF0YVtpXTtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBvcHRpb25zLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9uc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkICYmICFvcHRpb24uaGlkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5kSXQgPSBvcHRpb24udmFsdWUgPT09IGhvdmVyaW5nVmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkICYmICFvcHRpb24uaGlkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvZ25pdGl2ZS1jb21wbGV4aXR5XHJcbiAgICBzdGF0aWMgZ2V0TmV4dE9wdGlvbihmaWx0ZXJlZERhdGE6IFNlbGVjdDJEYXRhLCBob3ZlcmluZ1ZhbHVlOiBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgbGV0IGZpbmRJdCA9IFNlbGVjdDJVdGlscy5pc051bGxPclVuZGVmaW5lZChob3ZlcmluZ1ZhbHVlKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZmlsdGVyZWREYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCAmJiAhb3B0aW9uLmhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCAmJiAhb3B0aW9uLmhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaW5kSXQgPSBvcHRpb24udmFsdWUgPT09IGhvdmVyaW5nVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGNvbnRhaW5TZWFyY2hUZXh0KFxyXG4gICAgICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICAgICAgc2VhcmNoVGV4dDogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBlZGl0UGF0dGVybjogKChzdHI6IHN0cmluZykgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZFxyXG4gICAgKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHNlYXJjaFRleHRcclxuICAgICAgICAgICAgPyBTZWxlY3QyVXRpbHNcclxuICAgICAgICAgICAgICAgIC5mb3JtYXRTYW5zVW5pY29kZShsYWJlbClcclxuICAgICAgICAgICAgICAgIC5tYXRjaChuZXcgUmVnRXhwKFNlbGVjdDJVdGlscy5mb3JtYXRQYXR0ZXJuKHNlYXJjaFRleHQsIGVkaXRQYXR0ZXJuKSwgJ2knKSkgIT09IG51bGxcclxuICAgICAgICAgICAgOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIHByb3RlY3RQYXR0ZXJuKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgnW1xcXFwtXFxcXFtcXFxcXVxcXFwvXFxcXHtcXFxcfVxcXFwoXFxcXClcXFxcKlxcXFwrXFxcXD9cXFxcLlxcXFxcXFxcXFxcXF5cXFxcJFxcXFx8XScsICdnJyksICdcXFxcJCYnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBmb3JtYXRTYW5zVW5pY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgZm9yIChjb25zdCB1bmljb2RlUGF0dGVybiBvZiB1bmljb2RlUGF0dGVybnMpIHtcclxuICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UodW5pY29kZVBhdHRlcm4ucywgdW5pY29kZVBhdHRlcm4ubCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9ybWF0UGF0dGVybihzdHI6IHN0cmluZywgZWRpdFBhdHRlcm46ICgoc3RyOiBzdHJpbmcpID0+IHN0cmluZykgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgICAgIHN0ciA9IFNlbGVjdDJVdGlscy5mb3JtYXRTYW5zVW5pY29kZShTZWxlY3QyVXRpbHMucHJvdGVjdFBhdHRlcm4oc3RyKSk7XHJcblxyXG4gICAgICAgIGlmIChlZGl0UGF0dGVybiAmJiB0eXBlb2YgZWRpdFBhdHRlcm4gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgc3RyID0gZWRpdFBhdHRlcm4oc3RyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0RmlsdGVyZWREYXRhKGRhdGE6IFNlbGVjdDJEYXRhLCBzZWFyY2hUZXh0OiBzdHJpbmcgfCBudWxsLCBlZGl0UGF0dGVybj86IChzdHI6IHN0cmluZykgPT4gc3RyaW5nKTogU2VsZWN0MkRhdGEge1xyXG4gICAgICAgIGlmIChzZWFyY2hUZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogU2VsZWN0MkRhdGEgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNvbWUoZ3JvdXAgPT4gU2VsZWN0MlV0aWxzLmNvbnRhaW5TZWFyY2hUZXh0KGdyb3VwLmxhYmVsLCBzZWFyY2hUZXh0LCBlZGl0UGF0dGVybikpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPT4gU2VsZWN0MlV0aWxzLmNvbnRhaW5TZWFyY2hUZXh0KGdyb3VwLmxhYmVsLCBzZWFyY2hUZXh0LCBlZGl0UGF0dGVybilcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdyb3VwT3JPcHRpb24ubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChTZWxlY3QyVXRpbHMuY29udGFpblNlYXJjaFRleHQoZ3JvdXBPck9wdGlvbi5sYWJlbCwgc2VhcmNoVGV4dCwgZWRpdFBhdHRlcm4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZ3JvdXBPck9wdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEZpbHRlcmVkU2VsZWN0ZWREYXRhKGRhdGE6IFNlbGVjdDJEYXRhLCBzZWxlY3RlZE9wdGlvbnM6IFNlbGVjdDJPcHRpb24gfCBTZWxlY3QyT3B0aW9uW10gfCBudWxsKTogU2VsZWN0MkRhdGEge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdDogU2VsZWN0MkRhdGEgPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZGF0YSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gb3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPT4gU2VsZWN0MlV0aWxzLmlzU2VsZWN0ZWQoc2VsZWN0ZWRPcHRpb25zLCBncm91cCwgdHJ1ZSkgPT09ICdmYWxzZSdcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdyb3VwT3JPcHRpb24ubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGZpbHRlcmVkT3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFNlbGVjdDJVdGlscy5pc1NlbGVjdGVkKHNlbGVjdGVkT3B0aW9ucywgZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uLCB0cnVlKSA9PT0gJ2ZhbHNlJykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZ3JvdXBPck9wdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNTZWFyY2hib3hIaWRkZXgoZGF0YTogU2VsZWN0MkRhdGEsIG1pbkNvdW50Rm9yU2VhcmNoPzogbnVtYmVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKG1pbkNvdW50Rm9yU2VhcmNoID09PSAnJyB8fCBtaW5Db3VudEZvclNlYXJjaCA9PT0gdW5kZWZpbmVkIHx8IG1pbkNvdW50Rm9yU2VhcmNoID09PSBudWxsIHx8IGlzTmFOKCttaW5Db3VudEZvclNlYXJjaCkpIHtcclxuICAgICAgICAgICAgbWluQ291bnRGb3JTZWFyY2ggPSBkZWZhdWx0TWluQ291bnRGb3JTZWFyY2g7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9wdGlvbkNvdW50ID0gU2VsZWN0MlV0aWxzLmdldE9wdGlvbnNDb3VudChkYXRhKTtcclxuICAgICAgICByZXR1cm4gb3B0aW9uQ291bnQgPCArbWluQ291bnRGb3JTZWFyY2g7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzU2VsZWN0ZWQoXHJcbiAgICAgICAgb3B0aW9uczogU2VsZWN0Mk9wdGlvbiB8IFNlbGVjdDJPcHRpb25bXSB8IG51bGwsXHJcbiAgICAgICAgb3B0aW9uOiBTZWxlY3QyT3B0aW9uLFxyXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIG11bHRpcGxlXHJcbiAgICAgICAgICAgID8gb3B0aW9ucyAmJiAob3B0aW9ucyBhcyBTZWxlY3QyT3B0aW9uW10pXHJcbiAgICAgICAgICAgICAgICAuc29tZShvcCA9PiBvcC52YWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSA/ICd0cnVlJyA6ICdmYWxzZSdcclxuICAgICAgICAgICAgOiBvcHRpb25zICYmIG9wdGlvbi52YWx1ZSA9PT0gKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbikudmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZW1vdmVTZWxlY3Rpb24ob3B0aW9uczogU2VsZWN0Mk9wdGlvbiB8IFNlbGVjdDJPcHRpb25bXSB8IG51bGwsIG9wdGlvbjogU2VsZWN0Mk9wdGlvbikge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbltdKS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbltdKVtpXS52YWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAob3B0aW9ucyBhcyBTZWxlY3QyT3B0aW9uW10pLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=

@@ -424,3 +424,3 @@ /**

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -438,3 +438,3 @@ }

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -478,3 +478,3 @@ }

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -500,3 +500,3 @@ }

if (findIt) {
if (!option.disabled) {
if (!option.disabled && !option.hide) {
return option;

@@ -779,2 +779,2 @@ }

export { Select2Utils };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Mi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXNlbGVjdDItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL3NlbGVjdDItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsa0NBV0M7Ozs7OztJQVRHLDZCQUFjOzs7OztJQUVkLCtCQUF5Qjs7Ozs7SUFFekIsK0JBQWlCOzs7OztJQUVqQixrQ0FBb0I7Ozs7O0lBRXBCLDRCQUFXOzs7OztBQUdmLG1DQWlCQzs7Ozs7O0lBZkcsOEJBQW9COzs7OztJQUVwQiw4QkFBYzs7Ozs7SUFFZCxpQ0FBbUI7Ozs7O0lBRW5CLDJCQUFZOzs7OztJQUVaLGdDQUFpQjs7Ozs7SUFFakIsbUNBQW9COzs7OztJQUVwQiw2QkFBVzs7Ozs7SUFFWCw2QkFBZTs7Ozs7O0FBU25CLHdDQUlDOzs7SUFIRyx1Q0FBbUI7O0lBQ25CLG1DQUFTOztJQUNULHFDQUF5Qjs7Ozs7O0FBRzdCLHdDQUlDOzs7SUFIRyx1Q0FBbUI7O0lBQ25CLG1DQUFTOztJQUNULG9DQUFlOzs7QUFHbkIsTUFBTSxLQUFPLE9BQU8sR0FBRyxHQUFHOztBQUUxQixNQUFNLEtBQU8sZUFBZSxHQUErQjtJQUN2RCxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLHdDQUF3QyxFQUFFO0lBQ3ZELEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0lBQ3pCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFO0lBQ3hCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxD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TyxXQUFXLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztJQUM1QyxDQUFDOzs7Ozs7O0lBRU0sdUJBQVU7Ozs7OztJQUFqQixVQUNJLE9BQStDLEVBQy9DLE1BQXFCLEVBQ3JCLFFBQW9DO1FBRXBDLE9BQU8sUUFBUTtZQUNYLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxtQkFBQSxPQUFPLEVBQW1CLENBQUM7aUJBQ3BDLElBQUk7Ozs7WUFBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBekIsQ0FBeUIsRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDN0QsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsbUJBQUEsT0FBTyxFQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMxRixDQUFDOzs7Ozs7SUFFTSw0QkFBZTs7Ozs7SUFBdEIsVUFBdUIsT0FBK0MsRUFBRSxNQUFxQjtRQUN6RixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxPQUFPLEVBQW1CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxDQUFDLG1CQUFBLE9BQU8sRUFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUN4RCxDQUFDLG1CQUFBLE9BQU8sRUFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLE9BQU87YUFDVjtTQUNKO0lBQ0wsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FBQyxBQTVRRCxJQTRRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdDIgfSBmcm9tICcuL3NlbGVjdDIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0Mkdyb3VwIHtcclxuICAgIC8qKiBsYWJlbCBvZiBncm91cCAqL1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIC8qKiBvcHRpb25zIGxpc3QgKi9cclxuICAgIG9wdGlvbnM6IFNlbGVjdDJPcHRpb25bXTtcclxuICAgIC8qKiBhZGQgY2xhc3NlcyAgKi9cclxuICAgIGNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgICAvKiogdGVtcGxhdGUgaWQgICovXHJcbiAgICB0ZW1wbGF0ZUlkPzogc3RyaW5nO1xyXG4gICAgLyoqIHRlbXBsYXRlIGRhdGEgICovXHJcbiAgICBkYXRhPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdDJPcHRpb24ge1xyXG4gICAgLyoqIHZhbHVlICAqL1xyXG4gICAgdmFsdWU6IFNlbGVjdDJWYWx1ZTtcclxuICAgIC8qKiBsYWJlbCBvZiBvcHRpb24gKi9cclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICAvKiogbm8gc2VsZWN0YWJsZSBpcyBkaXNhYmxlZCAqL1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgLyoqIGZvciBpZGVudGlmaWNhdGlvbiAqL1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICAvKiogYWRkIGNsYXNzZXMgICovXHJcbiAgICBjbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgLyoqIHRlbXBsYXRlIGlkICAqL1xyXG4gICAgdGVtcGxhdGVJZD86IHN0cmluZztcclxuICAgIC8qKiB0ZW1wbGF0ZSBkYXRhICAqL1xyXG4gICAgZGF0YT86IGFueTtcclxuICAgIC8qKiBoaWRlIHRoaXMgb3B0aW9uICovXHJcbiAgICBoaWRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0MlZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdDJVcGRhdGVWYWx1ZSA9IFNlbGVjdDJWYWx1ZSB8IFNlbGVjdDJWYWx1ZVtdO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0MkRhdGEgPSAoU2VsZWN0Mkdyb3VwIHwgU2VsZWN0Mk9wdGlvbilbXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0MlVwZGF0ZUV2ZW50PFUgZXh0ZW5kcyBTZWxlY3QyVXBkYXRlVmFsdWUgPSBTZWxlY3QyVmFsdWU+IHtcclxuICAgIGNvbXBvbmVudDogU2VsZWN0MjtcclxuICAgIHZhbHVlOiBVO1xyXG4gICAgb3B0aW9uczogU2VsZWN0Mk9wdGlvbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdDJTZWFyY2hFdmVudDxVIGV4dGVuZHMgU2VsZWN0MlVwZGF0ZVZhbHVlID0gU2VsZWN0MlZhbHVlPiB7XHJcbiAgICBjb21wb25lbnQ6IFNlbGVjdDI7XHJcbiAgICB2YWx1ZTogVTtcclxuICAgIHNlYXJjaDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgdGltZW91dCA9IDIwMDtcclxuXHJcbmV4cG9ydCBjb25zdCB1bmljb2RlUGF0dGVybnM6IHsgbDogc3RyaW5nLCBzOiBSZWdFeHAgfVtdID0gW1xyXG4gICAgeyBsOiAnYScsIHM6IC9b4pOQ772B4bqaw6DDocOi4bqn4bql4bqr4bqpw6PEgcSD4bqx4bqv4bq14bqzyKfHocOkx5/huqPDpce7x47IgciD4bqh4bqt4bq34biBxIXisaXJkF0vZ2kgfSxcclxuICAgIHsgbDogJ2FhJywgczogL+qcsy9naSB9LFxyXG4gICAgeyBsOiAnYWUnLCBzOiAvW8Omx73Ho10vZ2kgfSxcclxuICAgIHsgbDogJ2FvJywgczogL+qctS9naSB9LFxyXG4gICAgeyBsOiAnYXUnLCBzOiAv6py3L2dpIH0sXHJcbiAgICB7IGw6ICdhdicsIHM6IC9b6py56py7XS9naSB9LFxyXG4gICAgeyBsOiAnYXknLCBzOiAv6py9L2dpIH0sXHJcbiAgICB7IGw6ICdiJywgczogL1vik5HvvYLhuIPhuIXhuIfGgMaDyZNdL2dpIH0sXHJcbiAgICB7IGw6ICdjJywgczogL1vik5LvvYPEh8SJxIvEjcOn4biJxojIvOqcv+KGhF0vZ2kgfSxcclxuICAgIHsgbDogJ2QnLCBzOiAvW+KTk++9hOG4i8SP4biN4biR4biT4biPxJHGjMmWyZfqnbpdL2dpIH0sXHJcbiAgICB7IGw6ICdkeicsIHM6IC9bx7PHhl0vZ2kgfSxcclxuICAgIHsgbDogJ2UnLCBzOiAvW+KTlO+9hcOow6nDquG7geG6v+G7heG7g+G6vcST4biV4biXxJXEl8Or4bq7xJvIhciH4bq54buHyKnhuJ3EmeG4meG4m8mHyZvHnV0vZ2kgfSxcclxuICAgIHsgbDogJ2YnLCBzOiAvW+KTle+9huG4n8aS6p28XS9naSB9LFxyXG4gICAgeyBsOiAnZycsIHM6IC9b4pOW772Hx7XEneG4ocSfxKHHp8Sjx6XJoOqeoeG1ueqdv10vZ2kgfSxcclxuICAgIHsgbDogJ2gnLCBzOiAvW+KTl++9iMSl4bij4binyJ/huKXhuKnhuKvhupbEp+KxqOKxtsmlXS9naSB9LFxyXG4gICAgeyBsOiAnaHYnLCBzOiAvxpUvZ2kgfSxcclxuICAgIHsgbDogJ2knLCBzOiAvW+KTmO+9icOsw63DrsSpxKvErcSww6/huK/hu4nHkMiJyIvhu4vEr+G4rcmoxLFdL2dpIH0sXHJcbiAgICB7IGw6ICdqJywgczogL1vik5nvvYrEtcewyYldL2dpIH0sXHJcbiAgICB7IGw6ICdrJywgczogL1vik5rvvYvhuLHHqeG4s8S34bi1xpnisarqnYHqnYPqnYXqnqNdL2dpIH0sXHJcbiAgICB7IGw6ICdsJywgczogL1vik5vvvYzFgMS6xL7huLfhuLnEvOG4veG4u8W/xYLGmsmr4rGh6p2J6p6B6p2H6p2GXS9naSB9LFxyXG4gICAgeyBsOiAnbGonLCBzOiAvx4kvZ2kgfSxcclxuICAgIHsgbDogJ20nLCBzOiAvW+KTnO+9jeG4v+G5geG5g8mxya9dL2dpIH0sXHJcbiAgICB7IGw6ICduJywgczogL1vik53vvY7HucWEw7HhuYXFiOG5h8WG4bmL4bmJxp7JssWJ6p6R6p6lXS9naSB9LFxyXG4gICAgeyBsOiAnbmonLCBzOiAvx4wvZ2kgfSxcclxuICAgIHsgbDogJ28nLCBzOiAvW+KTnu+9j8Oyw7PDtOG7k+G7keG7l+G7lcO14bmNyK3huY/FjeG5keG5k8WPyK/IscO2yKvhu4/FkceSyI3Ij8ah4bud4bub4buh4buf4buj4buN4buZx6vHrcO4x7/JlMaf6p2L6p2NybVdL2dpIH0sXHJcbiAgICB7IGw6ICdvaScsIHM6IC/Goy9naSB9LFxyXG4gICAgeyBsOiAnb2UnLCBzOiAvxZMvZ2kgfSxcclxuICAgIHsgbDogJ29vJywgczogL+qdjy9naSB9LFxyXG4gICAgeyBsOiAnb3UnLCBzOiAvyKMvZ2kgfSxcclxuICAgIHsgbDogJ3AnLCBzOiAvW+KTn++9kOG5leG5l8al4bW96p2R6p2T6p2VXS9naSB9LFxyXG4gICAgeyBsOiAncScsIHM6IC9b4pOg772RyYvqnZfqnZldL2dpIH0sXHJcbiAgICB7IGw6ICdyJywgczogL1vik6HvvZLFleG5mcWZyJHIk+G5m+G5ncWX4bmfyY3Jveqdm+qep+qeg10vZ2kgfSxcclxuICAgIHsgbDogJ3MnLCBzOiAvW+KTou+9k8Of4bqexZvhuaXFneG5ocWh4bmn4bmj4bmpyJnFn8i/6p6p6p6F4bqbXS9naSB9LFxyXG4gICAgeyBsOiAndCcsIHM6IC9b4pOj772U4bmr4bqXxaXhua3Im8Wj4bmx4bmvxafGrcqI4rGm6p6HXS9naSB9LFxyXG4gICAgeyBsOiAndHonLCBzOiAv6pypL2dpIH0sXHJcbiAgICB7IGw6ICd1JywgczogL1vik6TvvZXDucO6w7vFqeG5ucWr4bm7xa3DvMecx5jHlsea4bunxa/FsceUyJXIl8aw4bur4bup4buv4but4bux4bul4bmzxbPhubfhubXKiV0vZ2kgfSxcclxuICAgIHsgbDogJ3YnLCBzOiAvW+KTpe+9luG5veG5v8qL6p2fyoxdL2dpIH0sXHJcbiAgICB7IGw6ICd2eScsIHM6IC/qnaEvZ2kgfSxcclxuICAgIHsgbDogJ3cnLCBzOiAvW+KTpu+9l+G6geG6g8W14bqH4bqF4bqY4bqJ4rGzXS9naSB9LFxyXG4gICAgeyBsOiAneCcsIHM6IC9b4pOn772Y4bqL4bqNXS9naSB9LFxyXG4gICAgeyBsOiAneScsIHM6IC9b4pOo772Z4buzw73Ft+G7uciz4bqPw7/hu7fhupnhu7XGtMmP4bu/XS9naSB9LFxyXG4gICAgeyBsOiAneicsIHM6IC9b4pOp772axbrhupHFvMW+4bqT4bqVxrbIpcmA4rGs6p2jXS9naSB9XHJcbl07XHJcblxyXG5jb25zdCBkZWZhdWx0TWluQ291bnRGb3JTZWFyY2ggPSA2O1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdDJVdGlscyB7XHJcblxyXG4gICAgc3RhdGljIGdldE9wdGlvbkJ5VmFsdWUoZGF0YTogU2VsZWN0MkRhdGEsIHZhbHVlOiBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uKS52YWx1ZSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldE9wdGlvbnNCeVZhbHVlKFxyXG4gICAgICAgIGRhdGE6IFNlbGVjdDJEYXRhLFxyXG4gICAgICAgIHZhbHVlOiBTZWxlY3QyVXBkYXRlVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIG11bHRpcGxlOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlczogU2VsZWN0MlZhbHVlW10gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW107XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogU2VsZWN0Mk9wdGlvbltdID0gW107XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IFNlbGVjdDJVdGlscy5nZXRPcHRpb25CeVZhbHVlKGRhdGEsIHYpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFNlbGVjdDJVdGlscy5nZXRPcHRpb25CeVZhbHVlKGRhdGEsIHZhbHVlIGFzIFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGaXJzdEF2YWlsYWJsZU9wdGlvbihkYXRhOiBTZWxlY3QyRGF0YSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0T3B0aW9uc0NvdW50KGRhdGE6IFNlbGVjdDJEYXRhKSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gb3B0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB2YWx1ZUlzTm90SW5GaWx0ZXJlZERhdGEoZmlsdGVyZWREYXRhOiBTZWxlY3QyRGF0YSwgdmFsdWU6IFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoU2VsZWN0MlV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGZpbHRlcmVkRGF0YSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb24udmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbikudmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb2duaXRpdmUtY29tcGxleGl0eVxyXG4gICAgc3RhdGljIGdldFByZXZpb3VzT3B0aW9uKGZpbHRlcmVkRGF0YTogU2VsZWN0MkRhdGEsIGhvdmVyaW5nVmFsdWU6IFNlbGVjdDJWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBsZXQgZmluZEl0ID0gU2VsZWN0MlV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKGhvdmVyaW5nVmFsdWUpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBmaWx0ZXJlZERhdGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgZ3JvdXBPck9wdGlvbiA9IGZpbHRlcmVkRGF0YVtpXTtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBvcHRpb25zLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9uc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRJdCA9IG9wdGlvbi52YWx1ZSA9PT0gaG92ZXJpbmdWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb247XHJcbiAgICAgICAgICAgICAgICBpZiAoZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbmRJdCA9IG9wdGlvbi52YWx1ZSA9PT0gaG92ZXJpbmdWYWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb2duaXRpdmUtY29tcGxleGl0eVxyXG4gICAgc3RhdGljIGdldE5leHRPcHRpb24oZmlsdGVyZWREYXRhOiBTZWxlY3QyRGF0YSwgaG92ZXJpbmdWYWx1ZTogU2VsZWN0MlZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBmaW5kSXQgPSBTZWxlY3QyVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQoaG92ZXJpbmdWYWx1ZSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGZpbHRlcmVkRGF0YSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbmRJdCA9IG9wdGlvbi52YWx1ZSA9PT0gaG92ZXJpbmdWYWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBpc051bGxPclVuZGVmaW5lZCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29udGFpblNlYXJjaFRleHQoXHJcbiAgICAgICAgbGFiZWw6IHN0cmluZyxcclxuICAgICAgICBzZWFyY2hUZXh0OiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIGVkaXRQYXR0ZXJuOiAoKHN0cjogc3RyaW5nKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkXHJcbiAgICApOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc2VhcmNoVGV4dFxyXG4gICAgICAgICAgICA/IFNlbGVjdDJVdGlsc1xyXG4gICAgICAgICAgICAgICAgLmZvcm1hdFNhbnNVbmljb2RlKGxhYmVsKVxyXG4gICAgICAgICAgICAgICAgLm1hdGNoKG5ldyBSZWdFeHAoU2VsZWN0MlV0aWxzLmZvcm1hdFBhdHRlcm4oc2VhcmNoVGV4dCwgZWRpdFBhdHRlcm4pLCAnaScpKSAhPT0gbnVsbFxyXG4gICAgICAgICAgICA6IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcHJvdGVjdFBhdHRlcm4oc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKCdbXFxcXC1cXFxcW1xcXFxdXFxcXC9cXFxce1xcXFx9XFxcXChcXFxcKVxcXFwqXFxcXCtcXFxcP1xcXFwuXFxcXFxcXFxcXFxcXlxcXFwkXFxcXHxdJywgJ2cnKSwgJ1xcXFwkJicpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGZvcm1hdFNhbnNVbmljb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHVuaWNvZGVQYXR0ZXJuIG9mIHVuaWNvZGVQYXR0ZXJucykge1xyXG4gICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZSh1bmljb2RlUGF0dGVybi5zLCB1bmljb2RlUGF0dGVybi5sKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBmb3JtYXRQYXR0ZXJuKHN0cjogc3RyaW5nLCBlZGl0UGF0dGVybjogKChzdHI6IHN0cmluZykgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICAgICAgc3RyID0gU2VsZWN0MlV0aWxzLmZvcm1hdFNhbnNVbmljb2RlKFNlbGVjdDJVdGlscy5wcm90ZWN0UGF0dGVybihzdHIpKTtcclxuXHJcbiAgICAgICAgaWYgKGVkaXRQYXR0ZXJuICYmIHR5cGVvZiBlZGl0UGF0dGVybiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBzdHIgPSBlZGl0UGF0dGVybihzdHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGaWx0ZXJlZERhdGEoZGF0YTogU2VsZWN0MkRhdGEsIHNlYXJjaFRleHQ6IHN0cmluZyB8IG51bGwsIGVkaXRQYXR0ZXJuPzogKHN0cjogc3RyaW5nKSA9PiBzdHJpbmcpOiBTZWxlY3QyRGF0YSB7XHJcbiAgICAgICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBTZWxlY3QyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuc29tZShncm91cCA9PiBTZWxlY3QyVXRpbHMuY29udGFpblNlYXJjaFRleHQoZ3JvdXAubGFiZWwsIHNlYXJjaFRleHQsIGVkaXRQYXR0ZXJuKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gb3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCA9PiBTZWxlY3QyVXRpbHMuY29udGFpblNlYXJjaFRleHQoZ3JvdXAubGFiZWwsIHNlYXJjaFRleHQsIGVkaXRQYXR0ZXJuKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZ3JvdXBPck9wdGlvbi5sYWJlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGZpbHRlcmVkT3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFNlbGVjdDJVdGlscy5jb250YWluU2VhcmNoVGV4dChncm91cE9yT3B0aW9uLmxhYmVsLCBzZWFyY2hUZXh0LCBlZGl0UGF0dGVybikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChncm91cE9yT3B0aW9uKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0RmlsdGVyZWRTZWxlY3RlZERhdGEoZGF0YTogU2VsZWN0MkRhdGEsIHNlbGVjdGVkT3B0aW9uczogU2VsZWN0Mk9wdGlvbiB8IFNlbGVjdDJPcHRpb25bXSB8IG51bGwpOiBTZWxlY3QyRGF0YSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBTZWxlY3QyRGF0YSA9IFtdO1xyXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZE9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICBncm91cCA9PiBTZWxlY3QyVXRpbHMuaXNTZWxlY3RlZChzZWxlY3RlZE9wdGlvbnMsIGdyb3VwLCB0cnVlKSA9PT0gJ2ZhbHNlJ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZ3JvdXBPck9wdGlvbi5sYWJlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogZmlsdGVyZWRPcHRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoU2VsZWN0MlV0aWxzLmlzU2VsZWN0ZWQoc2VsZWN0ZWRPcHRpb25zLCBncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb24sIHRydWUpID09PSAnZmFsc2UnKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChncm91cE9yT3B0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1NlYXJjaGJveEhpZGRleChkYXRhOiBTZWxlY3QyRGF0YSwgbWluQ291bnRGb3JTZWFyY2g/OiBudW1iZXIgfCBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAobWluQ291bnRGb3JTZWFyY2ggPT09ICcnIHx8IG1pbkNvdW50Rm9yU2VhcmNoID09PSB1bmRlZmluZWQgfHwgbWluQ291bnRGb3JTZWFyY2ggPT09IG51bGwgfHwgaXNOYU4oK21pbkNvdW50Rm9yU2VhcmNoKSkge1xyXG4gICAgICAgICAgICBtaW5Db3VudEZvclNlYXJjaCA9IGRlZmF1bHRNaW5Db3VudEZvclNlYXJjaDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uQ291bnQgPSBTZWxlY3QyVXRpbHMuZ2V0T3B0aW9uc0NvdW50KGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBvcHRpb25Db3VudCA8ICttaW5Db3VudEZvclNlYXJjaDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNTZWxlY3RlZChcclxuICAgICAgICBvcHRpb25zOiBTZWxlY3QyT3B0aW9uIHwgU2VsZWN0Mk9wdGlvbltdIHwgbnVsbCxcclxuICAgICAgICBvcHRpb246IFNlbGVjdDJPcHRpb24sXHJcbiAgICAgICAgbXVsdGlwbGU6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgICByZXR1cm4gbXVsdGlwbGVcclxuICAgICAgICAgICAgPyBvcHRpb25zICYmIChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb25bXSlcclxuICAgICAgICAgICAgICAgIC5zb21lKG9wID0+IG9wLnZhbHVlID09PSBvcHRpb24udmFsdWUpID8gJ3RydWUnIDogJ2ZhbHNlJ1xyXG4gICAgICAgICAgICA6IG9wdGlvbnMgJiYgb3B0aW9uLnZhbHVlID09PSAob3B0aW9ucyBhcyBTZWxlY3QyT3B0aW9uKS52YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZSc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJlbW92ZVNlbGVjdGlvbihvcHRpb25zOiBTZWxlY3QyT3B0aW9uIHwgU2VsZWN0Mk9wdGlvbltdIHwgbnVsbCwgb3B0aW9uOiBTZWxlY3QyT3B0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAob3B0aW9ucyBhcyBTZWxlY3QyT3B0aW9uW10pLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICgob3B0aW9ucyBhcyBTZWxlY3QyT3B0aW9uW10pW2ldLnZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb25bXSkuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Mi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXNlbGVjdDItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL3NlbGVjdDItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsa0NBV0M7Ozs7OztJQVRHLDZCQUFjOzs7OztJQUVkLCtCQUF5Qjs7Ozs7SUFFekIsK0JBQWlCOzs7OztJQUVqQixrQ0FBb0I7Ozs7O0lBRXBCLDRCQUFXOzs7OztBQUdmLG1DQWlCQzs7Ozs7O0lBZkcsOEJBQW9COzs7OztJQUVwQiw4QkFBYzs7Ozs7SUFFZCxpQ0FBbUI7Ozs7O0lBRW5CLDJCQUFZOzs7OztJQUVaLGdDQUFpQjs7Ozs7SUFFakIsbUNBQW9COzs7OztJQUVwQiw2QkFBVzs7Ozs7SUFFWCw2QkFBZTs7Ozs7O0FBU25CLHdDQUlDOzs7SUFIRyx1Q0FBbUI7O0lBQ25CLG1DQUFTOztJQUNULHFDQUF5Qjs7Ozs7O0FBRzdCLHdDQUlDOzs7SUFIRyx1Q0FBbUI7O0lBQ25CLG1DQUFTOztJQUNULG9DQUFlOzs7QUFHbkIsTUFBTSxLQUFPLE9BQU8sR0FBRyxHQUFHOztBQUUxQixNQUFNLEtBQU8sZUFBZSxHQUErQjtJQUN2RCxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLHdDQUF3QyxFQUFFO0lBQ3ZELEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0lBQ3pCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFO0lBQ3hCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxD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QUFELENBQUMsQUE1UUQsSUE0UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3QyIH0gZnJvbSAnLi9zZWxlY3QyLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdDJHcm91cCB7XHJcbiAgICAvKiogbGFiZWwgb2YgZ3JvdXAgKi9cclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICAvKiogb3B0aW9ucyBsaXN0ICovXHJcbiAgICBvcHRpb25zOiBTZWxlY3QyT3B0aW9uW107XHJcbiAgICAvKiogYWRkIGNsYXNzZXMgICovXHJcbiAgICBjbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgLyoqIHRlbXBsYXRlIGlkICAqL1xyXG4gICAgdGVtcGxhdGVJZD86IHN0cmluZztcclxuICAgIC8qKiB0ZW1wbGF0ZSBkYXRhICAqL1xyXG4gICAgZGF0YT86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3QyT3B0aW9uIHtcclxuICAgIC8qKiB2YWx1ZSAgKi9cclxuICAgIHZhbHVlOiBTZWxlY3QyVmFsdWU7XHJcbiAgICAvKiogbGFiZWwgb2Ygb3B0aW9uICovXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgLyoqIG5vIHNlbGVjdGFibGUgaXMgZGlzYWJsZWQgKi9cclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIC8qKiBmb3IgaWRlbnRpZmljYXRpb24gKi9cclxuICAgIGlkPzogc3RyaW5nO1xyXG4gICAgLyoqIGFkZCBjbGFzc2VzICAqL1xyXG4gICAgY2xhc3Nlcz86IHN0cmluZztcclxuICAgIC8qKiB0ZW1wbGF0ZSBpZCAgKi9cclxuICAgIHRlbXBsYXRlSWQ/OiBzdHJpbmc7XHJcbiAgICAvKiogdGVtcGxhdGUgZGF0YSAgKi9cclxuICAgIGRhdGE/OiBhbnk7XHJcbiAgICAvKiogaGlkZSB0aGlzIG9wdGlvbiAqL1xyXG4gICAgaGlkZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdDJWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XHJcblxyXG5leHBvcnQgdHlwZSBTZWxlY3QyVXBkYXRlVmFsdWUgPSBTZWxlY3QyVmFsdWUgfCBTZWxlY3QyVmFsdWVbXTtcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdDJEYXRhID0gKFNlbGVjdDJHcm91cCB8IFNlbGVjdDJPcHRpb24pW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdDJVcGRhdGVFdmVudDxVIGV4dGVuZHMgU2VsZWN0MlVwZGF0ZVZhbHVlID0gU2VsZWN0MlZhbHVlPiB7XHJcbiAgICBjb21wb25lbnQ6IFNlbGVjdDI7XHJcbiAgICB2YWx1ZTogVTtcclxuICAgIG9wdGlvbnM6IFNlbGVjdDJPcHRpb25bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3QyU2VhcmNoRXZlbnQ8VSBleHRlbmRzIFNlbGVjdDJVcGRhdGVWYWx1ZSA9IFNlbGVjdDJWYWx1ZT4ge1xyXG4gICAgY29tcG9uZW50OiBTZWxlY3QyO1xyXG4gICAgdmFsdWU6IFU7XHJcbiAgICBzZWFyY2g6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHRpbWVvdXQgPSAyMDA7XHJcblxyXG5leHBvcnQgY29uc3QgdW5pY29kZVBhdHRlcm5zOiB7IGw6IHN0cmluZywgczogUmVnRXhwIH1bXSA9IFtcclxuICAgIHsgbDogJ2EnLCBzOiAvW+KTkO+9geG6msOgw6HDouG6p+G6peG6q+G6qcOjxIHEg+G6seG6r+G6teG6s8inx6HDpMef4bqjw6XHu8eOyIHIg+G6oeG6reG6t+G4gcSF4rGlyZBdL2dpIH0sXHJcbiAgICB7IGw6ICdhYScsIHM6IC/qnLMvZ2kgfSxcclxuICAgIHsgbDogJ2FlJywgczogL1vDpse9x6NdL2dpIH0sXHJcbiAgICB7IGw6ICdhbycsIHM6IC/qnLUvZ2kgfSxcclxuICAgIHsgbDogJ2F1JywgczogL+qcty9naSB9LFxyXG4gICAgeyBsOiAnYXYnLCBzOiAvW+qcueqcu10vZ2kgfSxcclxuICAgIHsgbDogJ2F5JywgczogL+qcvS9naSB9LFxyXG4gICAgeyBsOiAnYicsIHM6IC9b4pOR772C4biD4biF4biHxoDGg8mTXS9naSB9LFxyXG4gICAgeyBsOiAnYycsIHM6IC9b4pOS772DxIfEicSLxI3Dp+G4icaIyLzqnL/ihoRdL2dpIH0sXHJcbiAgICB7IGw6ICdkJywgczogL1vik5PvvYThuIvEj+G4jeG4keG4k+G4j8SRxozJlsmX6p26XS9naSB9LFxyXG4gICAgeyBsOiAnZHonLCBzOiAvW8ezx4ZdL2dpIH0sXHJcbiAgICB7IGw6ICdlJywgczogL1vik5TvvYXDqMOpw6rhu4Hhur/hu4Xhu4Phur3Ek+G4leG4l8SVxJfDq+G6u8SbyIXIh+G6ueG7h8ip4bidxJnhuJnhuJvJh8mbx51dL2dpIH0sXHJcbiAgICB7IGw6ICdmJywgczogL1vik5XvvYbhuJ/GkuqdvF0vZ2kgfSxcclxuICAgIHsgbDogJ2cnLCBzOiAvW+KTlu+9h8e1xJ3huKHEn8Shx6fEo8elyaDqnqHhtbnqnb9dL2dpIH0sXHJcbiAgICB7IGw6ICdoJywgczogL1vik5fvvYjEpeG4o+G4p8if4bil4bip4bir4bqWxKfisajisbbJpV0vZ2kgfSxcclxuICAgIHsgbDogJ2h2JywgczogL8aVL2dpIH0sXHJcbiAgICB7IGw6ICdpJywgczogL1vik5jvvYnDrMOtw67EqcSrxK3EsMOv4biv4buJx5DIiciL4buLxK/huK3JqMSxXS9naSB9LFxyXG4gICAgeyBsOiAnaicsIHM6IC9b4pOZ772KxLXHsMmJXS9naSB9LFxyXG4gICAgeyBsOiAnaycsIHM6IC9b4pOa772L4bixx6nhuLPEt+G4tcaZ4rGq6p2B6p2D6p2F6p6jXS9naSB9LFxyXG4gICAgeyBsOiAnbCcsIHM6IC9b4pOb772MxYDEusS+4bi34bi5xLzhuL3huLvFv8WCxprJq+Kxoeqdieqegeqdh+qdhl0vZ2kgfSxcclxuICAgIHsgbDogJ2xqJywgczogL8eJL2dpIH0sXHJcbiAgICB7IGw6ICdtJywgczogL1vik5zvvY3huL/huYHhuYPJscmvXS9naSB9LFxyXG4gICAgeyBsOiAnbicsIHM6IC9b4pOd772Ox7nFhMOx4bmFxYjhuYfFhuG5i+G5icaeybLFieqekeqepV0vZ2kgfSxcclxuICAgIHsgbDogJ25qJywgczogL8eML2dpIH0sXHJcbiAgICB7IGw6ICdvJywgczogL1vik57vvY/DssOzw7Thu5Phu5Hhu5fhu5XDteG5jcit4bmPxY3huZHhuZPFj8ivyLHDtsir4buPxZHHksiNyI/GoeG7neG7m+G7oeG7n+G7o+G7jeG7mcerx63DuMe/yZTGn+qdi+qdjcm1XS9naSB9LFxyXG4gICAgeyBsOiAnb2knLCBzOiAvxqMvZ2kgfSxcclxuICAgIHsgbDogJ29lJywgczogL8WTL2dpIH0sXHJcbiAgICB7IGw6ICdvbycsIHM6IC/qnY8vZ2kgfSxcclxuICAgIHsgbDogJ291JywgczogL8ijL2dpIH0sXHJcbiAgICB7IGw6ICdwJywgczogL1vik5/vvZDhuZXhuZfGpeG1veqdkeqdk+qdlV0vZ2kgfSxcclxuICAgIHsgbDogJ3EnLCBzOiAvW+KToO+9kcmL6p2X6p2ZXS9naSB9LFxyXG4gICAgeyBsOiAncicsIHM6IC9b4pOh772SxZXhuZnFmciRyJPhuZvhuZ3Fl+G5n8mNyb3qnZvqnqfqnoNdL2dpIH0sXHJcbiAgICB7IGw6ICdzJywgczogL1vik6LvvZPDn+G6nsWb4bmlxZ3huaHFoeG5p+G5o+G5qciZxZ/Iv+qeqeqeheG6m10vZ2kgfSxcclxuICAgIHsgbDogJ3QnLCBzOiAvW+KTo++9lOG5q+G6l8Wl4bmtyJvFo+G5seG5r8Wnxq3KiOKxpuqeh10vZ2kgfSxcclxuICAgIHsgbDogJ3R6JywgczogL+qcqS9naSB9LFxyXG4gICAgeyBsOiAndScsIHM6IC9b4pOk772Vw7nDusO7xanhubnFq+G5u8Wtw7zHnMeYx5bHmuG7p8WvxbHHlMiVyJfGsOG7q+G7qeG7r+G7reG7seG7peG5s8Wz4bm34bm1yoldL2dpIH0sXHJcbiAgICB7IGw6ICd2JywgczogL1vik6XvvZbhub3hub/Ki+qdn8qMXS9naSB9LFxyXG4gICAgeyBsOiAndnknLCBzOiAv6p2hL2dpIH0sXHJcbiAgICB7IGw6ICd3JywgczogL1vik6bvvZfhuoHhuoPFteG6h+G6heG6mOG6ieKxs10vZ2kgfSxcclxuICAgIHsgbDogJ3gnLCBzOiAvW+KTp++9mOG6i+G6jV0vZ2kgfSxcclxuICAgIHsgbDogJ3knLCBzOiAvW+KTqO+9meG7s8O9xbfhu7nIs+G6j8O/4bu34bqZ4bu1xrTJj+G7v10vZ2kgfSxcclxuICAgIHsgbDogJ3onLCBzOiAvW+KTqe+9msW64bqRxbzFvuG6k+G6lca2yKXJgOKxrOqdo10vZ2kgfVxyXG5dO1xyXG5cclxuY29uc3QgZGVmYXVsdE1pbkNvdW50Rm9yU2VhcmNoID0gNjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3QyVXRpbHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXRPcHRpb25CeVZhbHVlKGRhdGE6IFNlbGVjdDJEYXRhLCB2YWx1ZTogU2VsZWN0MlZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb24udmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbikudmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRPcHRpb25zQnlWYWx1ZShcclxuICAgICAgICBkYXRhOiBTZWxlY3QyRGF0YSxcclxuICAgICAgICB2YWx1ZTogU2VsZWN0MlVwZGF0ZVZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgICAgICBtdWx0aXBsZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcclxuICAgICkge1xyXG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZXM6IFNlbGVjdDJWYWx1ZVtdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IFNlbGVjdDJPcHRpb25bXSA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFsdWVzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBTZWxlY3QyVXRpbHMuZ2V0T3B0aW9uQnlWYWx1ZShkYXRhLCB2KTtcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChvcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTZWxlY3QyVXRpbHMuZ2V0T3B0aW9uQnlWYWx1ZShkYXRhLCB2YWx1ZSBhcyBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0Rmlyc3RBdmFpbGFibGVPcHRpb24oZGF0YTogU2VsZWN0MkRhdGEpIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwT3JPcHRpb24gb2YgZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyT3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGdldE9wdGlvbnNDb3VudChkYXRhOiBTZWxlY3QyRGF0YSkge1xyXG4gICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IG9wdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdmFsdWVJc05vdEluRmlsdGVyZWREYXRhKGZpbHRlcmVkRGF0YTogU2VsZWN0MkRhdGEsIHZhbHVlOiBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKFNlbGVjdDJVdGlscy5pc051bGxPclVuZGVmaW5lZCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBmaWx0ZXJlZERhdGEpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uLnZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb24pLnZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29nbml0aXZlLWNvbXBsZXhpdHlcclxuICAgIHN0YXRpYyBnZXRQcmV2aW91c09wdGlvbihmaWx0ZXJlZERhdGE6IFNlbGVjdDJEYXRhLCBob3ZlcmluZ1ZhbHVlOiBTZWxlY3QyVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgbGV0IGZpbmRJdCA9IFNlbGVjdDJVdGlscy5pc051bGxPclVuZGVmaW5lZChob3ZlcmluZ1ZhbHVlKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gZmlsdGVyZWREYXRhLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwT3JPcHRpb24gPSBmaWx0ZXJlZERhdGFbaV07XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoZ3JvdXBPck9wdGlvbiBhcyBTZWxlY3QyR3JvdXApLm9wdGlvbnM7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gb3B0aW9ucy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnNbal07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCAmJiAhb3B0aW9uLmhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbjtcclxuICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCAmJiAhb3B0aW9uLmhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpbmRJdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbmRJdCA9IG9wdGlvbi52YWx1ZSA9PT0gaG92ZXJpbmdWYWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb2duaXRpdmUtY29tcGxleGl0eVxyXG4gICAgc3RhdGljIGdldE5leHRPcHRpb24oZmlsdGVyZWREYXRhOiBTZWxlY3QyRGF0YSwgaG92ZXJpbmdWYWx1ZTogU2VsZWN0MlZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBmaW5kSXQgPSBTZWxlY3QyVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQoaG92ZXJpbmdWYWx1ZSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGZpbHRlcmVkRGF0YSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5kSXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQgJiYgIW9wdGlvbi5oaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRJdCA9IG9wdGlvbi52YWx1ZSA9PT0gaG92ZXJpbmdWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJPcHRpb247XHJcbiAgICAgICAgICAgICAgICBpZiAoZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQgJiYgIW9wdGlvbi5oaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZmluZEl0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluZEl0ID0gb3B0aW9uLnZhbHVlID09PSBob3ZlcmluZ1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjb250YWluU2VhcmNoVGV4dChcclxuICAgICAgICBsYWJlbDogc3RyaW5nLFxyXG4gICAgICAgIHNlYXJjaFRleHQ6IHN0cmluZyB8IG51bGwsXHJcbiAgICAgICAgZWRpdFBhdHRlcm46ICgoc3RyOiBzdHJpbmcpID0+IHN0cmluZykgfCB1bmRlZmluZWRcclxuICAgICk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzZWFyY2hUZXh0XHJcbiAgICAgICAgICAgID8gU2VsZWN0MlV0aWxzXHJcbiAgICAgICAgICAgICAgICAuZm9ybWF0U2Fuc1VuaWNvZGUobGFiZWwpXHJcbiAgICAgICAgICAgICAgICAubWF0Y2gobmV3IFJlZ0V4cChTZWxlY3QyVXRpbHMuZm9ybWF0UGF0dGVybihzZWFyY2hUZXh0LCBlZGl0UGF0dGVybiksICdpJykpICE9PSBudWxsXHJcbiAgICAgICAgICAgIDogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBwcm90ZWN0UGF0dGVybihzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJ1tcXFxcLVxcXFxbXFxcXF1cXFxcL1xcXFx7XFxcXH1cXFxcKFxcXFwpXFxcXCpcXFxcK1xcXFw/XFxcXC5cXFxcXFxcXFxcXFxeXFxcXCRcXFxcfF0nLCAnZycpLCAnXFxcXCQmJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9ybWF0U2Fuc1VuaWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGZvciAoY29uc3QgdW5pY29kZVBhdHRlcm4gb2YgdW5pY29kZVBhdHRlcm5zKSB7XHJcbiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKHVuaWNvZGVQYXR0ZXJuLnMsIHVuaWNvZGVQYXR0ZXJuLmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGZvcm1hdFBhdHRlcm4oc3RyOiBzdHJpbmcsIGVkaXRQYXR0ZXJuOiAoKHN0cjogc3RyaW5nKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgICAgICBzdHIgPSBTZWxlY3QyVXRpbHMuZm9ybWF0U2Fuc1VuaWNvZGUoU2VsZWN0MlV0aWxzLnByb3RlY3RQYXR0ZXJuKHN0cikpO1xyXG5cclxuICAgICAgICBpZiAoZWRpdFBhdHRlcm4gJiYgdHlwZW9mIGVkaXRQYXR0ZXJuID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHN0ciA9IGVkaXRQYXR0ZXJuKHN0cik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEZpbHRlcmVkRGF0YShkYXRhOiBTZWxlY3QyRGF0YSwgc2VhcmNoVGV4dDogc3RyaW5nIHwgbnVsbCwgZWRpdFBhdHRlcm4/OiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZyk6IFNlbGVjdDJEYXRhIHtcclxuICAgICAgICBpZiAoc2VhcmNoVGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IFNlbGVjdDJEYXRhID0gW107XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXBPck9wdGlvbiBvZiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gKGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mkdyb3VwKS5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5zb21lKGdyb3VwID0+IFNlbGVjdDJVdGlscy5jb250YWluU2VhcmNoVGV4dChncm91cC5sYWJlbCwgc2VhcmNoVGV4dCwgZWRpdFBhdHRlcm4pKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZE9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0+IFNlbGVjdDJVdGlscy5jb250YWluU2VhcmNoVGV4dChncm91cC5sYWJlbCwgc2VhcmNoVGV4dCwgZWRpdFBhdHRlcm4pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBncm91cE9yT3B0aW9uLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogZmlsdGVyZWRPcHRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoU2VsZWN0MlV0aWxzLmNvbnRhaW5TZWFyY2hUZXh0KGdyb3VwT3JPcHRpb24ubGFiZWwsIHNlYXJjaFRleHQsIGVkaXRQYXR0ZXJuKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGdyb3VwT3JPcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGaWx0ZXJlZFNlbGVjdGVkRGF0YShkYXRhOiBTZWxlY3QyRGF0YSwgc2VsZWN0ZWRPcHRpb25zOiBTZWxlY3QyT3B0aW9uIHwgU2VsZWN0Mk9wdGlvbltdIHwgbnVsbCk6IFNlbGVjdDJEYXRhIHtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IFNlbGVjdDJEYXRhID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBncm91cE9yT3B0aW9uIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IChncm91cE9yT3B0aW9uIGFzIFNlbGVjdDJHcm91cCkub3B0aW9ucztcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwID0+IFNlbGVjdDJVdGlscy5pc1NlbGVjdGVkKHNlbGVjdGVkT3B0aW9ucywgZ3JvdXAsIHRydWUpID09PSAnZmFsc2UnXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBncm91cE9yT3B0aW9uLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChTZWxlY3QyVXRpbHMuaXNTZWxlY3RlZChzZWxlY3RlZE9wdGlvbnMsIGdyb3VwT3JPcHRpb24gYXMgU2VsZWN0Mk9wdGlvbiwgdHJ1ZSkgPT09ICdmYWxzZScpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGdyb3VwT3JPcHRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzU2VhcmNoYm94SGlkZGV4KGRhdGE6IFNlbGVjdDJEYXRhLCBtaW5Db3VudEZvclNlYXJjaD86IG51bWJlciB8IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChtaW5Db3VudEZvclNlYXJjaCA9PT0gJycgfHwgbWluQ291bnRGb3JTZWFyY2ggPT09IHVuZGVmaW5lZCB8fCBtaW5Db3VudEZvclNlYXJjaCA9PT0gbnVsbCB8fCBpc05hTigrbWluQ291bnRGb3JTZWFyY2gpKSB7XHJcbiAgICAgICAgICAgIG1pbkNvdW50Rm9yU2VhcmNoID0gZGVmYXVsdE1pbkNvdW50Rm9yU2VhcmNoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRpb25Db3VudCA9IFNlbGVjdDJVdGlscy5nZXRPcHRpb25zQ291bnQoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbkNvdW50IDwgK21pbkNvdW50Rm9yU2VhcmNoO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1NlbGVjdGVkKFxyXG4gICAgICAgIG9wdGlvbnM6IFNlbGVjdDJPcHRpb24gfCBTZWxlY3QyT3B0aW9uW10gfCBudWxsLFxyXG4gICAgICAgIG9wdGlvbjogU2VsZWN0Mk9wdGlvbixcclxuICAgICAgICBtdWx0aXBsZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcclxuICAgICkge1xyXG4gICAgICAgIHJldHVybiBtdWx0aXBsZVxyXG4gICAgICAgICAgICA/IG9wdGlvbnMgJiYgKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbltdKVxyXG4gICAgICAgICAgICAgICAgLnNvbWUob3AgPT4gb3AudmFsdWUgPT09IG9wdGlvbi52YWx1ZSkgPyAndHJ1ZScgOiAnZmFsc2UnXHJcbiAgICAgICAgICAgIDogb3B0aW9ucyAmJiBvcHRpb24udmFsdWUgPT09IChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb24pLnZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJztcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmVtb3ZlU2VsZWN0aW9uKG9wdGlvbnM6IFNlbGVjdDJPcHRpb24gfCBTZWxlY3QyT3B0aW9uW10gfCBudWxsLCBvcHRpb246IFNlbGVjdDJPcHRpb24pIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb25bXSkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKChvcHRpb25zIGFzIFNlbGVjdDJPcHRpb25bXSlbaV0udmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgKG9wdGlvbnMgYXMgU2VsZWN0Mk9wdGlvbltdKS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
{
"name": "ng-select2-component",
"version": "7.2.1",
"version": "7.2.2",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": ">=7.0.0",

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