@sd-angular/core 1.0.90 → 1.0.92

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.
Files changed (58) hide show
  1. package/bundles/sd-angular-core-autocomplete.umd.js +1 -1
  2. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  3. package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
  4. package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
  5. package/bundles/sd-angular-core-date-month.umd.js +1 -1
  6. package/bundles/sd-angular-core-date-month.umd.js.map +1 -1
  7. package/bundles/sd-angular-core-date-month.umd.min.js +2 -2
  8. package/bundles/sd-angular-core-date-month.umd.min.js.map +1 -1
  9. package/bundles/sd-angular-core-date-time.umd.js +1 -1
  10. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  11. package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
  12. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  13. package/bundles/sd-angular-core-input-currency.umd.js +1 -1
  14. package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
  15. package/bundles/sd-angular-core-input-currency.umd.min.js +1 -1
  16. package/bundles/sd-angular-core-input-currency.umd.min.js.map +1 -1
  17. package/bundles/sd-angular-core-input.umd.js +0 -1
  18. package/bundles/sd-angular-core-input.umd.js.map +1 -1
  19. package/bundles/sd-angular-core-input.umd.min.js +1 -1
  20. package/bundles/sd-angular-core-input.umd.min.js.map +1 -1
  21. package/bundles/sd-angular-core-radio.umd.js +1 -1
  22. package/bundles/sd-angular-core-radio.umd.js.map +1 -1
  23. package/bundles/sd-angular-core-radio.umd.min.js +1 -1
  24. package/bundles/sd-angular-core-radio.umd.min.js.map +1 -1
  25. package/bundles/sd-angular-core-select-editor.umd.js +1 -1
  26. package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
  27. package/bundles/sd-angular-core-select-editor.umd.min.js +1 -1
  28. package/bundles/sd-angular-core-select-editor.umd.min.js.map +1 -1
  29. package/bundles/sd-angular-core-textarea.umd.js +1 -1
  30. package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
  31. package/bundles/sd-angular-core-textarea.umd.min.js +1 -1
  32. package/bundles/sd-angular-core-textarea.umd.min.js.map +1 -1
  33. package/esm2015/autocomplete/src/lib/autocomplete.component.js +2 -2
  34. package/esm2015/date-month/src/lib/date-month.component.js +2 -2
  35. package/esm2015/date-time/src/lib/date-time.component.js +2 -2
  36. package/esm2015/input/src/lib/input.component.js +1 -2
  37. package/esm2015/input-currency/src/lib/input-currency.component.js +2 -2
  38. package/esm2015/radio/src/lib/radio.component.js +2 -2
  39. package/esm2015/select-editor/src/lib/select-editor.component.js +2 -2
  40. package/esm2015/textarea/src/lib/textarea.component.js +2 -2
  41. package/fesm2015/sd-angular-core-autocomplete.js +1 -1
  42. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  43. package/fesm2015/sd-angular-core-date-month.js +1 -1
  44. package/fesm2015/sd-angular-core-date-month.js.map +1 -1
  45. package/fesm2015/sd-angular-core-date-time.js +1 -1
  46. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  47. package/fesm2015/sd-angular-core-input-currency.js +1 -1
  48. package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
  49. package/fesm2015/sd-angular-core-input.js +0 -1
  50. package/fesm2015/sd-angular-core-input.js.map +1 -1
  51. package/fesm2015/sd-angular-core-radio.js +1 -1
  52. package/fesm2015/sd-angular-core-radio.js.map +1 -1
  53. package/fesm2015/sd-angular-core-select-editor.js +1 -1
  54. package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
  55. package/fesm2015/sd-angular-core-textarea.js +1 -1
  56. package/fesm2015/sd-angular-core-textarea.js.map +1 -1
  57. package/package.json +1 -1
  58. package/{sd-angular-core-1.0.90.tgz → sd-angular-core-1.0.92.tgz} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/textarea/src/lib/textarea.component.ts","../../../../projects/sd-core/textarea/src/lib/textarea.module.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdTextarea","ref","_this","_name","uuid.v4","_form","rows","modelChange","EventEmitter","sdChange","required","_pattern","_validator","_autoHeight_1","isFocused","formControl","SdFormControl","_subscription","Subscription","onFocus","onBlur","val","_a","toString","trim","setValue","onClick","sdView","templateRef","disabled","focus","blur","_b","textarea","nativeElement","setTimeout","_onChange","style","height","emit","_onInput","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","maxlength","maxLength","pattern","_customValidator","setValidators","setAsyncValidators","updateValueAndValidity","func","c","message","_e","customValidator","defineProperty","prototype","NgForm","form","validator","disable","enable","ngOnInit","add","sdChanges","subscribe","markForCheck","valueChanges","addControl","ngAfterViewInit","setAttribute","_d","_c","scrollHeight","ngOnDestroy","removeControl","unsubscribe","Component","args","selector","template","ChangeDetectorRef","Input","Output","ViewChild","ContentChild","SdViewDefDirective","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatIconModule","MatTooltipModule","SdTranslateModule","SdCommonModule","declarations","exports"],"mappings":"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","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 || Array.prototype.slice.call(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 { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, ViewEncapsulation, OnInit, ContentChild, ViewChild, ElementRef } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { AbstractControl, AsyncValidatorFn, FormGroup, NgForm, ValidatorFn, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\n@Component({\r\n selector: 'sd-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss']\r\n})\r\n\r\nexport class SdTextarea implements OnInit, AfterViewInit, OnDestroy {\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n @Input() rows = 5;\r\n @Input() set model(value: any) {\r\n if (this.formControl.value !== value) {\r\n this.formControl.setValue(value);\r\n }\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter<any>();\r\n\r\n // Optional\r\n required = false;\r\n @Input('required') set _required(val: boolean | '') {\r\n this.required = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n maxlength: number;\r\n @Input('maxlength') set _maxlength(val: number) {\r\n this.maxlength = +val;\r\n this.#updateValidator();\r\n }\r\n #pattern: string;\r\n @Input() set pattern(val: string) {\r\n this.#pattern = val;\r\n this.#updateValidator();\r\n }\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n #autoHeight = false;\r\n @Input('autoHeight') set _autoHeight(val: boolean | '') {\r\n this.#autoHeight = (val === '') || val;\r\n }\r\n @ViewChild('textarea') textarea: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n formControl = new SdFormControl();\r\n #subscription = new Subscription();\r\n constructor(private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.sdChanges.subscribe(() => {\r\n this.formControl.updateValueAndValidity();\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.formControl.valueChanges.subscribe(this.#onChange));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if(this.#autoHeight) {\r\n this.textarea?.nativeElement?.setAttribute('style',`height: ${this.textarea?.nativeElement?.scrollHeight}px;overflow-y:hidden;`)\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n const val: string = (this.formControl.value ?? '').toString();\r\n if (val.length > val.trim().length) {\r\n this.formControl.setValue(val.trim());\r\n }\r\n }\r\n\r\n onClick = () => {\r\n if(this.sdView?.templateRef) {\r\n if(!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.textarea?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.textarea?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n #onChange = (value: any) => {\r\n if(this.#autoHeight) {\r\n this.textarea.nativeElement.style.height = 'auto';\r\n this.textarea.nativeElement.style.height = (this.textarea.nativeElement.scrollHeight) + 'px';\r\n }\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n\r\n #onInput = function () {\r\n // this.style.height = 'auto';\r\n // this.style.height = (this.scrollHeight) + 'px';\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.required) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.maxlength > 0) {\r\n validators.push(Validators.maxLength(this.maxlength));\r\n }\r\n if (this.#pattern) {\r\n validators.push(Validators.pattern(this.#pattern));\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdTextarea } from './textarea.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdTextarea\r\n ],\r\n exports: [\r\n SdCommonModule,\r\n SdTextarea\r\n ]\r\n})\r\nexport class SdTextareaModule { }\r\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/textarea/src/lib/textarea.component.ts","../../../../projects/sd-core/textarea/src/lib/textarea.module.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdTextarea","ref","_this","_name","uuid.v4","_form","rows","modelChange","EventEmitter","sdChange","required","_pattern","_validator","_autoHeight_1","isFocused","formControl","SdFormControl","_subscription","Subscription","onFocus","onBlur","val","_a","toString","trim","setValue","onClick","sdView","templateRef","disabled","focus","blur","_b","textarea","nativeElement","setTimeout","_onChange","style","height","emit","_onInput","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","maxlength","maxLength","pattern","_customValidator","setValidators","setAsyncValidators","updateValueAndValidity","func","c","message","_e","customValidator","defineProperty","prototype","NgForm","form","validator","disable","enable","ngOnInit","add","sdChanges","subscribe","markForCheck","valueChanges","addControl","ngAfterViewInit","setAttribute","_d","_c","scrollHeight","ngOnDestroy","removeControl","unsubscribe","Component","args","selector","template","ChangeDetectorRef","Input","Output","ViewChild","ContentChild","SdViewDefDirective","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatIconModule","MatTooltipModule","SdTranslateModule","SdCommonModule","declarations","exports"],"mappings":"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","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 || Array.prototype.slice.call(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 { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, ViewEncapsulation, OnInit, ContentChild, ViewChild, ElementRef } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { AbstractControl, AsyncValidatorFn, FormGroup, NgForm, ValidatorFn, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\r\n\r\n@Component({\r\n selector: 'sd-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss']\r\n})\r\n\r\nexport class SdTextarea implements OnInit, AfterViewInit, OnDestroy {\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n @Input() rows = 5;\r\n @Input() set model(value: any) {\r\n if (this.formControl.value !== value) {\r\n this.formControl.setValue(value);\r\n }\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter<any>();\r\n\r\n // Optional\r\n required = false;\r\n @Input('required') set _required(val: boolean | '') {\r\n this.required = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n maxlength: number;\r\n @Input('maxlength') set _maxlength(val: number) {\r\n this.maxlength = +val;\r\n this.#updateValidator();\r\n }\r\n #pattern: string;\r\n @Input() set pattern(val: string) {\r\n this.#pattern = val;\r\n this.#updateValidator();\r\n }\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n #autoHeight = false;\r\n @Input('autoHeight') set _autoHeight(val: boolean | '') {\r\n this.#autoHeight = (val === '') || val;\r\n }\r\n @ViewChild('textarea') textarea: ElementRef;\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n formControl = new SdFormControl();\r\n #subscription = new Subscription();\r\n constructor(private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.sdChanges.subscribe(() => {\r\n // this.formControl.updateValueAndValidity();\r\n this.ref.markForCheck();\r\n }));\r\n this.#subscription.add(this.formControl.valueChanges.subscribe(this.#onChange));\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if(this.#autoHeight) {\r\n this.textarea?.nativeElement?.setAttribute('style',`height: ${this.textarea?.nativeElement?.scrollHeight}px;overflow-y:hidden;`)\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n onFocus = () => {\r\n this.isFocused = true;\r\n }\r\n\r\n onBlur = () => {\r\n this.isFocused = false;\r\n const val: string = (this.formControl.value ?? '').toString();\r\n if (val.length > val.trim().length) {\r\n this.formControl.setValue(val.trim());\r\n }\r\n }\r\n\r\n onClick = () => {\r\n if(this.sdView?.templateRef) {\r\n if(!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n blur = () => {\r\n this.textarea?.nativeElement?.blur();\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.textarea?.nativeElement?.focus();\r\n }, 100);\r\n }\r\n\r\n #onChange = (value: any) => {\r\n if(this.#autoHeight) {\r\n this.textarea.nativeElement.style.height = 'auto';\r\n this.textarea.nativeElement.style.height = (this.textarea.nativeElement.scrollHeight) + 'px';\r\n }\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n\r\n #onInput = function () {\r\n // this.style.height = 'auto';\r\n // this.style.height = (this.scrollHeight) + 'px';\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.required) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.maxlength > 0) {\r\n validators.push(Validators.maxLength(this.maxlength));\r\n }\r\n if (this.#pattern) {\r\n validators.push(Validators.pattern(this.#pattern));\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdTextarea } from './textarea.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n SdTranslateModule,\r\n SdCommonModule\r\n ],\r\n declarations: [\r\n SdTextarea\r\n ],\r\n exports: [\r\n SdCommonModule,\r\n SdTextarea\r\n ]\r\n})\r\nexport class SdTextareaModule { }\r\n"]}
@@ -187,7 +187,7 @@ export class SdAutocomplete {
187
187
  }
188
188
  ngOnInit() {
189
189
  __classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
190
- this.formControl.updateValueAndValidity();
190
+ // this.formControl.updateValueAndValidity();
191
191
  this.ref.markForCheck();
192
192
  }));
193
193
  __classPrivateFieldGet(this, _subscription).add(this.inputControl.sdChanges.subscribe(() => {
@@ -306,4 +306,4 @@ SdAutocomplete.propDecorators = {
306
306
  input: [{ type: ViewChild, args: ['input',] }],
307
307
  sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }]
308
308
  };
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBSVosaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsRUFFeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQWUsTUFBTSxFQUFFLFVBQVUsRUFBZ0UsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE1BQU0sK0JBQStCO0lBQ25DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUNqRCxZQUFZLENBQUMsT0FBMkIsRUFBRSxJQUF3Qzs7UUFDaEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sS0FBSSxDQUFDLE9BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsS0FBSyxZQUFJLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztDQUNGO0FBUUQsTUFBTSxPQUFPLGNBQWM7SUFrR3pCLFlBQ1UsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE3RmhDLE9BQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLHlCQUF3QjtRQUV4QixpQkFBUyxDQUFDLEVBQUMsQ0FBQyx5RkFBeUY7UUFDckcsZ0JBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDO1FBTWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQyxZQUFPLEdBQUcsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEUsd0JBQWlCO1FBZWpCLHdCQUFnQixJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLEVBQUM7UUFhbkQsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQVlYLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWF4QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBS25CLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUs1Qix3QkFBZ0IsSUFBSSxZQUFZLEVBQUUsRUFBQztRQUduQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLGlCQUVJLEVBQUUsRUFBQztRQUNQLGdCQUVJLEVBQUUsRUFBQztRQXlGUCxhQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN2QixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDNUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7d0JBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzFCO2lCQUNGO3FCQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUMvQyxNQUFNLEdBQUcsR0FBRyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxJQUFJLENBQUMsVUFBVSxNQUFLLElBQUksQ0FBQztvQkFDNUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUU7d0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzFCO2lCQUNGO2dCQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtvQkFDN0IsU0FBUyxFQUFFLEtBQUs7aUJBQ2pCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsWUFBTyxHQUFHLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLDhDQUE4QztRQUNoRCxDQUFDLENBQUE7UUFFRCxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUM3QixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUE7UUFFRCxZQUFPLEdBQUcsR0FBRyxFQUFFOztZQUNiLFVBQUksSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxFQUFFO2dCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2Q7YUFDRjtRQUNILENBQUMsQ0FBQTtRQUVELFNBQUksR0FBRyxHQUFHLEVBQUU7O1lBQ1YsWUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLDBDQUFFLElBQUksR0FBRztRQUNwQyxDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTs7Z0JBQ2QsTUFBQSxJQUFJLENBQUMsbUJBQW1CLDBDQUFFLFNBQVMsR0FBRztnQkFDdEMsWUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLDBDQUFFLEtBQUssR0FBRztZQUNyQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsQ0FBQyxNQUFZLEVBQUUsRUFBRTs7WUFDdkIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsR0FBRztZQUMxQixNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsMENBQWlCO2dCQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBQyxNQUFhLEVBQUUsRUFBRTs7WUFDM0IsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsR0FBRztZQUMxQixNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsVUFBVSxHQUFHO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFBO1FBRUQsZUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFBO1FBRUQsMkJBQW1CLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1lBQ3JDLGtEQUFrRDtZQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QseUJBQXlCO1lBQ3pCLGtFQUFrRTtZQUNsRSxJQUFJO1lBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0Msd0RBQXdEO1lBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM1QyxDQUFDLEVBQUE7SUEvS0QsQ0FBQztJQW5HRCxJQUFhLEdBQUcsQ0FBQyxLQUFVO1FBQ3pCLHVCQUFBLElBQUksVUFBVSxFQUFFLEVBQUM7UUFDakIsdUJBQUEsSUFBSSxTQUFTLEVBQUUsRUFBQztJQUNsQixDQUFDO0lBT0QsSUFBYSxJQUFJLENBQUMsR0FBVztRQUMzQixJQUFJLEdBQUcsRUFBRTtZQUNQLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7U0FDbEI7SUFDSCxDQUFDO0lBT0QsSUFBYSxJQUFJLENBQUMsR0FBdUI7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLEdBQUcsWUFBWSxNQUFNLEVBQUU7Z0JBQ3pCLHVCQUFBLElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFPRCxJQUFhLEtBQUssQ0FBQyxLQUFxQztRQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsNENBQW1CLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM3QjthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQiw0Q0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDTCw0Q0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLHVCQUFBLElBQUksVUFBVSxHQUFHLEVBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQU9ELElBQWEsS0FBSyxDQUFDLEtBQWtDO1FBQ25ELHVCQUFBLElBQUksVUFBVSxLQUFLLEVBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQVFELFdBQVc7SUFDWCxJQUFhLFFBQVEsQ0FBQyxHQUFpQjtRQUNyQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQzFCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEMsb0RBQUEsSUFBSSxDQUFtQixDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFrQyxvQkFBb0IsQ0FBQyxHQUFpQjtRQUN0RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQy9DLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQWlCRCxRQUFRO1FBQ04sNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSiw0Q0FBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDakMsNENBQW1CLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxzQ0FBYSxDQUFDO1NBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkUsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUM5QixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxVQUFVLEVBQUU7Z0JBQ2pDLElBQUkscUNBQVksVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUN6QyxPQUFPLHFDQUFZLFVBQVUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2lCQUMvQztnQkFDRCxJQUFJLEdBQXNCLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksSUFBSSxZQUFZLE9BQU8sRUFBRTtvQkFDM0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsR0FBRyxHQUFHLElBQUksQ0FBQTtpQkFDWDtnQkFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDekIscUNBQVksVUFBVSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDckMsTUFBTSxDQUFDLE1BQU0sc0NBQWEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxxQ0FBWSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDcEYsT0FBTyxxQ0FBWSxVQUFVLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sS0FBSztpQkFDVCxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2lCQUNsQixZQUFZLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7WUFDNUIsNENBQW1CLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBQyxDQUFDO2FBQ3RFLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3pCLDZHQUE2RztZQUM3Ryw4RkFBOEY7WUFDOUYsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNoQjtZQUNELElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFVBQVUsRUFBRTtvQkFDakMsSUFBSSxvQ0FBVyxHQUFHLENBQUMsRUFBRTt3QkFDbkIsT0FBTyxFQUFFLENBQUMsb0NBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDNUI7b0JBQ0QsSUFBSSxHQUFzQixDQUFDO29CQUMzQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM5QixJQUFJLElBQUksWUFBWSxPQUFPLEVBQUU7d0JBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQy9CO3lCQUFNO3dCQUNMLEdBQUcsR0FBRyxJQUFJLENBQUM7cUJBQ1o7b0JBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekIsTUFBTSxDQUFDLE1BQU0sc0NBQWEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ2pFLE9BQU8sb0NBQVcsR0FBRyxDQUFDLElBQUk7NEJBQ3hCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUc7NEJBQ3RCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUc7eUJBQ3pCLENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDTDtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO1lBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsc0RBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFHLElBQUksQ0FBQyxZQUFZLG9DQUFLLElBQUksbUNBQUksSUFBSSxDQUFDLFdBQVcsbUNBQUksSUFBSSxDQUFDLEtBQUssbUNBQUksRUFBRSxHQUFBLENBQUMsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFRCxlQUFlOztRQUNiLG1GQUFZLFVBQVUsc0NBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUN2RCxDQUFDO0lBRUQsV0FBVzs7UUFDVCw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7UUFDakMsbUZBQVksYUFBYSxzQ0FBYTtJQUN4QyxDQUFDOzs7O1lBL0xGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix5cEZBQTRDO2dCQUU1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQTVCQyxpQkFBaUI7OztrQkE4QmhCLEtBQUs7a0NBSUwsU0FBUyxTQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO21CQU1sRSxLQUFLO21CQVNMLEtBQUs7bUJBRUwsS0FBSztvQkFTTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLO29CQUdMLEtBQUs7b0JBWUwsS0FBSztvQkFLTCxLQUFLO3FDQUtMLFlBQVksU0FBQyxpQ0FBaUM7eUJBQzlDLEtBQUs7cUJBQ0wsTUFBTTswQkFDTixNQUFNO3VCQUNOLE1BQU07dUJBR04sS0FBSzt1QkFXTCxLQUFLO21DQUtMLEtBQUssU0FBQyxxQkFBcUI7b0JBSzNCLFNBQVMsU0FBQyxPQUFPO3FCQUNqQixZQUFZLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBkZWJvdW5jZVRpbWUsIG1hcCwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIEFzeW5jVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRvY29tcGxldGUtZGlzcGxheS1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFNkRm9ybUNvbnRyb2wsIFNkVmlld0RlZkRpcmVjdGl2ZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbmNsYXNzIFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHNldCBrZXkodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy4jY2FjaGUgPSB7fTtcclxuICAgIHRoaXMuI2l0ZW0gPSB7fTtcclxuICB9XHJcbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAjbW9kZWw6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgI2RlbGF5ID0gMDsgLy8gU2F1IGtob+G6o25nIHRo4budaSBnaWFuIGRlbGF5IG7hur91IGtow7RuZyBjw7MgdGhheSDEkeG7lWkgdGjDrCB0aMOsIG3hu5tpIGLhuq90IMSR4bqndSB0aOG7sWMgaGnhu4duIGfhu41pIGjDoG1cclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gICNpdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuaW5wdXRDb250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICBvYnMgPSBkZWZlcigoKSA9PiBmcm9tKGZ1bmMpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSA9IGRhdGEgfHwgW107XHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNpdGVtLCBBcnJheS50b09iamVjdCh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSwgdGhpcy52YWx1ZUZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdO1xyXG4gICAgICAgICAgICB9KSwgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAgICAgICAuc2VhcmNoKHNlYXJjaFRleHQsIFt0aGlzLnZhbHVlRmllbGQsIHRoaXMuZGlzcGxheUZpZWxkXSlcclxuICAgICAgICAgICAgLnBhZ2luZyh0aGlzLmxpbWl0KVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSldKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgdmFsXSkgPT4ge1xyXG4gICAgICAgICAgLy8gVsOsIG3hu5l0IHPhu5EgbMO9IGRvIGNoxrBhIHjDoWMgxJHhu4tuaCBtw6Aga2hpIHPhu60gZOG7pW5nIHNkVmlld0RlZiB0aMOsIGtoaSBjaHV54buDbiBzYW5nIGThuqFuZyB2aWV3IHPhur0gdHJpZ2dlciB2YWwgPSBudWxsXHJcbiAgICAgICAgICAvLyBOaMawbmcgZm9ybUNvbnRyb2wudmFsdWUgduG6q24gY8OzIGdpw6EgdHLhu4sgxJHDum5nIG7Dqm4gdGjhu7FjIGhp4buHbiBnw6FuIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICB2YWwgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHZhbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodmFsIHx8IHZhbCA9PT0gMCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy4jaXRlbVt2YWxdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy4jaXRlbVt2YWxdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVuYyA9IGl0ZW1zKHZhbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZ1bmMgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBkZWZlcigoKSA9PiBmcm9tKGZ1bmMpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2JzID0gZnVuYztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4jaXRlbSwgQXJyYXkudG9PYmplY3QoZGF0YSwgdGhpcy52YWx1ZUZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jaXRlbVt2YWxdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbCxcclxuICAgICAgICAgICAgICAgICAgW3RoaXMuZGlzcGxheUZpZWxkXTogdmFsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gb2YoaXRlbXMuZmluZChlID0+IGVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdmFsKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoJycpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmNvbnRyb2xQbGFjZUhvbGRlciA9IHRoaXMuc2VsZWN0ZWQucGlwZShtYXAoaXRlbSA9PiBpdGVtPy5bdGhpcy5kaXNwbGF5RmllbGRdID8/IGl0ZW0gPz8gdGhpcy5wbGFjZWhvbGRlciA/PyB0aGlzLmxhYmVsID8/ICcnKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgaWYgKHR5cGVvZiAoaXRlbSkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiAoaXRlbSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IGl0ZW0pIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdIHx8IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAvLyB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2RWaWV3Py50ZW1wbGF0ZVJlZikge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQgJiYgIXRoaXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBibHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5vcGVuUGFuZWwoKTtcclxuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbD8uc2V0VmFsdWUoJycpO1xyXG4gICAgaWYgKHRoaXMuI21vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY3Rpb24gPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8uY2xvc2VQYW5lbCgpO1xyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIC8vIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIC8vIGlmICh0aGlzLiN2YWxpZGF0b3IpIHtcclxuICAgIC8vICAgYXN5bmNWYWxpZGF0b3JzLnB1c2godGhpcy4jY3VzdG9tVmFsaWRhdG9yKHRoaXMuI3ZhbGlkYXRvcikpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgLy8gdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBSVosaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsRUFFeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQWUsTUFBTSxFQUFFLFVBQVUsRUFBZ0UsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE1BQU0sK0JBQStCO0lBQ25DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUNqRCxZQUFZLENBQUMsT0FBMkIsRUFBRSxJQUF3Qzs7UUFDaEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7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QVksYUFBYSxzQ0FBYTtJQUN4QyxDQUFDOzs7O1lBL0xGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix5cEZBQTRDO2dCQUU1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQTVCQyxpQkFBaUI7OztrQkE4QmhCLEtBQUs7a0NBSUwsU0FBUyxTQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO21CQU1sRSxLQUFLO21CQVNMLEtBQUs7bUJBRUwsS0FBSztvQkFTTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLO29CQUdMLEtBQUs7b0JBWUwsS0FBSztvQkFLTCxLQUFLO3FDQUtMLFlBQVksU0FBQyxpQ0FBaUM7eUJBQzlDLEtBQUs7cUJBQ0wsTUFBTTswQkFDTixNQUFNO3VCQUNOLE1BQU07dUJBR04sS0FBSzt1QkFXTCxLQUFLO21DQUtMLEtBQUssU0FBQyxxQkFBcUI7b0JBSzNCLFNBQVMsU0FBQyxPQUFPO3FCQUNqQixZQUFZLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBkZWJvdW5jZVRpbWUsIG1hcCwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIEFzeW5jVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVmZXIsIGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9hdXRvY29tcGxldGUtZGlzcGxheS1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFNkRm9ybUNvbnRyb2wsIFNkVmlld0RlZkRpcmVjdGl2ZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbmNsYXNzIFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHsgfVxyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzU3VibWl0dGVkID0gZm9ybSAmJiBmb3JtLnN1Ym1pdHRlZDtcclxuICAgIHJldHVybiAhISh0aGlzLmZvcm1Db250cm9sPy5pbnZhbGlkICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sPy50b3VjaGVkIHx8IGlzU3VibWl0dGVkKSk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHNldCBrZXkodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy4jY2FjaGUgPSB7fTtcclxuICAgIHRoaXMuI2l0ZW0gPSB7fTtcclxuICB9XHJcbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAjbW9kZWw6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgI2RlbGF5ID0gMDsgLy8gU2F1IGtob+G6o25nIHRo4budaSBnaWFuIGRlbGF5IG7hur91IGtow7RuZyBjw7MgdGhheSDEkeG7lWkgdGjDrCB0aMOsIG3hu5tpIGLhuq90IMSR4bqndSB0aOG7sWMgaGnhu4duIGfhu41pIGjDoG1cclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gICNpdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuaW5wdXRDb250cm9sLnNkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICBvYnMgPSBkZWZlcigoKSA9PiBmcm9tKGZ1bmMpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSA9IGRhdGEgfHwgW107XHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNpdGVtLCBBcnJheS50b09iamVjdCh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSwgdGhpcy52YWx1ZUZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdO1xyXG4gICAgICAgICAgICB9KSwgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAgICAgICAuc2VhcmNoKHNlYXJjaFRleHQsIFt0aGlzLnZhbHVlRmllbGQsIHRoaXMuZGlzcGxheUZpZWxkXSlcclxuICAgICAgICAgICAgLnBhZ2luZyh0aGlzLmxpbWl0KVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSldKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgdmFsXSkgPT4ge1xyXG4gICAgICAgICAgLy8gVsOsIG3hu5l0IHPhu5EgbMO9IGRvIGNoxrBhIHjDoWMgxJHhu4tuaCBtw6Aga2hpIHPhu60gZOG7pW5nIHNkVmlld0RlZiB0aMOsIGtoaSBjaHV54buDbiBzYW5nIGThuqFuZyB2aWV3IHPhur0gdHJpZ2dlciB2YWwgPSBudWxsXHJcbiAgICAgICAgICAvLyBOaMawbmcgZm9ybUNvbnRyb2wudmFsdWUgduG6q24gY8OzIGdpw6EgdHLhu4sgxJHDum5nIG7Dqm4gdGjhu7FjIGhp4buHbiBnw6FuIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICB2YWwgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHZhbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodmFsIHx8IHZhbCA9PT0gMCkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy4jaXRlbVt2YWxdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy4jaXRlbVt2YWxdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVuYyA9IGl0ZW1zKHZhbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZ1bmMgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBkZWZlcigoKSA9PiBmcm9tKGZ1bmMpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2JzID0gZnVuYztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9icy5waXBlKG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4jaXRlbSwgQXJyYXkudG9PYmplY3QoZGF0YSwgdGhpcy52YWx1ZUZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jaXRlbVt2YWxdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbCxcclxuICAgICAgICAgICAgICAgICAgW3RoaXMuZGlzcGxheUZpZWxkXTogdmFsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gb2YoaXRlbXMuZmluZChlID0+IGVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdmFsKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoJycpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmNvbnRyb2xQbGFjZUhvbGRlciA9IHRoaXMuc2VsZWN0ZWQucGlwZShtYXAoaXRlbSA9PiBpdGVtPy5bdGhpcy5kaXNwbGF5RmllbGRdID8/IGl0ZW0gPz8gdGhpcy5wbGFjZWhvbGRlciA/PyB0aGlzLmxhYmVsID8/ICcnKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgaWYgKHR5cGVvZiAoaXRlbSkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiAoaXRlbSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IGl0ZW0pIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdIHx8IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAvLyB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycsIHtcclxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2RWaWV3Py50ZW1wbGF0ZVJlZikge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQgJiYgIXRoaXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBibHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyPy5vcGVuUGFuZWwoKTtcclxuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbD8uc2V0VmFsdWUoJycpO1xyXG4gICAgaWYgKHRoaXMuI21vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY3Rpb24gPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8uY2xvc2VQYW5lbCgpO1xyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIC8vIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIC8vIGlmICh0aGlzLiN2YWxpZGF0b3IpIHtcclxuICAgIC8vICAgYXN5bmNWYWxpZGF0b3JzLnB1c2godGhpcy4jY3VzdG9tVmFsaWRhdG9yKHRoaXMuI3ZhbGlkYXRvcikpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgLy8gdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
@@ -184,7 +184,7 @@ export class SdDateMonth {
184
184
  ngOnInit() {
185
185
  var _a;
186
186
  __classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
187
- this.formControl.updateValueAndValidity();
187
+ // this.formControl.updateValueAndValidity();
188
188
  this.ref.markForCheck();
189
189
  }));
190
190
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.addControl(__classPrivateFieldGet(this, _name), this.formControl);
@@ -230,4 +230,4 @@ SdDateMonth.propDecorators = {
230
230
  input: [{ type: ViewChild, args: ['input',] }],
231
231
  datePicker: [{ type: ViewChild, args: [MatDatepicker,] }]
232
232
  };
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tb250aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2RhdGUtbW9udGgvIiwic291cmNlcyI6WyJzcmMvbGliL2RhdGUtbW9udGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFFakIsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxNQUFnQixNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQVksTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFFcEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxTQUFTO0tBQ3JCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLFNBQVM7UUFDcEIsY0FBYyxFQUFFLFVBQVU7UUFDMUIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUM7QUFXRixNQUFNLE9BQU8sV0FBVztJQWdIdEIsWUFDVSxHQUFzQixFQUM5QixhQUFvQztRQUQ1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWhIaEMsT0FBRSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDckIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLHdCQUFXO1FBQ1gsZ0JBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDO1FBT2xCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQU81QixnQkFBVyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFzQmxDLHdCQUFpQjtRQW9CakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQWdDVCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWE5QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Msd0JBQWdCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFJbkMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQXdCbEIsWUFBTyxHQUFHLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtRQUVELFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUE7UUFFRCxZQUFPLEdBQUcsR0FBRyxFQUFFOztZQUNiLFVBQUksSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxFQUFFO2dCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2Q7YUFDRjtRQUNILENBQUMsQ0FBQTtRQUVELFNBQUksR0FBRyxHQUFHLEVBQUU7O1lBQ1YsWUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLDBDQUFFLElBQUksR0FBRztRQUNwQyxDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTs7Z0JBQ2QsWUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxhQUFhLDBDQUFFLEtBQUssR0FBRztnQkFDbkMsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxJQUFJLEdBQUc7WUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFBO1FBRUQsYUFBUSxHQUFHLENBQUMsS0FBc0MsRUFBRSxFQUFFOztZQUNwRCxNQUFNLEtBQUssU0FBRyxLQUFLLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQyxZQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLGFBQWEsMENBQUUsS0FBSyxHQUFHO1lBQ25DLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksSUFBSSxJQUFJLHFDQUFZLEtBQUssS0FBSyxFQUFFO29CQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNCO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxRQUFDLElBQUksQ0FBQyxXQUFXLDBDQUFFLEtBQUssQ0FBQSxFQUFFO29CQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzFCO2FBQ0Y7UUFDSCxDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN0QixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsZUFBZSxHQUFHO1lBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUE7UUFFRCxvQkFBZSxHQUFHLENBQUMsc0JBQThCLEVBQUUsVUFBaUMsRUFBRSxFQUFFO1lBQ3RGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRCxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQTtRQWhGQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQS9HRCxJQUFhLElBQUksQ0FBQyxHQUFXO1FBQzNCLElBQUksR0FBRyxFQUFFO1lBQ1AsdUJBQUEsSUFBSSxTQUFTLEdBQUcsRUFBQztTQUNsQjtJQUNILENBQUM7SUFJRCxJQUFrQyxvQkFBb0IsQ0FBQyxHQUFpQjtRQUN0RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQy9DLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUtELElBQWtCLElBQUksQ0FBQyxHQUFrQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBSUQsSUFBa0IsSUFBSSxDQUFDLEdBQWtCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNqQjtJQUNILENBQUM7SUFJRCxJQUFhLElBQUksQ0FBQyxHQUF1QjtRQUN2QyxJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksR0FBRyxZQUFZLE1BQU0sRUFBRTtnQkFDekIsdUJBQUEsSUFBSSxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsdUJBQUEsSUFBSSxTQUFTLEdBQUcsRUFBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLEdBQWlCO1FBQ3JDLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDMUIsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUlELElBQWEsUUFBUSxDQUFDLEdBQWlCO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQU1ELElBQWEsT0FBTyxDQUFDLEdBQWtCO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxHQUFrQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBS0QsSUFBYSxLQUFLLENBQUMsR0FBUTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ1o7UUFDRCxJQUFJLHdDQUFlLEdBQUcsRUFBRTtZQUN0Qix1QkFBQSxJQUFJLFNBQVMsR0FBRyxFQUFDO1lBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLHFDQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxzQ0FBYSxxQkFBcUIsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM5SCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFlRCxXQUFXOztRQUNULG1GQUFZLGFBQWEsc0NBQWE7UUFDdEMsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFROztRQUNOLDRDQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osbUZBQVksVUFBVSxzQ0FBYSxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ3ZELENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQzs7OztZQTdJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDhoRUFBMEM7Z0JBRTFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxTQUFTLEVBQUU7b0JBQ1QsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBQztpQkFDbEQ7O2FBQ0Y7OztZQXJDQyxpQkFBaUI7WUFVWCxxQkFBcUI7OzttQkFpQzFCLEtBQUs7bUNBUUwsS0FBSyxTQUFDLHFCQUFxQjttQkFRM0IsS0FBSyxTQUFDLEtBQUs7bUJBVVgsS0FBSyxTQUFDLEtBQUs7bUJBUVgsS0FBSzttQkFFTCxLQUFLO3VCQVVMLEtBQUs7dUJBV0wsS0FBSztvQkFTTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFFTCxLQUFLO3NCQVFMLEtBQUs7d0JBUUwsS0FBSzt1QkFDTCxNQUFNO29CQUVOLEtBQUs7MEJBV0wsTUFBTTtxQkFFTixZQUFZLFNBQUMsa0JBQWtCO29CQUMvQixTQUFTLFNBQUMsT0FBTzt5QkFDakIsU0FBUyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IG1vbWVudCwge01vbWVudH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHtGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0RldmljZURldGVjdG9yU2VydmljZX0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlciwgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge05neE1hdERhdGV0aW1lUGlja2VyLH0gZnJvbSAnQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9kYXRldGltZS1waWNrZXInO1xyXG5pbXBvcnQge01BVF9EQVRFX0ZPUk1BVFN9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2RGb3JtQ29udHJvbCwgU2RWaWV3RGVmRGlyZWN0aXZlfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiAnTU0vWVlZWScsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdNTS9ZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXHJcbiAgfSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZGF0ZS1tb250aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtbW9udGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtbW9udGguY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUU31cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZERhdGVNb250aCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgI2RhdGU6IGFueTtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoJ2Rpc2FibGVFcnJvck1lc3NhZ2UnKSBzZXQgX2Rpc2FibGVFcnJvck1lc3NhZ2UodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuZGlzYWJsZUVycm9yTWVzc2FnZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIG1pbjogRGF0ZTtcclxuXHJcbiAgQElucHV0KCdtaW4nKSBzZXQgX21pbih2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWluID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWluID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1heDogRGF0ZTtcclxuXHJcbiAgQElucHV0KCdtYXgnKSBzZXQgX21heCh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVmYXVsdFRpbWU6IGFueTtcclxuXHJcbiAgQElucHV0KCkgc2V0IG1pbkRhdGUodmFsOiBzdHJpbmcgfCBEYXRlKSB7XHJcbiAgICBpZiAoRGF0ZS5pc0RhdGUodmFsKSkge1xyXG4gICAgICB0aGlzLm1pbiA9IG5ldyBEYXRlKHZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgbWF4RGF0ZSh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWw6IGFueSkge1xyXG4gICAgaWYgKCFEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHZhbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jZGF0ZSAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMuI2RhdGUgPSB2YWw7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBEYXRlLmlzRGF0ZSh0aGlzLiNkYXRlKSA/IG1vbWVudChEYXRlLnRvRm9ybWF0KHRoaXMuI2RhdGUsICdNTS9kZC95eXl5IEhIOm1tOnNzJyksICdNTS9ERC9ZWVlZIEhIOm1tOnNzJykgOiBudWxsO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQENvbnRlbnRDaGlsZChTZFZpZXdEZWZEaXJlY3RpdmUpIHNkVmlldzogU2RWaWV3RGVmRGlyZWN0aXZlO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChNYXREYXRlcGlja2VyKSBkYXRlUGlja2VyOiBNYXREYXRlcGlja2VyPE1vbWVudD47XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICB0aGlzLmRhdGVQaWNrZXI/Lm9wZW4oKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChldmVudDogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8TW9tZW50PikgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZT8udG9EYXRlKCk7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmIChuZXcgRGF0ZSh0aGlzLiNkYXRlKSAhPT0gdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbD8udmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhBbmRZZWFyID0gKG5vcm1hbGl6ZWRNb250aEFuZFllYXI6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSA9PiB7XHJcbiAgICBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIHx8IG1vbWVudCgpO1xyXG4gICAgY3RybFZhbHVlLm1vbnRoKG5vcm1hbGl6ZWRNb250aEFuZFllYXIubW9udGgoKSk7XHJcbiAgICBjdHJsVmFsdWUueWVhcihub3JtYWxpemVkTW9udGhBbmRZZWFyLnllYXIoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGN0cmxWYWx1ZSk7XHJcbiAgICBkYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoY3RybFZhbHVlKTtcclxuICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChjdHJsVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tb250aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2RhdGUtbW9udGgvIiwic291cmNlcyI6WyJzcmMvbGliL2RhdGUtbW9udGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFFakIsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxNQUFnQixNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQVksTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFFcEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxTQUFTO0tBQ3JCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLFNBQVM7UUFDcEIsY0FBYyxFQUFFLFVBQVU7UUFDMUIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUM7QUFXRixNQUFNLE9BQU8sV0FBVztJQWdIdEIsWUFDVSxH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RUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFROztRQUNOLDRDQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvRCw2Q0FBNkM7WUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osbUZBQVksVUFBVSxzQ0FBYSxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ3ZELENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQzs7OztZQTdJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDhoRUFBMEM7Z0JBRTFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxTQUFTLEVBQUU7b0JBQ1QsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBQztpQkFDbEQ7O2FBQ0Y7OztZQXJDQyxpQkFBaUI7WUFVWCxxQkFBcUI7OzttQkFpQzFCLEtBQUs7bUNBUUwsS0FBSyxTQUFDLHFCQUFxQjttQkFRM0IsS0FBSyxTQUFDLEtBQUs7bUJBVVgsS0FBSyxTQUFDLEtBQUs7bUJBUVgsS0FBSzttQkFFTCxLQUFLO3VCQVVMLEtBQUs7dUJBV0wsS0FBSztvQkFTTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFFTCxLQUFLO3NCQVFMLEtBQUs7d0JBUUwsS0FBSzt1QkFDTCxNQUFNO29CQUVOLEtBQUs7MEJBV0wsTUFBTTtxQkFFTixZQUFZLFNBQUMsa0JBQWtCO29CQUMvQixTQUFTLFNBQUMsT0FBTzt5QkFDakIsU0FBUyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IG1vbWVudCwge01vbWVudH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHtGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0RldmljZURldGVjdG9yU2VydmljZX0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlciwgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge05neE1hdERhdGV0aW1lUGlja2VyLH0gZnJvbSAnQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9kYXRldGltZS1waWNrZXInO1xyXG5pbXBvcnQge01BVF9EQVRFX0ZPUk1BVFN9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2RGb3JtQ29udHJvbCwgU2RWaWV3RGVmRGlyZWN0aXZlfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiAnTU0vWVlZWScsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdNTS9ZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXHJcbiAgfSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZGF0ZS1tb250aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtbW9udGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtbW9udGguY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUU31cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZERhdGVNb250aCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgI2RhdGU6IGFueTtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoJ2Rpc2FibGVFcnJvck1lc3NhZ2UnKSBzZXQgX2Rpc2FibGVFcnJvck1lc3NhZ2UodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuZGlzYWJsZUVycm9yTWVzc2FnZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIG1pbjogRGF0ZTtcclxuXHJcbiAgQElucHV0KCdtaW4nKSBzZXQgX21pbih2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWluID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWluID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1heDogRGF0ZTtcclxuXHJcbiAgQElucHV0KCdtYXgnKSBzZXQgX21heCh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVmYXVsdFRpbWU6IGFueTtcclxuXHJcbiAgQElucHV0KCkgc2V0IG1pbkRhdGUodmFsOiBzdHJpbmcgfCBEYXRlKSB7XHJcbiAgICBpZiAoRGF0ZS5pc0RhdGUodmFsKSkge1xyXG4gICAgICB0aGlzLm1pbiA9IG5ldyBEYXRlKHZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgbWF4RGF0ZSh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWw6IGFueSkge1xyXG4gICAgaWYgKCFEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHZhbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jZGF0ZSAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMuI2RhdGUgPSB2YWw7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBEYXRlLmlzRGF0ZSh0aGlzLiNkYXRlKSA/IG1vbWVudChEYXRlLnRvRm9ybWF0KHRoaXMuI2RhdGUsICdNTS9kZC95eXl5IEhIOm1tOnNzJyksICdNTS9ERC9ZWVlZIEhIOm1tOnNzJykgOiBudWxsO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQENvbnRlbnRDaGlsZChTZFZpZXdEZWZEaXJlY3RpdmUpIHNkVmlldzogU2RWaWV3RGVmRGlyZWN0aXZlO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChNYXREYXRlcGlja2VyKSBkYXRlUGlja2VyOiBNYXREYXRlcGlja2VyPE1vbWVudD47XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICB0aGlzLmRhdGVQaWNrZXI/Lm9wZW4oKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChldmVudDogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8TW9tZW50PikgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZT8udG9EYXRlKCk7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmIChuZXcgRGF0ZSh0aGlzLiNkYXRlKSAhPT0gdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbD8udmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhBbmRZZWFyID0gKG5vcm1hbGl6ZWRNb250aEFuZFllYXI6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSA9PiB7XHJcbiAgICBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIHx8IG1vbWVudCgpO1xyXG4gICAgY3RybFZhbHVlLm1vbnRoKG5vcm1hbGl6ZWRNb250aEFuZFllYXIubW9udGgoKSk7XHJcbiAgICBjdHJsVmFsdWUueWVhcihub3JtYWxpemVkTW9udGhBbmRZZWFyLnllYXIoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGN0cmxWYWx1ZSk7XHJcbiAgICBkYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoY3RybFZhbHVlKTtcclxuICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChjdHJsVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -204,7 +204,7 @@ export class SdDateTime {
204
204
  ngOnInit() {
205
205
  var _a;
206
206
  __classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
207
- this.formControl.updateValueAndValidity();
207
+ // this.formControl.updateValueAndValidity();
208
208
  this.ref.markForCheck();
209
209
  }));
