@ng-matero/extensions 12.7.0 → 12.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"mtxSelect.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/extensions/select/templates.directive.ts","../../../projects/extensions/select/option.component.ts","../../../projects/extensions/select/select.component.ts","../../../projects/extensions/select/select.module.ts","../../../projects/extensions/select/mtxSelect.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class MtxSelectOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class MtxSelectOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class MtxSelectLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class MtxSelectMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class MtxSelectHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class MtxSelectFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class MtxSelectNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class MtxSelectTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class MtxSelectLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class MtxSelectTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class MtxSelectLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'mtx-option',\n exportAs: 'mtxOption',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`,\n})\nexport class MtxOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n @Input() value: any;\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = this._isDisabled(value);\n }\n\n readonly stateChange$ = new Subject<{ value: any; disabled: boolean; label?: string }>();\n\n private _disabled = false;\n private _previousLabel!: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML,\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value: null) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n DoCheck,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n ElementRef,\n ChangeDetectorRef,\n Optional,\n Self,\n Output,\n EventEmitter,\n TemplateRef,\n ContentChild,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Subject, merge } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\nimport {\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = (term: string) => any | Promise<any>;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (\n key: string | Record<string, any>,\n children: any[]\n) => string | Record<string, any>;\nexport type SearchFn = (term: string, item: any) => boolean;\nexport type TrackByFn = (item: any) => any;\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'mtx-select',\n exportAs: 'mtxSelect',\n host: {\n '[attr.id]': 'id',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[class.mtx-select-floating]': 'shouldLabelFloat',\n '[class.mtx-select-invalid]': 'errorState',\n 'class': 'mtx-select',\n },\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxSelectComponent }],\n})\nexport class MtxSelectComponent\n implements\n OnInit,\n OnDestroy,\n DoCheck,\n AfterViewInit,\n ControlValueAccessor,\n MatFormFieldControl<any>\n{\n @ViewChild('ngSelect', { static: true }) ngSelect!: NgSelectComponent;\n\n // MtxSelect custom templates\n @ContentChild(MtxSelectOptionTemplateDirective, { read: TemplateRef })\n optionTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectOptgroupTemplateDirective, { read: TemplateRef })\n optgroupTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLabelTemplateDirective, { read: TemplateRef })\n labelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectMultiLabelTemplateDirective, { read: TemplateRef })\n multiLabelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectHeaderTemplateDirective, { read: TemplateRef })\n headerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectFooterTemplateDirective, { read: TemplateRef })\n footerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectNotFoundTemplateDirective, { read: TemplateRef })\n notFoundTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTypeToSearchTemplateDirective, { read: TemplateRef })\n typeToSearchTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingTextTemplateDirective, { read: TemplateRef })\n loadingTextTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTagTemplateDirective, { read: TemplateRef })\n tagTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingSpinnerTemplateDirective, { read: TemplateRef })\n loadingSpinnerTemplate!: TemplateRef<any>;\n\n @ContentChildren(MtxOptionComponent, { descendants: true })\n mtxOptions!: QueryList<MtxOptionComponent>;\n\n /** MtxSelect options */\n @Input() addTag: boolean | AddTagFn = false;\n @Input() addTagText = 'Add item';\n @Input() appearance = 'underline';\n @Input() appendTo!: string;\n @Input() bindLabel!: string;\n @Input() bindValue!: string;\n @Input() closeOnSelect = true;\n @Input() clearAllText = 'Clear all';\n @Input() clearable = true;\n @Input() clearOnBackspace = true;\n @Input() compareWith!: CompareWithFn;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() groupBy!: string | (() => void);\n @Input() groupValue!: GroupValueFn;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() hideSelected = false;\n @Input() isOpen!: boolean;\n @Input() loading = false;\n @Input() loadingText = 'Loading...';\n @Input() labelForId: string | null = null;\n @Input() markFirst = true;\n @Input() maxSelectedItems!: number;\n @Input() multiple = false;\n @Input() notFoundText = 'No items found';\n @Input() searchable = true;\n @Input() readonly = false;\n @Input() searchFn: SearchFn | null = null;\n @Input() searchWhileComposing = true;\n @Input() selectOnTab = false;\n @Input() trackByFn: TrackByFn | null = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex!: number;\n @Input() openOnEnter!: boolean;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n @Input() virtualScroll = false;\n @Input() typeToSearchText = 'Type to search';\n @Input() typeahead!: Subject<string>;\n\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string; items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n @Input()\n get clearSearchOnAdd() {\n return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect;\n }\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n }\n private _clearSearchOnAdd!: boolean;\n\n @Input()\n get items() {\n return this._items;\n }\n set items(value: any[]) {\n this._itemsAreUsed = true;\n this._items = value;\n }\n private _items: any[] = [];\n private _itemsAreUsed!: boolean;\n private readonly _destroy$ = new Subject<void>();\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value = null;\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /** Unique id for this input. */\n private _uid = `mtx-select-${nextUniqueId++}`;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n /** Whether the input is focused. */\n get focused(): boolean {\n return this._focused;\n }\n private _focused = false;\n\n get empty(): boolean {\n return this.value == null || (Array.isArray(this.value) && this.value.length === 0);\n }\n\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.readonly = this._disabled;\n this.stateChanges.next();\n }\n private _disabled = false;\n\n errorState = false;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-select';\n\n /** The aria-describedby attribute on the select for improved a11y. */\n _ariaDescribedby!: string;\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n _onTouched = () => {};\n\n constructor(\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n // Fix compareWith warning of undefined value\n // https://github.com/ng-select/ng-select/issues/1537\n if (this.compareWith) {\n this.ngSelect.compareWith = this.compareWith;\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this._setItemsFromMtxOptions();\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) as boolean;\n this.stateChanges.next();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n if (/mat-form-field|mtx-select/g.test(target.parentElement?.classList[0] || '')) {\n this.focus();\n this.open();\n }\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /** NgSelect: _setItemsFromNgOptions */\n\n private _setItemsFromMtxOptions() {\n const mapMtxOptions = (options: QueryList<MtxOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled,\n }));\n this.ngSelect.itemsList.setItems(this.items);\n if (this.ngSelect.hasValue) {\n this.ngSelect.itemsList.mapSelectedItems();\n }\n this.ngSelect.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.mtxOptions.changes, this._destroy$);\n merge(...this.mtxOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.ngSelect.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this.ngSelect.detectChanges();\n });\n };\n\n this.mtxOptions.changes\n .pipe(startWith(this.mtxOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n mapMtxOptions(options);\n handleOptionChange();\n });\n }\n\n open() {\n this.ngSelect.open();\n }\n\n close() {\n this.ngSelect.close();\n }\n\n focus() {\n this.ngSelect.focus();\n }\n\n blur() {\n this.ngSelect.blur();\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { MtxSelectComponent } from './select.component';\nimport {\n MtxSelectFooterTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, NgSelectModule],\n exports: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n declarations: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n})\nexport class MtxSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Directive","TemplateRef","Subject","Component","ChangeDetectionStrategy","ElementRef","Input","EventEmitter","coerceBooleanProperty","merge","takeUntil","startWith","ViewEncapsulation","MatFormFieldControl","FocusMonitor","ChangeDetectorRef","NgControl","Optional","Self","ViewChild","ContentChild","ContentChildren","Output","NgModule","CommonModule","FormsModule","ReactiveFormsModule","NgSelectModule"],"mappings":"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"}
1
+ {"version":3,"file":"mtxSelect.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/extensions/select/templates.directive.ts","../../../projects/extensions/select/option.component.ts","../../../projects/extensions/select/select.component.ts","../../../projects/extensions/select/select.module.ts","../../../projects/extensions/select/mtxSelect.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class MtxSelectOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class MtxSelectOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class MtxSelectLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class MtxSelectMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class MtxSelectHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class MtxSelectFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class MtxSelectNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class MtxSelectTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class MtxSelectLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class MtxSelectTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class MtxSelectLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'mtx-option',\n exportAs: 'mtxOption',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`,\n})\nexport class MtxOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n @Input() value: any;\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = this._isDisabled(value);\n }\n\n readonly stateChange$ = new Subject<{ value: any; disabled: boolean; label?: string }>();\n\n private _disabled = false;\n private _previousLabel!: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML,\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value: null) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n DoCheck,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n ElementRef,\n ChangeDetectorRef,\n Optional,\n Self,\n Output,\n EventEmitter,\n TemplateRef,\n ContentChild,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Subject, merge } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\nimport {\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = (term: string) => any | Promise<any>;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (\n key: string | Record<string, any>,\n children: any[]\n) => string | Record<string, any>;\nexport type SearchFn = (term: string, item: any) => boolean;\nexport type TrackByFn = (item: any) => any;\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'mtx-select',\n exportAs: 'mtxSelect',\n host: {\n '[attr.id]': 'id',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[class.mtx-select-floating]': 'shouldLabelFloat',\n '[class.mtx-select-invalid]': 'errorState',\n 'class': 'mtx-select',\n },\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxSelectComponent }],\n})\nexport class MtxSelectComponent\n implements\n OnInit,\n OnDestroy,\n DoCheck,\n AfterViewInit,\n ControlValueAccessor,\n MatFormFieldControl<any>\n{\n @ViewChild('ngSelect', { static: true }) ngSelect!: NgSelectComponent;\n\n // MtxSelect custom templates\n @ContentChild(MtxSelectOptionTemplateDirective, { read: TemplateRef })\n optionTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectOptgroupTemplateDirective, { read: TemplateRef })\n optgroupTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLabelTemplateDirective, { read: TemplateRef })\n labelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectMultiLabelTemplateDirective, { read: TemplateRef })\n multiLabelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectHeaderTemplateDirective, { read: TemplateRef })\n headerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectFooterTemplateDirective, { read: TemplateRef })\n footerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectNotFoundTemplateDirective, { read: TemplateRef })\n notFoundTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTypeToSearchTemplateDirective, { read: TemplateRef })\n typeToSearchTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingTextTemplateDirective, { read: TemplateRef })\n loadingTextTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTagTemplateDirective, { read: TemplateRef })\n tagTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingSpinnerTemplateDirective, { read: TemplateRef })\n loadingSpinnerTemplate!: TemplateRef<any>;\n\n @ContentChildren(MtxOptionComponent, { descendants: true })\n mtxOptions!: QueryList<MtxOptionComponent>;\n\n /** MtxSelect options */\n @Input() addTag: boolean | AddTagFn = false;\n @Input() addTagText = 'Add item';\n @Input() appearance = 'underline';\n @Input() appendTo!: string;\n @Input() bindLabel!: string;\n @Input() bindValue!: string;\n @Input() closeOnSelect = true;\n @Input() clearAllText = 'Clear all';\n @Input() clearable = true;\n @Input() clearOnBackspace = true;\n @Input() compareWith!: CompareWithFn;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() groupBy!: string | (() => void);\n @Input() groupValue!: GroupValueFn;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() hideSelected = false;\n @Input() isOpen!: boolean;\n @Input() loading = false;\n @Input() loadingText = 'Loading...';\n @Input() labelForId: string | null = null;\n @Input() markFirst = true;\n @Input() maxSelectedItems!: number;\n @Input() multiple = false;\n @Input() notFoundText = 'No items found';\n @Input() searchable = true;\n @Input() readonly = false;\n @Input() searchFn: SearchFn | null = null;\n @Input() searchWhileComposing = true;\n @Input() selectOnTab = false;\n @Input() trackByFn: TrackByFn | null = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex!: number;\n @Input() openOnEnter!: boolean;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n @Input() virtualScroll = false;\n @Input() typeToSearchText = 'Type to search';\n @Input() typeahead!: Subject<string>;\n\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string; items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n @Input()\n get clearSearchOnAdd() {\n return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect;\n }\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n }\n private _clearSearchOnAdd!: boolean;\n\n @Input()\n get items() {\n return this._items;\n }\n set items(value: any[]) {\n this._itemsAreUsed = true;\n this._items = value;\n }\n private _items: any[] = [];\n private _itemsAreUsed!: boolean;\n private readonly _destroy$ = new Subject<void>();\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value = null;\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /** Unique id for this input. */\n private _uid = `mtx-select-${nextUniqueId++}`;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n /** Whether the input is focused. */\n get focused(): boolean {\n return this._focused;\n }\n private _focused = false;\n\n get empty(): boolean {\n return this.value == null || (Array.isArray(this.value) && this.value.length === 0);\n }\n\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.readonly = this._disabled;\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n }\n private _disabled = false;\n\n errorState = false;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-select';\n\n /** The aria-describedby attribute on the select for improved a11y. */\n _ariaDescribedby!: string;\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n _onTouched = () => {};\n\n constructor(\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n // Fix compareWith warning of undefined value\n // https://github.com/ng-select/ng-select/issues/1537\n if (this.compareWith) {\n this.ngSelect.compareWith = this.compareWith;\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this._setItemsFromMtxOptions();\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) as boolean;\n this.stateChanges.next();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n if (/mat-form-field|mtx-select/g.test(target.parentElement?.classList[0] || '')) {\n this.focus();\n this.open();\n }\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /** NgSelect: _setItemsFromNgOptions */\n private _setItemsFromMtxOptions() {\n const mapMtxOptions = (options: QueryList<MtxOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled,\n }));\n this.ngSelect.itemsList.setItems(this.items);\n if (this.ngSelect.hasValue) {\n this.ngSelect.itemsList.mapSelectedItems();\n }\n this.ngSelect.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.mtxOptions.changes, this._destroy$);\n merge(...this.mtxOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.ngSelect.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this.ngSelect.detectChanges();\n });\n };\n\n this.mtxOptions.changes\n .pipe(startWith(this.mtxOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n mapMtxOptions(options);\n handleOptionChange();\n });\n }\n\n open() {\n this.ngSelect.open();\n }\n\n close() {\n this.ngSelect.close();\n }\n\n focus() {\n this.ngSelect.focus();\n }\n\n blur() {\n this.ngSelect.blur();\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { MtxSelectComponent } from './select.component';\nimport {\n MtxSelectFooterTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, NgSelectModule],\n exports: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n declarations: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n})\nexport class MtxSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Directive","TemplateRef","Subject","Component","ChangeDetectionStrategy","ElementRef","Input","EventEmitter","coerceBooleanProperty","merge","takeUntil","startWith","ViewEncapsulation","MatFormFieldControl","FocusMonitor","ChangeDetectorRef","NgControl","Optional","Self","ViewChild","ContentChild","ContentChildren","Output","NgModule","CommonModule","FormsModule","ReactiveFormsModule","NgSelectModule"],"mappings":"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"}
@@ -212,10 +212,6 @@ export class MtxPopover {
212
212
  this._emitCloseEvent();
213
213
  }