210
210
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.addControl(__classPrivateFieldGet(this, _name), this.formControl);
@@ -254,4 +254,4 @@ SdDateTime.propDecorators = {
254
254
  dateTimePicker: [{ type: ViewChild, args: [NgxMatDatetimePicker,] }]
255
255
  };
256
256
  export { ɵ0, ɵ1 };
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsic3JjL2xpYi9kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFFakIsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxNQUFrQixNQUFNLFFBQVEsQ0FBQztBQUN4QyxPQUFPLEVBQWEsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQTJCLE1BQU0sOEJBQThCLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixHQUFHLE1BQU0sOENBQThDLENBQUM7QUFDM0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUUsTUFBTSx1QkFBdUIsR0FBRztJQUM5QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsa0JBQWtCO0tBQzlCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2hDO0NBQ0YsQ0FBQztBQUNGLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLFlBQVk7S0FDeEI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsWUFBWTtRQUN2QixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2hDO0NBQ0YsQ0FBQztXQU95QyxtQkFBbUIsT0FDZix1QkFBdUI7QUFHdEUsTUFBTSxPQUFPLFVBQVU7SUFrR3JCLFlBQ1UsR0FBc0IsRUFDOUIsYUFBb0M7UUFENUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsR2hDLE9BQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qix3QkFBVztRQUNYLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQU1sQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFLNUIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBa0JsQyx3QkFBaUI7UUFVUixTQUFJLEdBQTJDLFVBQVUsQ0FBQztRQVNuRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBMkJULGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBWTlCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyx3QkFBZ0IsSUFBSSxZQUFZLEVBQUUsRUFBQztRQUtuQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBdUJsQixZQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUFBO1FBRUQsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQTtRQUVELFlBQU8sR0FBRyxHQUFHLEVBQUU7O1lBQ2IsVUFBSSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDZDthQUNGO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsU0FBSSxHQUFHLEdBQUcsRUFBRTs7WUFDVixZQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLGFBQWEsMENBQUUsSUFBSSxHQUFHO1FBQ3BDLENBQUMsQ0FBQTtRQUVELFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFOztnQkFDZCxZQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLGFBQWEsMENBQUUsS0FBSyxHQUFHO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUN4QixNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLElBQUksR0FBRztpQkFDekI7cUJBQU07b0JBQ0wsTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FBRSxJQUFJLEdBQUc7aUJBQzdCO2dCQUNELEVBQUU7WUFDSixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7O1lBQ3BELE1BQU0sS0FBSyxTQUFHLEtBQUssQ0FBQyxLQUFLLDBDQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLFlBQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsYUFBYSwwQ0FBRSxLQUFLLEdBQUc7WUFDbkMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxJQUFJLElBQUkscUNBQVksS0FBSyxLQUFLLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDM0I7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLFFBQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsS0FBSyxDQUFBLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtRQUNILENBQUMsQ0FBQTtRQUVELFVBQUssR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlLEdBQUc7WUFDMUIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQTtRQUVELG9CQUFlLEdBQUcsQ0FBQyxzQkFBOEIsRUFBRSxVQUFpQyxFQUFFLEVBQUU7WUFDdEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDckQsU0FBUyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFBO1FBckZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBakdELElBQWEsSUFBSSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxHQUFHLEVBQUU7WUFDUCx1QkFBQSxJQUFJLFNBQVMsR0FBRyxFQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELElBQWtDLG9CQUFvQixDQUFDLEdBQWlCO1FBQ3RFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDL0MsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFBa0IsSUFBSSxDQUFDLEdBQWtCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxJQUFrQixJQUFJLENBQUMsR0FBa0I7UUFDdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUdELElBQWEsSUFBSSxDQUFDLEdBQXVCO1FBQ3ZDLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxHQUFHLFlBQVksTUFBTSxFQUFFO2dCQUN6Qix1QkFBQSxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBQzthQUN2QjtpQkFBTTtnQkFDTCx1QkFBQSxJQUFJLFNBQVMsR0FBRyxFQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMxQixJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBSUQsSUFBYSxPQUFPLENBQUMsR0FBa0I7UUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUNELElBQWEsT0FBTyxDQUFDLEdBQWtCO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNqQjtJQUNILENBQUM7SUFJRCxJQUFhLEtBQUssQ0FBQyxHQUFRO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUNELElBQUksd0NBQWUsR0FBRyxFQUFFO1lBQ3RCLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7WUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0scUNBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLHNDQUFhLHFCQUFxQixDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzlILElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQWNELFdBQVc7O1FBQ1QsbUZBQVksYUFBYSxzQ0FBYTtRQUN0Qyw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7O1FBQ04sNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixtRkFBWSxVQUFVLHNDQUFhLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDdkQsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDOzs7O1lBaElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsdzdMQUF5QztnQkFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQXFCLEVBQUU7b0JBQzVELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsSUFBeUIsRUFBRTtpQkFDckU7O2FBQ0Y7OztZQWhEQyxpQkFBaUI7WUFVVixxQkFBcUI7OzttQkE0QzNCLEtBQUs7bUNBTUwsS0FBSyxTQUFDLHFCQUFxQjttQkFNM0IsS0FBSyxTQUFDLEtBQUs7bUJBUVgsS0FBSyxTQUFDLEtBQUs7bUJBT1gsS0FBSzttQkFFTCxLQUFLO21CQVNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFTTCxLQUFLO29CQVFMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLO3NCQUNMLEtBQUs7c0JBT0wsS0FBSzt3QkFPTCxLQUFLO3VCQUNMLE1BQU07b0JBRU4sS0FBSzswQkFVTCxNQUFNO3FCQUVOLFlBQVksU0FBQyxrQkFBa0I7b0JBQy9CLFNBQVMsU0FBQyxPQUFPO3lCQUNqQixTQUFTLFNBQUMsYUFBYTs2QkFDdkIsU0FBUyxTQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciwgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTmd4TWF0RGF0ZXRpbWVQaWNrZXIsIE5HWF9NQVRfREFURV9GT1JNQVRTLCB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCwgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5cclxuY29uc3QgQ1VTVE9NX0RBVEVUSU1FX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVkgSEg6bW0nXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZIEhIOm1tJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcclxuICB9XHJcbn07XHJcbmNvbnN0IENVU1RPTV9EQVRFX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVknXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcclxuICB9XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZGF0ZS10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IENVU1RPTV9EQVRFX0ZPUk1BVFMgfSxcclxuICAgIHsgcHJvdmlkZTogTkdYX01BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBDVVNUT01fREFURVRJTUVfRk9STUFUUyB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2REYXRlVGltZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgI2RhdGU6IGFueTtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIG1pbjogRGF0ZTtcclxuICBASW5wdXQoJ21pbicpIHNldCBfbWluKHZhbDogc3RyaW5nIHwgRGF0ZSkge1xyXG4gICAgaWYgKERhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdGhpcy5taW4gPSBuZXcgRGF0ZSh2YWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5taW4gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBtYXg6IERhdGU7XHJcbiAgQElucHV0KCdtYXgnKSBzZXQgX21heCh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgdHlwZTogJ2RhdGV0aW1lJyB8ICdkYXRlJyB8ICd0aW1lJyB8ICdtb250aCcgPSAnZGF0ZXRpbWUnO1xyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBkZWZhdWx0VGltZTogYW55O1xyXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbDogc3RyaW5nIHwgRGF0ZSkge1xyXG4gICAgaWYgKERhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdGhpcy5taW4gPSBuZXcgRGF0ZSh2YWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5taW4gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgbWF4RGF0ZSh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbDogYW55KSB7XHJcbiAgICBpZiAoIURhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdmFsID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNkYXRlICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy4jZGF0ZSA9IHZhbDtcclxuICAgICAgY29uc3QgZGF0ZSA9IERhdGUuaXNEYXRlKHRoaXMuI2RhdGUpID8gbW9tZW50KERhdGUudG9Gb3JtYXQodGhpcy4jZGF0ZSwgJ01NL2RkL3l5eXkgSEg6bW06c3MnKSwgJ01NL0REL1lZWVkgSEg6bW06c3MnKSA6IG51bGw7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoTWF0RGF0ZXBpY2tlcikgZGF0ZVBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoTmd4TWF0RGF0ZXRpbWVQaWNrZXIpIGRhdGVUaW1lUGlja2VyOiBOZ3hNYXREYXRldGltZVBpY2tlcjxNb21lbnQ+O1xyXG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgICB0aGlzLmRhdGVQaWNrZXI/Lm9wZW4oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVUaW1lUGlja2VyPy5vcGVuKCk7XHJcbiAgICAgIH1cclxuICAgICAgLy9cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChldmVudDogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8TW9tZW50PikgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZT8udG9EYXRlKCk7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmIChuZXcgRGF0ZSh0aGlzLiNkYXRlKSAhPT0gdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbD8udmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhBbmRZZWFyID0gKG5vcm1hbGl6ZWRNb250aEFuZFllYXI6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSA9PiB7XHJcbiAgICBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIHx8IG1vbWVudCgpO1xyXG4gICAgY3RybFZhbHVlLm1vbnRoKG5vcm1hbGl6ZWRNb250aEFuZFllYXIubW9udGgoKSk7XHJcbiAgICBjdHJsVmFsdWUueWVhcihub3JtYWxpemVkTW9udGhBbmRZZWFyLnllYXIoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGN0cmxWYWx1ZSk7XHJcbiAgICBkYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoY3RybFZhbHVlKTtcclxuICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChjdHJsVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsic3JjL2xpYi9kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFFakIsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxNQUFrQixNQUFNLFFBQVEsQ0FBQztBQUN4QyxPQUFPLEVBQWEsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQTJCLE1BQU0sOEJBQThCLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixHQUFHLE1BQU0sOENBQThDLENBQUM7QUFDM0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUUsTUFBTSx1QkFBdUIsR0FBRztJQUM5QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsa0JBQWtCO0tBQzlCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2hDO0NBQ0YsQ0FBQztBQUNGLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLFlBQVk7S0FDeEI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsWUFBWTtRQUN2QixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2hDO0NBQ0YsQ0FBQztXQU95QyxtQkFBbUIsT0FDZix1QkFBdUI7QUFHdEUsTUFBTSxPQUFPLFVBQVU7SUFrR3JCLFlBQ1UsR0FBc0IsRUFDOUIsYUFBb0M7UUFENUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsR2hDLE9BQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qix3QkFBVztRQUNYLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQU1sQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFLNUIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBa0JsQyx3QkFBaUI7UUFVUixTQUFJLEdBQTJDLFVBQVUsQ0FBQztRQVNuRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBMkJULGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBWTlCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyx3QkFBZ0IsSUFBSSxZQUFZLEVBQUUsRUFBQztRQUtuQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBdUJsQixZQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUFBO1FBRUQsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQTtRQUVELFlBQU8sR0FBRyxHQUFHLEVBQUU7O1lBQ2IsVUFBSSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDZDthQUNGO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsU0FBSSxHQUFHLEdBQUcsRUFBRTs7WUFDVixZQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLGFBQWEsMENBQUUsSUFBSSxHQUFHO1FBQ3BDLENBQUMsQ0FBQTtRQUVELFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFOztnQkFDZCxZQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLGFBQWEsMENBQUUsS0FBSyxHQUFHO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUN4QixNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLElBQUksR0FBRztpQkFDekI7cUJBQU07b0JBQ0wsTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FBRSxJQUFJLEdBQUc7aUJBQzdCO2dCQUNELEVBQUU7WUFDSixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7O1lBQ3BELE1BQU0sS0FBSyxTQUFHLEtBQUssQ0FBQyxLQUFLLDBDQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLFlBQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsYUFBYSwwQ0FBRSxLQUFLLEdBQUc7WUFDbkMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxJQUFJLElBQUkscUNBQVksS0FBSyxLQUFLLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDM0I7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLFFBQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsS0FBSyxDQUFBLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtRQUNILENBQUMsQ0FBQTtRQUVELFVBQUssR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlLEdBQUc7WUFDMUIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQTtRQUVELG9CQUFlLEdBQUcsQ0FBQyxzQkFBOEIsRUFBRSxVQUFpQyxFQUFFLEVBQUU7WUFDdEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDckQsU0FBUyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFBO1FBckZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBakdELElBQWEsSUFBSSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxHQUFHLEVBQUU7WUFDUCx1QkFBQSxJQUFJLFNBQVMsR0FBRyxFQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELElBQWtDLG9CQUFvQixDQUFDLEdBQWlCO1FBQ3RFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDL0MsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFBa0IsSUFBSSxDQUFDLEdBQWtCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxJQUFrQixJQUFJLENBQUMsR0FBa0I7UUFDdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUdELElBQWEsSUFBSSxDQUFDLEdBQXVCO1FBQ3ZDLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxHQUFHLFlBQVksTUFBTSxFQUFFO2dCQUN6Qix1QkFBQSxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBQzthQUN2QjtpQkFBTTtnQkFDTCx1QkFBQSxJQUFJLFNBQVMsR0FBRyxFQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMxQixJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBSUQsSUFBYSxPQUFPLENBQUMsR0FBa0I7UUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUNELElBQWEsT0FBTyxDQUFDLEdBQWtCO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNqQjtJQUNILENBQUM7SUFJRCxJQUFhLEtBQUssQ0FBQyxHQUFRO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUNELElBQUksd0NBQWUsR0FBRyxFQUFFO1lBQ3RCLHVCQUFBLElBQUksU0FBUyxHQUFHLEVBQUM7WUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0scUNBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLHNDQUFhLHFCQUFxQixDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzlILElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQWNELFdBQVc7O1FBQ1QsbUZBQVksYUFBYSxzQ0FBYTtRQUN0Qyw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7O1FBQ04sNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9ELDZDQUE2QztZQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixtRkFBWSxVQUFVLHNDQUFhLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDdkQsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDOzs7O1lBaElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsdzdMQUF5QztnQkFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQXFCLEVBQUU7b0JBQzVELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsSUFBeUIsRUFBRTtpQkFDckU7O2FBQ0Y7OztZQWhEQyxpQkFBaUI7WUFVVixxQkFBcUI7OzttQkE0QzNCLEtBQUs7bUNBTUwsS0FBSyxTQUFDLHFCQUFxQjttQkFNM0IsS0FBSyxTQUFDLEtBQUs7bUJBUVgsS0FBSyxTQUFDLEtBQUs7bUJBT1gsS0FBSzttQkFFTCxLQUFLO21CQVNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFTTCxLQUFLO29CQVFMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLO3NCQUNMLEtBQUs7c0JBT0wsS0FBSzt3QkFPTCxLQUFLO3VCQUNMLE1BQU07b0JBRU4sS0FBSzswQkFVTCxNQUFNO3FCQUVOLFlBQVksU0FBQyxrQkFBa0I7b0JBQy9CLFNBQVMsU0FBQyxPQUFPO3lCQUNqQixTQUFTLFNBQUMsYUFBYTs2QkFDdkIsU0FBUyxTQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciwgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTmd4TWF0RGF0ZXRpbWVQaWNrZXIsIE5HWF9NQVRfREFURV9GT1JNQVRTLCB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCwgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5cclxuY29uc3QgQ1VTVE9NX0RBVEVUSU1FX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVkgSEg6bW0nXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZIEhIOm1tJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcclxuICB9XHJcbn07XHJcbmNvbnN0IENVU1RPTV9EQVRFX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVknXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcclxuICB9XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZGF0ZS10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IENVU1RPTV9EQVRFX0ZPUk1BVFMgfSxcclxuICAgIHsgcHJvdmlkZTogTkdYX01BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBDVVNUT01fREFURVRJTUVfRk9STUFUUyB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2REYXRlVGltZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgI2RhdGU6IGFueTtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIG1pbjogRGF0ZTtcclxuICBASW5wdXQoJ21pbicpIHNldCBfbWluKHZhbDogc3RyaW5nIHwgRGF0ZSkge1xyXG4gICAgaWYgKERhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdGhpcy5taW4gPSBuZXcgRGF0ZSh2YWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5taW4gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBtYXg6IERhdGU7XHJcbiAgQElucHV0KCdtYXgnKSBzZXQgX21heCh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgdHlwZTogJ2RhdGV0aW1lJyB8ICdkYXRlJyB8ICd0aW1lJyB8ICdtb250aCcgPSAnZGF0ZXRpbWUnO1xyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBkZWZhdWx0VGltZTogYW55O1xyXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbDogc3RyaW5nIHwgRGF0ZSkge1xyXG4gICAgaWYgKERhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdGhpcy5taW4gPSBuZXcgRGF0ZSh2YWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5taW4gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgbWF4RGF0ZSh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbDogYW55KSB7XHJcbiAgICBpZiAoIURhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdmFsID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNkYXRlICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy4jZGF0ZSA9IHZhbDtcclxuICAgICAgY29uc3QgZGF0ZSA9IERhdGUuaXNEYXRlKHRoaXMuI2RhdGUpID8gbW9tZW50KERhdGUudG9Gb3JtYXQodGhpcy4jZGF0ZSwgJ01NL2RkL3l5eXkgSEg6bW06c3MnKSwgJ01NL0REL1lZWVkgSEg6bW06c3MnKSA6IG51bGw7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoTWF0RGF0ZXBpY2tlcikgZGF0ZVBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoTmd4TWF0RGF0ZXRpbWVQaWNrZXIpIGRhdGVUaW1lUGlja2VyOiBOZ3hNYXREYXRldGltZVBpY2tlcjxNb21lbnQ+O1xyXG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgICB0aGlzLmRhdGVQaWNrZXI/Lm9wZW4oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVUaW1lUGlja2VyPy5vcGVuKCk7XHJcbiAgICAgIH1cclxuICAgICAgLy9cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChldmVudDogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8TW9tZW50PikgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZT8udG9EYXRlKCk7XHJcbiAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmIChuZXcgRGF0ZSh0aGlzLiNkYXRlKSAhPT0gdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbD8udmFsdWUpIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhBbmRZZWFyID0gKG5vcm1hbGl6ZWRNb250aEFuZFllYXI6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSA9PiB7XHJcbiAgICBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIHx8IG1vbWVudCgpO1xyXG4gICAgY3RybFZhbHVlLm1vbnRoKG5vcm1hbGl6ZWRNb250aEFuZFllYXIubW9udGgoKSk7XHJcbiAgICBjdHJsVmFsdWUueWVhcihub3JtYWxpemVkTW9udGhBbmRZZWFyLnllYXIoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGN0cmxWYWx1ZSk7XHJcbiAgICBkYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoY3RybFZhbHVlKTtcclxuICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChjdHJsVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -217,7 +217,6 @@ export class SdInput {
217
217
  }
218
218
  ngOnInit() {
219
219
  __classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
220
- this.formControl.updateValueAndValidity();
221
220
  this.ref.markForCheck();
222
221
  }));
223
222
  }
@@ -287,4 +286,4 @@ SdInput.propDecorators = {
287
286
  btnCopy: [{ type: ViewChild, args: ['btnCopy', { read: ElementRef },] }],
288
287
  _copyable: [{ type: Input, args: ['copyable',] }]
289
288
  };
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBR2pCLFVBQVUsRUFFVixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsTUFBTSxFQUFlLFVBQVUsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPNUQsTUFBTSxPQUFPLE9BQU87SUEyR2xCLFlBQ1MsR0FBc0IsRUFDckIsY0FBZ0M7UUFEakMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBNUcxQyxPQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyQixnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFPbEIsd0JBQWlCO1FBWVIsU0FBSSxHQUE2QyxN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aUJBQWlCLENBQUMsQ0FBQztRQUNwRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7OztZQWpRRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLHFzRkFBcUM7Z0JBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBdEJDLGlCQUFpQjtZQWdCVixnQkFBZ0I7OzttQkFVdEIsS0FBSzttQkFLTCxLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSzswQkFDTCxLQUFLO21CQUNMLEtBQUs7bUNBRUwsS0FBSyxTQUFDLHFCQUFxQjsyQkFJM0IsS0FBSyxTQUFDLGFBQWE7b0JBSW5CLEtBQUs7MEJBUUwsTUFBTTt1QkFJTixLQUFLO3VCQU1MLEtBQUs7eUJBS0wsS0FBSyxTQUFDLFdBQVc7eUJBS2pCLEtBQUssU0FBQyxXQUFXO3NCQUtqQixLQUFLO3dCQUtMLEtBQUs7dUJBTUwsS0FBSzttQkFRTCxLQUFLO3dCQUVMLEtBQUssU0FBQyxVQUFVOzBCQUloQixNQUFNO3NCQUNOLEtBQUs7dUJBQ0wsTUFBTTtzQkFDTixNQUFNOytCQUNOLE1BQU07eUJBQ04sTUFBTTtzQkFFTixTQUFTLFNBQUMsU0FBUzs0QkFDbkIsWUFBWSxTQUFDLHNCQUFzQjtxQkFHbkMsWUFBWSxTQUFDLGtCQUFrQjtzQkFFL0IsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7d0JBRXpDLEtBQUssU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3RMaXN0ZW5lclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nRm9ybSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RJbnB1dFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1zdWZmaXguZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS91dGlsaXR5JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZElucHV0IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAnZW1haWwnID0gJ3RleHQnO1xyXG4gIGRpc2FibGVFcnJvck1lc3NhZ2UgPSBmYWxzZTtcclxuICBASW5wdXQoJ2Rpc2FibGVFcnJvck1lc3NhZ2UnKSBzZXQgX2Rpc2FibGVFcnJvck1lc3NhZ2UodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuZGlzYWJsZUVycm9yTWVzc2FnZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNibHVyT25FbnRlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnYmx1ck9uRW50ZXInKSBzZXQgX2JsdXJPbkVudGVyKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLiNibHVyT25FbnRlciA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNtb2RlbDogYW55O1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIGlzUmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVhZG9ubHkodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZWFkb25seSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG5cclxuICBtaW5sZW5ndGg6IG51bWJlcjtcclxuICBASW5wdXQoJ21pbmxlbmd0aCcpIHNldCBwTWlubGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1pbmxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgbWF4bGVuZ3RoOiBudW1iZXI7XHJcbiAgQElucHV0KCdtYXhsZW5ndGgnKSBzZXQgcE1heGxlbmd0aCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5tYXhsZW5ndGggPSArdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG4gICNwYXR0ZXJuOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IHBhdHRlcm4odmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuI3BhdHRlcm4gPSB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgI3ZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBpY29uID0gJ3NlYXJjaCc7XHJcbiAgaGlkZUljb24gPSBmYWxzZTtcclxuICBASW5wdXQoJ2hpZGVJY29uJykgc2V0IF9oaWRlSWNvbih2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5oaWRlSWNvbiA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgc2RDbGlja0ljb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgfCAoKGlucHV0VmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZEZvY3VzRm9yY2VCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGtleXVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRyb2wnKSBjb250cm9sOiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RJbnB1dFN1ZmZpeERpcmVjdGl2ZSkgc2RJbnB1dFN1ZmZpeDogU2RJbnB1dFN1ZmZpeERpcmVjdGl2ZTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAQ29udGVudENoaWxkKFNkVmlld0RlZkRpcmVjdGl2ZSkgc2RWaWV3OiBTZFZpZXdEZWZEaXJlY3RpdmU7XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnYnRuQ29weScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBidG5Db3B5OiBFbGVtZW50UmVmO1xyXG4gIGNvcHlhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCdjb3B5YWJsZScpIHNldCBfY29weWFibGUodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuY29weWFibGUgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogU2RVdGlsaXR5U2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHRoaXMuI29uQ2hhbmdlKSk7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pbmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWlubGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI3BhdHRlcm4pIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLiNwYXR0ZXJuKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gICNvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uS2V5dXBFbnRlciA9ICgpID0+IHtcclxuICAgIGNvbnN0IHZhbDogc3RyaW5nID0gKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPz8gJycpLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IHZhbC50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmtleXVwRW50ZXIuZW1pdCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcclxuICAgIGlmICh0aGlzLiNibHVyT25FbnRlcikge1xyXG4gICAgICB0aGlzLmJsdXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tJY29uID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNkQ2xpY2tJY29uLmVtaXQodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZEZvY3VzLmVtaXQoKTtcclxuICAgIGlmICh0aGlzLnNkRm9jdXNGb3JjZUJsdXIub2JzZXJ2ZXJzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgICB0aGlzLnNkRm9jdXNGb3JjZUJsdXIuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IHZhbDogc3RyaW5nID0gKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPz8gJycpLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IHZhbC50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2RWaWV3Py50ZW1wbGF0ZVJlZikge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQgJiYgIXRoaXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBibHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuY29udHJvbD8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gICNjdXN0b21WYWxpZGF0b3IgPSAoZnVuYzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik6IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICBpZiAoZnVuYyAmJiB0eXBlb2YgKGZ1bmMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogbWVzc2FnZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogcmVzdWx0XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb3B5VGV4dCgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHRoaXMuI21vZGVsKTtcclxuICAgIHRoaXMuYnRuQ29weS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA9ICdDb3BpZWQnO1xyXG4gICAgdGhpcy5idG5Db3B5Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdjb2xvcjogIzRjYWY1MDsnKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJ0bkNvcHkubmF0aXZlRWxlbWVudC5pbm5lclRleHQgPSAnQ29weSc7XHJcbiAgICAgIHRoaXMuYnRuQ29weS5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTtcclxuICAgIH0sIDIwMDApO1xyXG4gIH1cclxufVxyXG4iXX0=
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBR2pCLFVBQVUsRUFFVixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsTUFBTSxFQUFlLFVBQVUsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPNUQsTUFBTSxPQUFPLE9BQU87SUEyR2xCLFlBQ1MsR0FBc0IsRUFDckIsY0FBZ0M7UUFEakMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBNUcxQyxPQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyQixnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFPbEIsd0JBQWlCO1FBWVIsU0FBSSxHQUE2QyxN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WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOzs7O1lBaFFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIscXNGQUFxQztnQkFFckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUF0QkMsaUJBQWlCO1lBZ0JWLGdCQUFnQjs7O21CQVV0QixLQUFLO21CQUtMLEtBQUs7bUJBRUwsS0FBSztvQkFTTCxLQUFLOzBCQUNMLEtBQUs7bUJBQ0wsS0FBSzttQ0FFTCxLQUFLLFNBQUMscUJBQXFCOzJCQUkzQixLQUFLLFNBQUMsYUFBYTtvQkFJbkIsS0FBSzswQkFRTCxNQUFNO3VCQUlOLEtBQUs7dUJBTUwsS0FBSzt5QkFLTCxLQUFLLFNBQUMsV0FBVzt5QkFLakIsS0FBSyxTQUFDLFdBQVc7c0JBS2pCLEtBQUs7d0JBS0wsS0FBSzt1QkFNTCxLQUFLO21CQVFMLEtBQUs7d0JBRUwsS0FBSyxTQUFDLFVBQVU7MEJBSWhCLE1BQU07c0JBQ04sS0FBSzt1QkFDTCxNQUFNO3NCQUNOLE1BQU07K0JBQ04sTUFBTTt5QkFDTixNQUFNO3NCQUVOLFNBQVMsU0FBQyxTQUFTOzRCQUNuQixZQUFZLFNBQUMsc0JBQXNCO3FCQUduQyxZQUFZLFNBQUMsa0JBQWtCO3NCQUUvQixTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTt3QkFFekMsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSG9zdExpc3RlbmVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycywgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZElucHV0U3VmZml4RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LXN1ZmZpeC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkSW5wdXQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICdlbWFpbCcgPSAndGV4dCc7XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI2JsdXJPbkVudGVyID0gZmFsc2U7XHJcbiAgQElucHV0KCdibHVyT25FbnRlcicpIHNldCBfYmx1ck9uRW50ZXIodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuI2JsdXJPbkVudGVyID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI21vZGVsOiBhbnk7XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLiNtb2RlbCAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy4jbW9kZWwgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gVmFsaWRhdG9yXHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgaXNSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZWFkb25seSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlYWRvbmx5ID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcblxyXG4gIG1pbmxlbmd0aDogbnVtYmVyO1xyXG4gIEBJbnB1dCgnbWlubGVuZ3RoJykgc2V0IHBNaW5sZW5ndGgodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMubWlubGVuZ3RoID0gK3ZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBtYXhsZW5ndGg6IG51bWJlcjtcclxuICBASW5wdXQoJ21heGxlbmd0aCcpIHNldCBwTWF4bGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1heGxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgI3BhdHRlcm46IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgcGF0dGVybih2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jcGF0dGVybiA9IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCB2YWxpZGF0b3IodmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLiN2YWxpZGF0b3IgPSB2YWxpZGF0b3I7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGljb24gPSAnc2VhcmNoJztcclxuICBoaWRlSWNvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnaGlkZUljb24nKSBzZXQgX2hpZGVJY29uKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmhpZGVJY29uID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBzZENsaWNrSWNvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZyB8ICgoaW5wdXRWYWx1ZTogc3RyaW5nKSA9PiBzdHJpbmcpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNkRm9jdXNGb3JjZUJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkga2V5dXBFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udHJvbCcpIGNvbnRyb2w6IEVsZW1lbnRSZWY7XHJcbiAgQENvbnRlbnRDaGlsZChTZElucHV0U3VmZml4RGlyZWN0aXZlKSBzZElucHV0U3VmZml4OiBTZElucHV0U3VmZml4RGlyZWN0aXZlO1xyXG4gIGZvcm1Db250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdidG5Db3B5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGJ0bkNvcHk6IEVsZW1lbnRSZWY7XHJcbiAgY29weWFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoJ2NvcHlhYmxlJykgc2V0IF9jb3B5YWJsZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5jb3B5YWJsZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBTZFV0aWxpdHlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5zZENoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh0aGlzLiNvbkNoYW5nZSkpO1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5taW5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbmxlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWF4bGVuZ3RoID4gMCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNwYXR0ZXJuKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy4jcGF0dGVybikpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI3ZhbGlkYXRvcikge1xyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMucHVzaCh0aGlzLiNjdXN0b21WYWxpZGF0b3IodGhpcy4jdmFsaWRhdG9yKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAjb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbktleXVwRW50ZXIgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB2YWw6IHN0cmluZyA9ICh0aGlzLmZvcm1Db250cm9sLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xyXG4gICAgaWYgKHZhbC5sZW5ndGggPiB2YWwudHJpbSgpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbC50cmltKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5rZXl1cEVudGVyLmVtaXQodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy4jYmx1ck9uRW50ZXIpIHtcclxuICAgICAgdGhpcy5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrSWNvbiA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zZENsaWNrSWNvbi5lbWl0KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc2RGb2N1cy5lbWl0KCk7XHJcbiAgICBpZiAodGhpcy5zZEZvY3VzRm9yY2VCbHVyLm9ic2VydmVycz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmJsdXIoKTtcclxuICAgICAgdGhpcy5zZEZvY3VzRm9yY2VCbHVyLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICBjb25zdCB2YWw6IHN0cmluZyA9ICh0aGlzLmZvcm1Db250cm9sLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xyXG4gICAgaWYgKHZhbC5sZW5ndGggPiB2YWwudHJpbSgpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbC50cmltKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGljayA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnNkVmlldz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkICYmICF0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbnRyb2w/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29udHJvbD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICAjY3VzdG9tVmFsaWRhdG9yID0gKGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pOiBBc3luY1ZhbGlkYXRvckZuID0+IHtcclxuICAgIHJldHVybiBhc3luYyAoYzogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbD4gPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGMudmFsdWUgfHwgbnVsbDtcclxuICAgICAgaWYgKGZ1bmMgJiYgdHlwZW9mIChmdW5jKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZ1bmModmFsdWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IG1lc3NhZ2VcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IHJlc3VsdFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29weVRleHQoKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmNvcHlUb0NsaXBib2FyZCh0aGlzLiNtb2RlbCk7XHJcbiAgICB0aGlzLmJ0bkNvcHkubmF0aXZlRWxlbWVudC5pbm5lclRleHQgPSAnQ29waWVkJztcclxuICAgIHRoaXMuYnRuQ29weS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnY29sb3I6ICM0Y2FmNTA7Jyk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5idG5Db3B5Lm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID0gJ0NvcHknO1xyXG4gICAgICB0aGlzLmJ0bkNvcHkubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7XHJcbiAgICB9LCAyMDAwKTtcclxuICB9XHJcbn1cclxuIl19