214
214
  }
215
- /**
216
- * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.
217
- * https://github.com/angular/material2/pull/5493#issuecomment-313085323
218
- */
219
215
  /** Disables close of popover when leaving trigger element and mouse over the popover */
220
216
  onMouseOver() {
221
217
  if (this.triggerEvent === 'hover') {
@@ -225,12 +221,12 @@ export class MtxPopover {
225
221
  /** Enables close of popover when mouse leaving popover element */
226
222
  onMouseLeave() {
227
223
  if (this.triggerEvent === 'hover') {
228
- this.closeDisabled = false;
229
- this._emitCloseEvent();
224
+ setTimeout(() => {
225
+ this.closeDisabled = false;
226
+ this._emitCloseEvent();
227
+ }, this.leaveDelay);
230
228
  }
231
229
  }
232
- // TODO: Refactor how styles are set and updated on the component, use best practices.
233
- // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.
234
230
  /** Sets the current styles for the popover to allow for dynamically changing settings */
235
231
  setCurrentStyles(pos = this.position) {
236
232
  const left = pos[1] === 'after'
@@ -323,4 +319,4 @@ MtxPopover.propDecorators = {
323
319
  closed: [{ type: Output }],
324
320
  templateRef: [{ type: ViewChild, args: [TemplateRef,] }]
325
321
  };
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvcG9wb3Zlci9wb3BvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU9uRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLGlDQUFpQyxHQUNsQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBV3hELE1BQU0sT0FBTyxVQUFVO0lBd09yQixZQUNzQixJQUFvQixFQUNoQyxXQUF1QixFQUN4QixJQUFZO1FBRkMsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQTFPSyxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRTFDLHFFQUFxRTtRQUM3RCxjQUFTLEdBQXVCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGtCQUFhLEdBQTJCLE9BQU8sQ0FBQztRQUNoRCxvQkFBZSxHQUE2QixZQUFZLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFDbEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIs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QUFDLElBQUk7Z0JBQ3JDLFVBQVUsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QixRQUFRLEVBQUUsWUFBWTs7YUFDdkI7Ozs7Ozs7Ozs7WUF0QlEsY0FBYyx1QkFnUWxCLFFBQVE7WUF6UVgsVUFBVTtZQUdWLE1BQU07Ozs7bUJBOEJMLFdBQVcsU0FBQyxXQUFXO3VCQTBDdkIsS0FBSzsyQkFnQkwsS0FBSzs2QkFTTCxLQUFLO3lCQVNMLEtBQUs7eUJBU0wsS0FBSztzQkFTTCxLQUFLO3NCQVNMLEtBQUs7MkJBU0wsS0FBSzsyQkFTTCxLQUFLO3lCQVNMLEtBQUs7MEJBU0wsS0FBSztnQ0FTTCxLQUFLO21DQVNMLEtBQUs7K0JBU0wsS0FBSzsrQkFTTCxLQUFLOzBDQVNMLEtBQUs7eUJBY0wsS0FBSyxTQUFDLE9BQU87d0JBb0JiLEtBQUs7cUJBU0wsTUFBTTswQkFFTixTQUFTLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSG9zdEJpbmRpbmcsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVTQ0FQRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHtcbiAgTXR4UG9wb3ZlclRyaWdnZXJFdmVudCxcbiAgTXR4UG9wb3ZlclNjcm9sbFN0cmF0ZWd5LFxuICBNdHhQb3BvdmVyUG9zaXRpb24sXG59IGZyb20gJy4vcG9wb3Zlci10eXBlcyc7XG5pbXBvcnQge1xuICB0aHJvd010eFBvcG92ZXJJbnZhbGlkUG9zaXRpb25TdGFydCxcbiAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uRW5kLFxufSBmcm9tICcuL3BvcG92ZXItZXJyb3JzJztcbmltcG9ydCB7IE10eFBvcG92ZXJQYW5lbCB9IGZyb20gJy4vcG9wb3Zlci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IHRyYW5zZm9ybVBvcG92ZXIgfSBmcm9tICcuL3BvcG92ZXItYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210eC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXIuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgYW5pbWF0aW9uczogW3RyYW5zZm9ybVBvcG92ZXJdLFxuICBleHBvcnRBczogJ210eFBvcG92ZXInLFxufSlcbmV4cG9ydCBjbGFzcyBNdHhQb3BvdmVyIGltcGxlbWVudHMgTXR4UG9wb3ZlclBhbmVsLCBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnZGlhbG9nJztcblxuICAvKiogU2V0dGluZ3MgZm9yIHBvcG92ZXIsIHZpZXcgc2V0dGVycyBhbmQgZ2V0dGVycyBmb3IgbW9yZSBkZXRhaWwgKi9cbiAgcHJpdmF0ZSBfcG9zaXRpb246IE10eFBvcG92ZXJQb3NpdGlvbiA9IFsnYmVsb3cnLCAnYWZ0ZXInXTtcbiAgcHJpdmF0ZSBfdHJpZ2dlckV2ZW50OiBNdHhQb3BvdmVyVHJpZ2dlckV2ZW50ID0gJ2hvdmVyJztcbiAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3k6IE10eFBvcG92ZXJTY3JvbGxTdHJhdGVneSA9ICdyZXBvc2l0aW9uJztcbiAgcHJpdmF0ZSBfZW50ZXJEZWxheSA9IDEwMDtcbiAgcHJpdmF0ZSBfbGVhdmVEZWxheSA9IDEwMDtcbiAgcHJpdmF0ZSBfcGFuZWxPZmZzZXRYID0gMDtcbiAgcHJpdmF0ZSBfcGFuZWxPZmZzZXRZID0gMDtcbiAgcHJpdmF0ZSBfY2xvc2VPblBhbmVsQ2xpY2sgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSB0cnVlO1xuICBwcml2YXRlIF9kaXNhYmxlQW5pbWF0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcEVuYWJsZWQgPSB0cnVlO1xuICBwcml2YXRlIF9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQgPSB0cnVlO1xuICBwcml2YXRlIF9hcnJvd09mZnNldFggPSAyMDtcbiAgcHJpdmF0ZSBfYXJyb3dPZmZzZXRZID0gMjA7XG4gIHByaXZhdGUgX2Fycm93V2lkdGggPSAxNjtcbiAgcHJpdmF0ZSBfYXJyb3dIZWlnaHQgPSAxNjtcblxuICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIG5nQ2xhc3MgKi9cbiAgX2NsYXNzTGlzdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKiogV2hldGhlciBwb3BvdmVyJ3MgYHRhcmdldEVsZW1lbnRgIGlzIGRlZmluZWQgKi9cbiAgcHVibGljIGNvbnRhaW5lclBvc2l0aW9uaW5nID0gZmFsc2U7XG5cbiAgLyoqIENsb3NpbmcgZGlzYWJsZWQgb24gcG9wb3ZlciAqL1xuICBwdWJsaWMgY2xvc2VEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKiBDb25maWcgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBwb3BvdmVyJ3MgYXJyb3cgbmdTdHlsZSAqL1xuICBwdWJsaWMgcG9wb3ZlclBhbmVsU3R5bGVzITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBhcnJvdyBuZ1N0eWxlICovXG4gIHB1YmxpYyBwb3BvdmVyQXJyb3dTdHlsZXMhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgbmdTdHlsZSAqL1xuICBwdWJsaWMgcG9wb3ZlckNvbnRlbnRTdHlsZXMhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogRW1pdHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHN0YXRlIHdoZW5ldmVyIGl0IGNoYW5nZXMuICovXG4gIF9vbkFuaW1hdGlvblN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb25FdmVudD4oKTtcblxuICAvKiogUG9zaXRpb24gb2YgdGhlIHBvcG92ZXIuICovXG4gIEBJbnB1dCgpXG4gIGdldCBwb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cbiAgc2V0IHBvc2l0aW9uKHZhbHVlOiBNdHhQb3BvdmVyUG9zaXRpb24pIHtcbiAgICBpZiAoIVsnYmVmb3JlJywgJ2FmdGVyJywgJ2Fib3ZlJywgJ2JlbG93J10uaW5jbHVkZXModmFsdWVbMF0pKSB7XG4gICAgICB0aHJvd010eFBvcG92ZXJJbnZhbGlkUG9zaXRpb25TdGFydCgpO1xuICAgIH1cbiAgICBpZiAoIVsnYmVmb3JlJywgJ2FmdGVyJywgJ2Fib3ZlJywgJ2JlbG93JywgJ2NlbnRlciddLmluY2x1ZGVzKHZhbHVlWzFdKSkge1xuICAgICAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uRW5kKCk7XG4gICAgfVxuICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIHRyaWdnZXIgZXZlbnQgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRyaWdnZXJFdmVudCgpOiBNdHhQb3BvdmVyVHJpZ2dlckV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckV2ZW50O1xuICB9XG4gIHNldCB0cmlnZ2VyRXZlbnQodmFsdWU6IE10eFBvcG92ZXJUcmlnZ2VyRXZlbnQpIHtcbiAgICB0aGlzLl90cmlnZ2VyRXZlbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIHNjcm9sbCBzdHJhdGVneSAqL1xuICBASW5wdXQoKVxuICBnZXQgc2Nyb2xsU3RyYXRlZ3koKTogTXR4UG9wb3ZlclNjcm9sbFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsU3RyYXRlZ3k7XG4gIH1cbiAgc2V0IHNjcm9sbFN0cmF0ZWd5KHZhbHVlOiBNdHhQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kpIHtcbiAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgZW50ZXIgZGVsYXkgKi9cbiAgQElucHV0KClcbiAgZ2V0IGVudGVyRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZW50ZXJEZWxheTtcbiAgfVxuICBzZXQgZW50ZXJEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZW50ZXJEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgbGVhdmUgZGVsYXkgKi9cbiAgQElucHV0KClcbiAgZ2V0IGxlYXZlRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVhdmVEZWxheTtcbiAgfVxuICBzZXQgbGVhdmVEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGVhdmVEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgdGFyZ2V0IG9mZnNldCB4ICovXG4gIEBJbnB1dCgpXG4gIGdldCB4T2Zmc2V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsT2Zmc2V0WDtcbiAgfVxuICBzZXQgeE9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFuZWxPZmZzZXRYID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciB0YXJnZXQgb2Zmc2V0IHkgKi9cbiAgQElucHV0KClcbiAgZ2V0IHlPZmZzZXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxPZmZzZXRZO1xuICB9XG4gIHNldCB5T2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9wYW5lbE9mZnNldFkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGFycm93IG9mZnNldCB4ICovXG4gIEBJbnB1dCgpXG4gIGdldCBhcnJvd09mZnNldFgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJyb3dPZmZzZXRYO1xuICB9XG4gIHNldCBhcnJvd09mZnNldFgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Fycm93T2Zmc2V0WCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgYXJyb3cgb2Zmc2V0IHkgKi9cbiAgQElucHV0KClcbiAgZ2V0IGFycm93T2Zmc2V0WSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hcnJvd09mZnNldFk7XG4gIH1cbiAgc2V0IGFycm93T2Zmc2V0WSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYXJyb3dPZmZzZXRZID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBhcnJvdyB3aWR0aCAqL1xuICBASW5wdXQoKVxuICBnZXQgYXJyb3dXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hcnJvd1dpZHRoO1xuICB9XG4gIHNldCBhcnJvd1dpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hcnJvd1dpZHRoID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBhcnJvdyBoZWlnaHQgKi9cbiAgQElucHV0KClcbiAgZ2V0IGFycm93SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Fycm93SGVpZ2h0O1xuICB9XG4gIHNldCBhcnJvd0hlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYXJyb3dIZWlnaHQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGNsb3NlIG9uIGNvbnRhaW5lciBjbGljayAqL1xuICBASW5wdXQoKVxuICBnZXQgY2xvc2VPblBhbmVsQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT25QYW5lbENsaWNrO1xuICB9XG4gIHNldCBjbG9zZU9uUGFuZWxDbGljayh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NlT25QYW5lbENsaWNrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGNsb3NlIG9uIGJhY2tkcm9wIGNsaWNrICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbG9zZU9uQmFja2Ryb3BDbGljaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2s7XG4gIH1cbiAgc2V0IGNsb3NlT25CYWNrZHJvcENsaWNrKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqIERpc2FibGUgYW5pbWF0aW9ucyBvZiBwb3BvdmVyIGFuZCBhbGwgY2hpbGQgZWxlbWVudHMgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVBbmltYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVBbmltYXRpb247XG4gIH1cbiAgc2V0IGRpc2FibGVBbmltYXRpb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGZvY3VzIHRyYXAgdXNpbmcgY2RrVHJhcEZvY3VzICovXG4gIEBJbnB1dCgpXG4gIGdldCBmb2N1c1RyYXBFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c1RyYXBFbmFibGVkO1xuICB9XG4gIHNldCBmb2N1c1RyYXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZm9jdXNUcmFwRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogUG9wb3ZlciBmb2N1cyB0cmFwIGF1dG8gY2FwdHVyZSB1c2luZyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSAqL1xuICBASW5wdXQoKVxuICBnZXQgZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQ7XG4gIH1cbiAgc2V0IGZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgdGFrZXMgY2xhc3NlcyBzZXQgb24gdGhlIGhvc3QgbWQtcG9wb3ZlciBlbGVtZW50IGFuZCBhcHBsaWVzIHRoZW0gb24gdGhlXG4gICAqIHBvcG92ZXIgdGVtcGxhdGUgdGhhdCBkaXNwbGF5cyBpbiB0aGUgb3ZlcmxheSBjb250YWluZXIuICBPdGhlcndpc2UsIGl0J3MgZGlmZmljdWx0XG4gICAqIHRvIHN0eWxlIHRoZSBjb250YWluaW5nIHBvcG92ZXIgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBjbGFzc2VzIGxpc3Qgb2YgY2xhc3MgbmFtZXNcbiAgICovXG4gIEBJbnB1dCgnY2xhc3MnKVxuICBzZXQgcGFuZWxDbGFzcyhjbGFzc2VzOiBzdHJpbmcpIHtcbiAgICBpZiAoY2xhc3NlcyAmJiBjbGFzc2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5fY2xhc3NMaXN0ID0gY2xhc3Nlcy5zcGxpdCgnICcpLnJlZHVjZSgob2JqOiBhbnksIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIG9ialtjbGFzc05hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZSA9ICcnO1xuICAgICAgdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgdGFrZXMgY2xhc3NlcyBzZXQgb24gdGhlIGhvc3QgbWQtcG9wb3ZlciBlbGVtZW50IGFuZCBhcHBsaWVzIHRoZW0gb24gdGhlXG4gICAqIHBvcG92ZXIgdGVtcGxhdGUgdGhhdCBkaXNwbGF5cyBpbiB0aGUgb3ZlcmxheSBjb250YWluZXIuICBPdGhlcndpc2UsIGl0J3MgZGlmZmljdWx0XG4gICAqIHRvIHN0eWxlIHRoZSBjb250YWluaW5nIHBvcG92ZXIgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcGFuZWxDbGFzc2AgaW5zdGVhZC5cbiAgICogQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsYXNzTGlzdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhbmVsQ2xhc3M7XG4gIH1cbiAgc2V0IGNsYXNzTGlzdChjbGFzc2VzOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhbmVsQ2xhc3MgPSBjbGFzc2VzO1xuICB9XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBpcyBjbG9zZWQuICovXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgIHRoaXMuY2xvc2VkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGEga2V5Ym9hcmQgZXZlbnQgZnJvbSB0aGUgcG9wb3ZlciwgZGVsZWdhdGluZyB0byB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uLiAqL1xuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgY2FzZSBFU0NBUEU6XG4gICAgICAgIHRoaXMuX2VtaXRDbG9zZUV2ZW50KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBlbWl0cyBhIGNsb3NlIGV2ZW50IHRvIHdoaWNoIHRoZSB0cmlnZ2VyIGlzIHN1YnNjcmliZWQuIFdoZW4gZW1pdHRlZCwgdGhlXG4gICAqIHRyaWdnZXIgd2lsbCBjbG9zZSB0aGUgcG9wb3Zlci5cbiAgICovXG4gIF9lbWl0Q2xvc2VFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICAvKiogQ2xvc2UgcG9wb3ZlciBvbiBjbGljayBpZiBjbG9zZU9uUGFuZWxDbGljayBpcyB0cnVlICovXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuY2xvc2VPblBhbmVsQ2xpY2spIHtcbiAgICAgIHRoaXMuX2VtaXRDbG9zZUV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRPRE86IFJlZmFjdG9yIHdoZW4gQGFuZ3VsYXIvY2RrIGluY2x1ZGVzIGZlYXR1cmUgSSBtZW50aW9uZWQgb24gZ2l0aHViIHNlZSBsaW5rIGJlbG93LlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvcHVsbC81NDkzI2lzc3VlY29tbWVudC0zMTMwODUzMjNcbiAgICovXG4gIC8qKiBEaXNhYmxlcyBjbG9zZSBvZiBwb3BvdmVyIHdoZW4gbGVhdmluZyB0cmlnZ2VyIGVsZW1lbnQgYW5kIG1vdXNlIG92ZXIgdGhlIHBvcG92ZXIgKi9cbiAgb25Nb3VzZU92ZXIoKSB7XG4gICAgaWYgKHRoaXMudHJpZ2dlckV2ZW50ID09PSAnaG92ZXInKSB7XG4gICAgICB0aGlzLmNsb3NlRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuICAvKiogRW5hYmxlcyBjbG9zZSBvZiBwb3BvdmVyIHdoZW4gbW91c2UgbGVhdmluZyBwb3BvdmVyIGVsZW1lbnQgKi9cbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXJFdmVudCA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5jbG9zZURpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIGhvdyBzdHlsZXMgYXJlIHNldCBhbmQgdXBkYXRlZCBvbiB0aGUgY29tcG9uZW50LCB1c2UgYmVzdCBwcmFjdGljZXMuXG4gIC8vIFRPRE86IElmIGFycm93IGxlZnQgYW5kIHJpZ2h0IHBvc2l0aW9uaW5nIGlzIHJlcXVlc3RlZCwgc2VlIGlmIGZsZXggZGlyZWN0aW9uIGNhbiBiZSB1c2VkIHRvIHdvcmsgd2l0aCBvcmRlci5cbiAgLyoqIFNldHMgdGhlIGN1cnJlbnQgc3R5bGVzIGZvciB0aGUgcG9wb3ZlciB0byBhbGxvdyBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgc2V0dGluZ3MgKi9cbiAgc2V0Q3VycmVudFN0eWxlcyhwb3MgPSB0aGlzLnBvc2l0aW9uKSB7XG4gICAgY29uc3QgbGVmdCA9XG4gICAgICBwb3NbMV0gPT09ICdhZnRlcidcbiAgICAgICAgPyBgJHt0aGlzLmFycm93T2Zmc2V0WCAtIHRoaXMuYXJyb3dXaWR0aCAvIDJ9cHhgXG4gICAgICAgIDogcG9zWzFdID09PSAnY2VudGVyJ1xuICAgICAgICA/IGBjYWxjKDUwJSAtICR7dGhpcy5hcnJvd1dpZHRoIC8gMn1weClgXG4gICAgICAgIDogJyc7XG4gICAgY29uc3QgcmlnaHQgPSBwb3NbMV0gPT09ICdiZWZvcmUnID8gYCR7dGhpcy5hcnJvd09mZnNldFggLSB0aGlzLmFycm93V2lkdGggLyAyfXB4YCA6ICcnO1xuXG4gICAgY29uc3QgYm90dG9tID1cbiAgICAgIHBvc1sxXSA9PT0gJ2Fib3ZlJ1xuICAgICAgICA/IGAke3RoaXMuYXJyb3dPZmZzZXRZIC0gdGhpcy5hcnJvd0hlaWdodCAvIDJ9cHhgXG4gICAgICAgIDogcG9zWzFdID09PSAnY2VudGVyJ1xuICAgICAgICA/IGBjYWxjKDUwJSAtICR7dGhpcy5hcnJvd0hlaWdodCAvIDJ9cHgpYFxuICAgICAgICA6ICcnO1xuICAgIGNvbnN0IHRvcCA9IHBvc1sxXSA9PT0gJ2JlbG93JyA/IGAke3RoaXMuYXJyb3dPZmZzZXRZIC0gdGhpcy5hcnJvd0hlaWdodCAvIDJ9cHhgIDogJyc7XG5cbiAgICB0aGlzLnBvcG92ZXJBcnJvd1N0eWxlcyA9XG4gICAgICBwb3NbMF0gPT09ICdhYm92ZScgfHwgcG9zWzBdID09PSAnYmVsb3cnXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbGVmdDogdGhpcy5fZGlyLnZhbHVlID09PSAnbHRyJyA/IGxlZnQgOiByaWdodCxcbiAgICAgICAgICAgIHJpZ2h0OiB0aGlzLl9kaXIudmFsdWUgPT09ICdsdHInID8gcmlnaHQgOiBsZWZ0LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICBib3R0b20sXG4gICAgICAgICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCdzIG5lY2Vzc2FyeSB0byBzZXQgcG9zaXRpb24tYmFzZWQgY2xhc3NlcyB0byBlbnN1cmUgdGhlIHBvcG92ZXIgcGFuZWwgYW5pbWF0aW9uXG4gICAqIGZvbGRzIG91dCBmcm9tIHRoZSBjb3JyZWN0IGRpcmVjdGlvbi5cbiAgICovXG4gIHNldFBvc2l0aW9uQ2xhc3Nlcyhwb3MgPSB0aGlzLnBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1iZWZvcmUtYWJvdmUnXSA9IHBvc1swXSA9PT0gJ2JlZm9yZScgJiYgcG9zWzFdID09PSAnYWJvdmUnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVmb3JlLWNlbnRlciddID0gcG9zWzBdID09PSAnYmVmb3JlJyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVmb3JlLWJlbG93J10gPSBwb3NbMF0gPT09ICdiZWZvcmUnICYmIHBvc1sxXSA9PT0gJ2JlbG93JztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFmdGVyLWFib3ZlJ10gPSBwb3NbMF0gPT09ICdhZnRlcicgJiYgcG9zWzFdID09PSAnYWJvdmUnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYWZ0ZXItY2VudGVyJ10gPSBwb3NbMF0gPT09ICdhZnRlcicgJiYgcG9zWzFdID09PSAnY2VudGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFmdGVyLWJlbG93J10gPSBwb3NbMF0gPT09ICdhZnRlcicgJiYgcG9zWzFdID09PSAnYmVsb3cnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYWJvdmUtYmVmb3JlJ10gPSBwb3NbMF0gPT09ICdhYm92ZScgJiYgcG9zWzFdID09PSAnYmVmb3JlJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFib3ZlLWNlbnRlciddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hYm92ZS1hZnRlciddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2FmdGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlbG93LWJlZm9yZSddID0gcG9zWzBdID09PSAnYmVsb3cnICYmIHBvc1sxXSA9PT0gJ2JlZm9yZSc7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1iZWxvdy1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVsb3ctYWZ0ZXInXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdhZnRlcic7XG4gIH1cblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xvc2VPblBhbmVsQ2xpY2s6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NlT25CYWNrZHJvcENsaWNrOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlQW5pbWF0aW9uOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mb2N1c1RyYXBFbmFibGVkOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQ6IEJvb2xlYW5JbnB1dDtcbn1cbiJdfQ==
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvcG9wb3Zlci9wb3BvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU9uRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLGlDQUFpQyxHQUNsQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBV3hELE1BQU0sT0FBTyxVQUFVO0lBd09yQixZQUNzQixJQUFvQixFQUNoQyxXQUF1QixFQUN4QixJQUFZO1FBRkMsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQTFPSyxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRTFDLHFFQUFxRTtRQUM3RCxjQUFTLEdBQXVCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGtCQUFhLEdBQTJCLE9BQU8sQ0FBQztRQUNoRCxvQkFBZSxHQUE2QixZQUFZLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxHQUFHLENBQUM7UUFDbEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIs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TUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLFVBQVUsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QixRQUFRLEVBQUUsWUFBWTs7YUFDdkI7Ozs7Ozs7Ozs7WUF0QlEsY0FBYyx1QkFnUWxCLFFBQVE7WUF6UVgsVUFBVTtZQUdWLE1BQU07Ozs7bUJBOEJMLFdBQVcsU0FBQyxXQUFXO3VCQTBDdkIsS0FBSzsyQkFnQkwsS0FBSzs2QkFTTCxLQUFLO3lCQVNMLEtBQUs7eUJBU0wsS0FBSztzQkFTTCxLQUFLO3NCQVNMLEtBQUs7MkJBU0wsS0FBSzsyQkFTTCxLQUFLO3lCQVNMLEtBQUs7MEJBU0wsS0FBSztnQ0FTTCxLQUFLO21DQVNMLEtBQUs7K0JBU0wsS0FBSzsrQkFTTCxLQUFLOzBDQVNMLEtBQUs7eUJBY0wsS0FBSyxTQUFDLE9BQU87d0JBb0JiLEtBQUs7cUJBU0wsTUFBTTswQkFFTixTQUFTLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSG9zdEJpbmRpbmcsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVTQ0FQRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHtcbiAgTXR4UG9wb3ZlclRyaWdnZXJFdmVudCxcbiAgTXR4UG9wb3ZlclNjcm9sbFN0cmF0ZWd5LFxuICBNdHhQb3BvdmVyUG9zaXRpb24sXG59IGZyb20gJy4vcG9wb3Zlci10eXBlcyc7XG5pbXBvcnQge1xuICB0aHJvd010eFBvcG92ZXJJbnZhbGlkUG9zaXRpb25TdGFydCxcbiAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uRW5kLFxufSBmcm9tICcuL3BvcG92ZXItZXJyb3JzJztcbmltcG9ydCB7IE10eFBvcG92ZXJQYW5lbCB9IGZyb20gJy4vcG9wb3Zlci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IHRyYW5zZm9ybVBvcG92ZXIgfSBmcm9tICcuL3BvcG92ZXItYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210eC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXIuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgYW5pbWF0aW9uczogW3RyYW5zZm9ybVBvcG92ZXJdLFxuICBleHBvcnRBczogJ210eFBvcG92ZXInLFxufSlcbmV4cG9ydCBjbGFzcyBNdHhQb3BvdmVyIGltcGxlbWVudHMgTXR4UG9wb3ZlclBhbmVsLCBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnZGlhbG9nJztcblxuICAvKiogU2V0dGluZ3MgZm9yIHBvcG92ZXIsIHZpZXcgc2V0dGVycyBhbmQgZ2V0dGVycyBmb3IgbW9yZSBkZXRhaWwgKi9cbiAgcHJpdmF0ZSBfcG9zaXRpb246IE10eFBvcG92ZXJQb3NpdGlvbiA9IFsnYmVsb3cnLCAnYWZ0ZXInXTtcbiAgcHJpdmF0ZSBfdHJpZ2dlckV2ZW50OiBNdHhQb3BvdmVyVHJpZ2dlckV2ZW50ID0gJ2hvdmVyJztcbiAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3k6IE10eFBvcG92ZXJTY3JvbGxTdHJhdGVneSA9ICdyZXBvc2l0aW9uJztcbiAgcHJpdmF0ZSBfZW50ZXJEZWxheSA9IDEwMDtcbiAgcHJpdmF0ZSBfbGVhdmVEZWxheSA9IDEwMDtcbiAgcHJpdmF0ZSBfcGFuZWxPZmZzZXRYID0gMDtcbiAgcHJpdmF0ZSBfcGFuZWxPZmZzZXRZID0gMDtcbiAgcHJpdmF0ZSBfY2xvc2VPblBhbmVsQ2xpY2sgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSB0cnVlO1xuICBwcml2YXRlIF9kaXNhYmxlQW5pbWF0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcEVuYWJsZWQgPSB0cnVlO1xuICBwcml2YXRlIF9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQgPSB0cnVlO1xuICBwcml2YXRlIF9hcnJvd09mZnNldFggPSAyMDtcbiAgcHJpdmF0ZSBfYXJyb3dPZmZzZXRZID0gMjA7XG4gIHByaXZhdGUgX2Fycm93V2lkdGggPSAxNjtcbiAgcHJpdmF0ZSBfYXJyb3dIZWlnaHQgPSAxNjtcblxuICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIG5nQ2xhc3MgKi9cbiAgX2NsYXNzTGlzdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKiogV2hldGhlciBwb3BvdmVyJ3MgYHRhcmdldEVsZW1lbnRgIGlzIGRlZmluZWQgKi9cbiAgcHVibGljIGNvbnRhaW5lclBvc2l0aW9uaW5nID0gZmFsc2U7XG5cbiAgLyoqIENsb3NpbmcgZGlzYWJsZWQgb24gcG9wb3ZlciAqL1xuICBwdWJsaWMgY2xvc2VEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKiBDb25maWcgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBwb3BvdmVyJ3MgYXJyb3cgbmdTdHlsZSAqL1xuICBwdWJsaWMgcG9wb3ZlclBhbmVsU3R5bGVzITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBhcnJvdyBuZ1N0eWxlICovXG4gIHB1YmxpYyBwb3BvdmVyQXJyb3dTdHlsZXMhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgbmdTdHlsZSAqL1xuICBwdWJsaWMgcG9wb3ZlckNvbnRlbnRTdHlsZXMhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogRW1pdHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHN0YXRlIHdoZW5ldmVyIGl0IGNoYW5nZXMuICovXG4gIF9vbkFuaW1hdGlvblN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb25FdmVudD4oKTtcblxuICAvKiogUG9zaXRpb24gb2YgdGhlIHBvcG92ZXIuICovXG4gIEBJbnB1dCgpXG4gIGdldCBwb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cbiAgc2V0IHBvc2l0aW9uKHZhbHVlOiBNdHhQb3BvdmVyUG9zaXRpb24pIHtcbiAgICBpZiAoIVsnYmVmb3JlJywgJ2FmdGVyJywgJ2Fib3ZlJywgJ2JlbG93J10uaW5jbHVkZXModmFsdWVbMF0pKSB7XG4gICAgICB0aHJvd010eFBvcG92ZXJJbnZhbGlkUG9zaXRpb25TdGFydCgpO1xuICAgIH1cbiAgICBpZiAoIVsnYmVmb3JlJywgJ2FmdGVyJywgJ2Fib3ZlJywgJ2JlbG93JywgJ2NlbnRlciddLmluY2x1ZGVzKHZhbHVlWzFdKSkge1xuICAgICAgdGhyb3dNdHhQb3BvdmVySW52YWxpZFBvc2l0aW9uRW5kKCk7XG4gICAgfVxuICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIHRyaWdnZXIgZXZlbnQgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRyaWdnZXJFdmVudCgpOiBNdHhQb3BvdmVyVHJpZ2dlckV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckV2ZW50O1xuICB9XG4gIHNldCB0cmlnZ2VyRXZlbnQodmFsdWU6IE10eFBvcG92ZXJUcmlnZ2VyRXZlbnQpIHtcbiAgICB0aGlzLl90cmlnZ2VyRXZlbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIHNjcm9sbCBzdHJhdGVneSAqL1xuICBASW5wdXQoKVxuICBnZXQgc2Nyb2xsU3RyYXRlZ3koKTogTXR4UG9wb3ZlclNjcm9sbFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsU3RyYXRlZ3k7XG4gIH1cbiAgc2V0IHNjcm9sbFN0cmF0ZWd5KHZhbHVlOiBNdHhQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kpIHtcbiAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgZW50ZXIgZGVsYXkgKi9cbiAgQElucHV0KClcbiAgZ2V0IGVudGVyRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZW50ZXJEZWxheTtcbiAgfVxuICBzZXQgZW50ZXJEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZW50ZXJEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgbGVhdmUgZGVsYXkgKi9cbiAgQElucHV0KClcbiAgZ2V0IGxlYXZlRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVhdmVEZWxheTtcbiAgfVxuICBzZXQgbGVhdmVEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGVhdmVEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgdGFyZ2V0IG9mZnNldCB4ICovXG4gIEBJbnB1dCgpXG4gIGdldCB4T2Zmc2V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsT2Zmc2V0WDtcbiAgfVxuICBzZXQgeE9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFuZWxPZmZzZXRYID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciB0YXJnZXQgb2Zmc2V0IHkgKi9cbiAgQElucHV0KClcbiAgZ2V0IHlPZmZzZXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxPZmZzZXRZO1xuICB9XG4gIHNldCB5T2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9wYW5lbE9mZnNldFkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGFycm93IG9mZnNldCB4ICovXG4gIEBJbnB1dCgpXG4gIGdldCBhcnJvd09mZnNldFgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXJyb3dPZmZzZXRYO1xuICB9XG4gIHNldCBhcnJvd09mZnNldFgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Fycm93T2Zmc2V0WCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIFBvcG92ZXIgYXJyb3cgb2Zmc2V0IHkgKi9cbiAgQElucHV0KClcbiAgZ2V0IGFycm93T2Zmc2V0WSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hcnJvd09mZnNldFk7XG4gIH1cbiAgc2V0IGFycm93T2Zmc2V0WSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYXJyb3dPZmZzZXRZID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBhcnJvdyB3aWR0aCAqL1xuICBASW5wdXQoKVxuICBnZXQgYXJyb3dXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hcnJvd1dpZHRoO1xuICB9XG4gIHNldCBhcnJvd1dpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9hcnJvd1dpZHRoID0gdmFsdWU7XG4gIH1cblxuICAvKiogUG9wb3ZlciBhcnJvdyBoZWlnaHQgKi9cbiAgQElucHV0KClcbiAgZ2V0IGFycm93SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Fycm93SGVpZ2h0O1xuICB9XG4gIHNldCBhcnJvd0hlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYXJyb3dIZWlnaHQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGNsb3NlIG9uIGNvbnRhaW5lciBjbGljayAqL1xuICBASW5wdXQoKVxuICBnZXQgY2xvc2VPblBhbmVsQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT25QYW5lbENsaWNrO1xuICB9XG4gIHNldCBjbG9zZU9uUGFuZWxDbGljayh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NlT25QYW5lbENsaWNrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGNsb3NlIG9uIGJhY2tkcm9wIGNsaWNrICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbG9zZU9uQmFja2Ryb3BDbGljaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2s7XG4gIH1cbiAgc2V0IGNsb3NlT25CYWNrZHJvcENsaWNrKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqIERpc2FibGUgYW5pbWF0aW9ucyBvZiBwb3BvdmVyIGFuZCBhbGwgY2hpbGQgZWxlbWVudHMgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVBbmltYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVBbmltYXRpb247XG4gIH1cbiAgc2V0IGRpc2FibGVBbmltYXRpb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBQb3BvdmVyIGZvY3VzIHRyYXAgdXNpbmcgY2RrVHJhcEZvY3VzICovXG4gIEBJbnB1dCgpXG4gIGdldCBmb2N1c1RyYXBFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c1RyYXBFbmFibGVkO1xuICB9XG4gIHNldCBmb2N1c1RyYXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZm9jdXNUcmFwRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogUG9wb3ZlciBmb2N1cyB0cmFwIGF1dG8gY2FwdHVyZSB1c2luZyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSAqL1xuICBASW5wdXQoKVxuICBnZXQgZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQ7XG4gIH1cbiAgc2V0IGZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgdGFrZXMgY2xhc3NlcyBzZXQgb24gdGhlIGhvc3QgbWQtcG9wb3ZlciBlbGVtZW50IGFuZCBhcHBsaWVzIHRoZW0gb24gdGhlXG4gICAqIHBvcG92ZXIgdGVtcGxhdGUgdGhhdCBkaXNwbGF5cyBpbiB0aGUgb3ZlcmxheSBjb250YWluZXIuICBPdGhlcndpc2UsIGl0J3MgZGlmZmljdWx0XG4gICAqIHRvIHN0eWxlIHRoZSBjb250YWluaW5nIHBvcG92ZXIgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBjbGFzc2VzIGxpc3Qgb2YgY2xhc3MgbmFtZXNcbiAgICovXG4gIEBJbnB1dCgnY2xhc3MnKVxuICBzZXQgcGFuZWxDbGFzcyhjbGFzc2VzOiBzdHJpbmcpIHtcbiAgICBpZiAoY2xhc3NlcyAmJiBjbGFzc2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5fY2xhc3NMaXN0ID0gY2xhc3Nlcy5zcGxpdCgnICcpLnJlZHVjZSgob2JqOiBhbnksIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIG9ialtjbGFzc05hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZSA9ICcnO1xuICAgICAgdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgdGFrZXMgY2xhc3NlcyBzZXQgb24gdGhlIGhvc3QgbWQtcG9wb3ZlciBlbGVtZW50IGFuZCBhcHBsaWVzIHRoZW0gb24gdGhlXG4gICAqIHBvcG92ZXIgdGVtcGxhdGUgdGhhdCBkaXNwbGF5cyBpbiB0aGUgb3ZlcmxheSBjb250YWluZXIuICBPdGhlcndpc2UsIGl0J3MgZGlmZmljdWx0XG4gICAqIHRvIHN0eWxlIHRoZSBjb250YWluaW5nIHBvcG92ZXIgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcGFuZWxDbGFzc2AgaW5zdGVhZC5cbiAgICogQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsYXNzTGlzdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhbmVsQ2xhc3M7XG4gIH1cbiAgc2V0IGNsYXNzTGlzdChjbGFzc2VzOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhbmVsQ2xhc3MgPSBjbGFzc2VzO1xuICB9XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBpcyBjbG9zZWQuICovXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9lbWl0Q2xvc2VFdmVudCgpO1xuICAgIHRoaXMuY2xvc2VkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGEga2V5Ym9hcmQgZXZlbnQgZnJvbSB0aGUgcG9wb3ZlciwgZGVsZWdhdGluZyB0byB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uLiAqL1xuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgY2FzZSBFU0NBUEU6XG4gICAgICAgIHRoaXMuX2VtaXRDbG9zZUV2ZW50KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBlbWl0cyBhIGNsb3NlIGV2ZW50IHRvIHdoaWNoIHRoZSB0cmlnZ2VyIGlzIHN1YnNjcmliZWQuIFdoZW4gZW1pdHRlZCwgdGhlXG4gICAqIHRyaWdnZXIgd2lsbCBjbG9zZSB0aGUgcG9wb3Zlci5cbiAgICovXG4gIF9lbWl0Q2xvc2VFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICAvKiogQ2xvc2UgcG9wb3ZlciBvbiBjbGljayBpZiBjbG9zZU9uUGFuZWxDbGljayBpcyB0cnVlICovXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuY2xvc2VPblBhbmVsQ2xpY2spIHtcbiAgICAgIHRoaXMuX2VtaXRDbG9zZUV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIERpc2FibGVzIGNsb3NlIG9mIHBvcG92ZXIgd2hlbiBsZWF2aW5nIHRyaWdnZXIgZWxlbWVudCBhbmQgbW91c2Ugb3ZlciB0aGUgcG9wb3ZlciAqL1xuICBvbk1vdXNlT3ZlcigpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyRXZlbnQgPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuY2xvc2VEaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEVuYWJsZXMgY2xvc2Ugb2YgcG9wb3ZlciB3aGVuIG1vdXNlIGxlYXZpbmcgcG9wb3ZlciBlbGVtZW50ICovXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyRXZlbnQgPT09ICdob3ZlcicpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZW1pdENsb3NlRXZlbnQoKTtcbiAgICAgIH0sIHRoaXMubGVhdmVEZWxheSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNldHMgdGhlIGN1cnJlbnQgc3R5bGVzIGZvciB0aGUgcG9wb3ZlciB0byBhbGxvdyBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgc2V0dGluZ3MgKi9cbiAgc2V0Q3VycmVudFN0eWxlcyhwb3MgPSB0aGlzLnBvc2l0aW9uKSB7XG4gICAgY29uc3QgbGVmdCA9XG4gICAgICBwb3NbMV0gPT09ICdhZnRlcidcbiAgICAgICAgPyBgJHt0aGlzLmFycm93T2Zmc2V0WCAtIHRoaXMuYXJyb3dXaWR0aCAvIDJ9cHhgXG4gICAgICAgIDogcG9zWzFdID09PSAnY2VudGVyJ1xuICAgICAgICA/IGBjYWxjKDUwJSAtICR7dGhpcy5hcnJvd1dpZHRoIC8gMn1weClgXG4gICAgICAgIDogJyc7XG4gICAgY29uc3QgcmlnaHQgPSBwb3NbMV0gPT09ICdiZWZvcmUnID8gYCR7dGhpcy5hcnJvd09mZnNldFggLSB0aGlzLmFycm93V2lkdGggLyAyfXB4YCA6ICcnO1xuXG4gICAgY29uc3QgYm90dG9tID1cbiAgICAgIHBvc1sxXSA9PT0gJ2Fib3ZlJ1xuICAgICAgICA/IGAke3RoaXMuYXJyb3dPZmZzZXRZIC0gdGhpcy5hcnJvd0hlaWdodCAvIDJ9cHhgXG4gICAgICAgIDogcG9zWzFdID09PSAnY2VudGVyJ1xuICAgICAgICA/IGBjYWxjKDUwJSAtICR7dGhpcy5hcnJvd0hlaWdodCAvIDJ9cHgpYFxuICAgICAgICA6ICcnO1xuICAgIGNvbnN0IHRvcCA9IHBvc1sxXSA9PT0gJ2JlbG93JyA/IGAke3RoaXMuYXJyb3dPZmZzZXRZIC0gdGhpcy5hcnJvd0hlaWdodCAvIDJ9cHhgIDogJyc7XG5cbiAgICB0aGlzLnBvcG92ZXJBcnJvd1N0eWxlcyA9XG4gICAgICBwb3NbMF0gPT09ICdhYm92ZScgfHwgcG9zWzBdID09PSAnYmVsb3cnXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbGVmdDogdGhpcy5fZGlyLnZhbHVlID09PSAnbHRyJyA/IGxlZnQgOiByaWdodCxcbiAgICAgICAgICAgIHJpZ2h0OiB0aGlzLl9kaXIudmFsdWUgPT09ICdsdHInID8gcmlnaHQgOiBsZWZ0LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICBib3R0b20sXG4gICAgICAgICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCdzIG5lY2Vzc2FyeSB0byBzZXQgcG9zaXRpb24tYmFzZWQgY2xhc3NlcyB0byBlbnN1cmUgdGhlIHBvcG92ZXIgcGFuZWwgYW5pbWF0aW9uXG4gICAqIGZvbGRzIG91dCBmcm9tIHRoZSBjb3JyZWN0IGRpcmVjdGlvbi5cbiAgICovXG4gIHNldFBvc2l0aW9uQ2xhc3Nlcyhwb3MgPSB0aGlzLnBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1iZWZvcmUtYWJvdmUnXSA9IHBvc1swXSA9PT0gJ2JlZm9yZScgJiYgcG9zWzFdID09PSAnYWJvdmUnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVmb3JlLWNlbnRlciddID0gcG9zWzBdID09PSAnYmVmb3JlJyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVmb3JlLWJlbG93J10gPSBwb3NbMF0gPT09ICdiZWZvcmUnICYmIHBvc1sxXSA9PT0gJ2JlbG93JztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFmdGVyLWFib3ZlJ10gPSBwb3NbMF0gPT09ICdhZnRlcicgJiYgcG9zWzFdID09PSAnYWJvdmUnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYWZ0ZXItY2VudGVyJ10gPSBwb3NbMF0gPT09ICdhZnRlcicgJiYgcG9zWzFdID09PSAnY2VudGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFmdGVyLWJlbG93J10gPSBwb3NbMF0gPT09ICdhZnRlcicgJiYgcG9zWzFdID09PSAnYmVsb3cnO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYWJvdmUtYmVmb3JlJ10gPSBwb3NbMF0gPT09ICdhYm92ZScgJiYgcG9zWzFdID09PSAnYmVmb3JlJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWFib3ZlLWNlbnRlciddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1hYm92ZS1hZnRlciddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2FmdGVyJztcbiAgICB0aGlzLl9jbGFzc0xpc3RbJ210eC1wb3BvdmVyLWJlbG93LWJlZm9yZSddID0gcG9zWzBdID09PSAnYmVsb3cnICYmIHBvc1sxXSA9PT0gJ2JlZm9yZSc7XG4gICAgdGhpcy5fY2xhc3NMaXN0WydtdHgtcG9wb3Zlci1iZWxvdy1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xuICAgIHRoaXMuX2NsYXNzTGlzdFsnbXR4LXBvcG92ZXItYmVsb3ctYWZ0ZXInXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdhZnRlcic7XG4gIH1cblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xvc2VPblBhbmVsQ2xpY2s6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NlT25CYWNrZHJvcENsaWNrOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlQW5pbWF0aW9uOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mb2N1c1RyYXBFbmFibGVkOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQ6IEJvb2xlYW5JbnB1dDtcbn1cbiJdfQ==