{"version":3,"file":"primeng-inputmask.umd.js","sources":["../../src/app/components/inputmask/inputmask.ts","../../src/app/components/inputmask/primeng-inputmask.ts"],"sourcesContent":["/*\n Port of jQuery MaskedInput by DigitalBush as a Native Angular2 Component in Typescript without jQuery\n https://github.com/digitalBush/jquery.maskedinput/\n\n Copyright (c) 2007-2014 Josh Bush (digitalbush.com)\n\n Permission is hereby granted, free of charge, to any person\n obtaining a copy of this software and associated documentation\n files (the \"Software\"), to deal in the Software without\n restriction, including without limitation the rights to use,\n copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the\n Software is furnished to do so, subject to the following\n conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n OTHER DEALINGS IN THE SOFTWARE.\n*/\nimport {NgModule,Component,ElementRef,OnInit,OnDestroy,Input,forwardRef,Output,EventEmitter,ViewChild,ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomHandler} from 'primeng/dom';\nimport {InputTextModule} from 'primeng/inputtext';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\n\nexport const INPUTMASK_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputMask),\n multi: true\n};\n\n@Component({\n selector: 'p-inputMask',\n template: ``,\n host: {\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-inputwrapper-focus]': 'focused'\n },\n providers: [INPUTMASK_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class InputMask implements OnInit,OnDestroy,ControlValueAccessor {\n\n @Input() type: string = 'text';\n\n @Input() slotChar: string = '_';\n\n @Input() autoClear: boolean = true;\n\n @Input() style: any;\n\n @Input() inputId: string;\n\n @Input() styleClass: string;\n\n @Input() placeholder: string;\n\n @Input() size: number;\n\n @Input() maxlength: number;\n\n @Input() tabindex: string;\n\n @Input() title: string;\n\n @Input() ariaLabel: string;\n\n @Input() ariaRequired: boolean;\n\n @Input() disabled: boolean;\n\n @Input() readonly: boolean;\n\n @Input() unmask: boolean;\n\n @Input() name: string;\n\n @Input() required: boolean;\n\n @Input() characterPattern: string = '[A-Za-z]';\n\n @Input() autoFocus: boolean;\n\n @Input() autocomplete: string;\n\n @ViewChild('input', { static: true }) inputViewChild: ElementRef;\n\n @Output() onComplete: EventEmitter = new EventEmitter();\n\n @Output() onFocus: EventEmitter = new EventEmitter();\n\n @Output() onBlur: EventEmitter = new EventEmitter();\n\n @Output() onInput: EventEmitter = new EventEmitter();\n\n value: any;\n\n _mask: string;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n input: HTMLInputElement;\n\n filled: boolean;\n\n defs: any;\n\n tests: any[];\n\n partialPosition: any;\n\n firstNonMaskPos: number;\n\n lastRequiredNonMaskPos: any;\n\n len: number;\n\n oldVal: string;\n\n buffer: any;\n\n defaultBuffer: string;\n\n focusText: string;\n\n caretTimeoutId: any;\n\n androidChrome: boolean;\n\n focused: boolean;\n\n constructor(public el: ElementRef, private cd: ChangeDetectorRef) {}\n\n ngOnInit() {\n let ua = DomHandler.getUserAgent();\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n\n this.initMask();\n }\n\n @Input() get mask(): string {\n return this._mask;\n }\n\n set mask(val:string) {\n this._mask = val;\n\n this.initMask();\n this.writeValue('');\n this.onModelChange(this.value);\n }\n\n initMask() {\n this.tests = [];\n this.partialPosition = this.mask.length;\n this.len = this.mask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n '9': '[0-9]',\n 'a': this.characterPattern,\n '*': `${this.characterPattern}|[0-9]`\n };\n\n let maskTokens = this.mask.split('');\n for(let i = 0; i < maskTokens.length; i++) {\n let c = maskTokens[i];\n if (c == '?') {\n\t\t\t\tthis.len--;\n\t\t\t\tthis.partialPosition = i;\n\t\t\t}\n else if (this.defs[c]) {\n\t\t\t\tthis.tests.push(new RegExp(this.defs[c]));\n\t\t\t\tif (this.firstNonMaskPos === null) {\n\t this.firstNonMaskPos = this.tests.length - 1;\n\t\t\t\t}\n if (i < this.partialPosition){\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n\t\t\t}\n else {\n\t\t\t\tthis.tests.push(null);\n\t\t\t}\n }\n\n this.buffer = [];\n for(let i = 0; i < maskTokens.length; i++) {\n let c = maskTokens[i];\n if (c != '?') {\n if (this.defs[c])\n this.buffer.push(this.getPlaceholder(i));\n else\n this.buffer.push(c);\n }\n }\n this.defaultBuffer = this.buffer.join('');\n }\n\n writeValue(value: any) : void {\n this.value = value;\n\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n if (this.value == undefined || this.value == null)\n this.inputViewChild.nativeElement.value = '';\n else\n this.inputViewChild.nativeElement.value = this.value;\n\n this.checkVal();\n this.focusText = this.inputViewChild.nativeElement.value;\n this.updateFilledState();\n }\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n caret(first?: number, last?: number) {\n let range, begin, end;\n\n if (!this.inputViewChild.nativeElement.offsetParent||this.inputViewChild.nativeElement !== this.inputViewChild.nativeElement.ownerDocument.activeElement) {\n return;\n }\n\n if (typeof first == 'number') {\n begin = first;\n end = (typeof last === 'number') ? last : begin;\n if (this.inputViewChild.nativeElement.setSelectionRange) {\n this.inputViewChild.nativeElement.setSelectionRange(begin, end);\n }\n else if (this.inputViewChild.nativeElement['createTextRange']) {\n range = this.inputViewChild.nativeElement['createTextRange']();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', begin);\n range.select();\n }\n }\n else {\n if (this.inputViewChild.nativeElement.setSelectionRange) {\n \t\t\tbegin = this.inputViewChild.nativeElement.selectionStart;\n \t\t\tend = this.inputViewChild.nativeElement.selectionEnd;\n \t\t}\n else if (document['selection'] && document['selection'].createRange) {\n \t\t\trange = document['selection'].createRange();\n \t\t\tbegin = 0 - range.duplicate().moveStart('character', -100000);\n \t\t\tend = begin + range.text.length;\n \t\t}\n\n \t\treturn {begin: begin, end: end};\n }\n }\n\n isCompleted(): boolean {\n let completed: boolean;\n for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n getPlaceholder(i: number) {\n if (i < this.slotChar.length) {\n return this.slotChar.charAt(i);\n }\n return this.slotChar.charAt(0);\n }\n\n seekNext(pos) {\n while (++pos < this.len && !this.tests[pos]);\n return pos;\n }\n\n seekPrev(pos) {\n while (--pos >= 0 && !this.tests[pos]);\n return pos;\n }\n\n shiftL(begin:number,end:number) {\n let i, j;\n\n if (begin<0) {\n return;\n }\n\n for (i = begin, j = this.seekNext(end); i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else {\n break;\n }\n\n j = this.seekNext(j);\n }\n }\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n\n shiftR(pos) {\n let i, c, j, t;\n\n for (i = pos, c = this.getPlaceholder(pos); i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n }\n\n handleAndroidInput(e) {\n var curVal = this.inputViewChild.nativeElement.value;\n var pos = this.caret();\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length ) {\n // a deletion or backspace happened\n this.checkVal(true);\n while (pos.begin > 0 && !this.tests[pos.begin-1])\n pos.begin--;\n if (pos.begin === 0)\n {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin])\n pos.begin++;\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n this.updateModel(e);\n if (this.isCompleted()) {\n this.onComplete.emit();\n }\n }, 0);\n }\n else {\n this.checkVal(true);\n while (pos.begin < this.len && !this.tests[pos.begin])\n pos.begin++;\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n this.updateModel(e);\n if (this.isCompleted()) {\n this.onComplete.emit();\n }\n }, 0);\n }\n }\n\n onInputBlur(e) {\n this.focused = false;\n this.onModelTouched();\n this.checkVal();\n this.updateFilledState();\n this.onBlur.emit(e);\n\n if (this.inputViewChild.nativeElement.value != this.focusText || this.inputViewChild.nativeElement.value != this.value) {\n this.updateModel(e);\n let event = document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n this.inputViewChild.nativeElement.dispatchEvent(event);\n }\n }\n\n onKeyDown(e) {\n if (this.readonly) {\n return;\n }\n\n let k = e.which||e.keyCode,\n pos,\n begin,\n end;\n let iPhone = /iphone/i.test(DomHandler.getUserAgent());\n this.oldVal = this.inputViewChild.nativeElement.value;\n\n //backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || (iPhone && k === 127)) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin=k!==46?this.seekPrev(begin):(end=this.seekNext(begin-1));\n end=k===46?this.seekNext(end):end;\n }\n\n this.clearBuffer(begin, end);\n\t\t\tthis.shiftL(begin, end - 1);\n this.updateModel(e);\n this.onInput.emit(e);\n\n e.preventDefault();\n }\n else if ( k === 13 ) { // enter\n this.onInputBlur(e);\n this.updateModel(e);\n }\n else if (k === 27) { // escape\n this.inputViewChild.nativeElement.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n\n e.preventDefault();\n }\n }\n\n onKeyPress(e) {\n if (this.readonly){\n return;\n }\n\n var k = e.which || e.keyCode,\n pos = this.caret(),\n p,\n c,\n next,\n completed;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || (k > 34 && k < 41)) {//Ignore\n return;\n } else if ( k && k !== 13 ) {\n if (pos.end - pos.begin !== 0){\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end-1);\n }\n\n p = this.seekNext(pos.begin - 1);\n if (p < this.len) {\n c = String.fromCharCode(k);\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n\n if (/android/i.test(DomHandler.getUserAgent())) {\n //Path for CSP Violation on FireFox OS 1.1\n let proxy = () => {\n this.caret(next);\n };\n\n setTimeout(proxy,0);\n }\n else {\n this.caret(next);\n }\n\n if (pos.begin <= this.lastRequiredNonMaskPos) {\n completed = this.isCompleted();\n }\n\n this.onInput.emit(e);\n }\n }\n e.preventDefault();\n }\n\n this.updateModel(e);\n\n this.updateFilledState();\n\n if (completed) {\n this.onComplete.emit();\n }\n }\n\n clearBuffer(start, end) {\n let i;\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n\n writeBuffer() {\n this.inputViewChild.nativeElement.value = this.buffer.join('');\n }\n\n checkVal(allow?: boolean) {\n //try to place characters where they belong\n let test = this.inputViewChild.nativeElement.value,\n lastMatch = -1,\n i,\n c,\n pos;\n\n for (i = 0, pos = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (this.tests[i].test(c)) {\n this.buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if ( i < this.partialPosition){\n lastMatch = i;\n }\n }\n }\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.autoClear || this.buffer.join('') === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.inputViewChild.nativeElement.value) this.inputViewChild.nativeElement.value = '';\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.inputViewChild.nativeElement.value = this.inputViewChild.nativeElement.value.substring(0, lastMatch + 1);\n }\n return (this.partialPosition ? i : this.firstNonMaskPos);\n }\n\n onInputFocus(event) {\n if (this.readonly){\n return;\n }\n\n this.focused = true;\n\n clearTimeout(this.caretTimeoutId);\n let pos;\n\n this.focusText = this.inputViewChild.nativeElement.value;\n\n pos = this.checkVal();\n\n this.caretTimeoutId = setTimeout(() => {\n if (this.inputViewChild.nativeElement !== this.inputViewChild.nativeElement.ownerDocument.activeElement){\n return;\n }\n this.writeBuffer();\n if (pos == this.mask.replace(\"?\",\"\").length) {\n this.caret(0, pos);\n } else {\n this.caret(pos);\n }\n }, 10);\n\n this.onFocus.emit(event);\n }\n\n onInputChange(event) {\n if (this.androidChrome)\n this.handleAndroidInput(event);\n else\n this.handleInputChange(event);\n\n this.onInput.emit(event);\n }\n\n handleInputChange(event) {\n if (this.readonly){\n return;\n }\n\n setTimeout(() => {\n var pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(event);\n if (this.isCompleted()) {\n this.onComplete.emit();\n }\n }, 0);\n }\n\n getUnmaskedValue() {\n let unmaskedBuffer = [];\n for(let i = 0; i < this.buffer.length; i++) {\n let c = this.buffer[i];\n if (this.tests[i] && c != this.getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n\n return unmaskedBuffer.join('');\n }\n\n updateModel(e) {\n const updatedValue = this.unmask ? this.getUnmaskedValue() : e.target.value;\n if (updatedValue !== null || updatedValue !== undefined) {\n this.value = updatedValue;\n this.onModelChange(this.value);\n }\n }\n\n updateFilledState() {\n this.filled = this.inputViewChild.nativeElement && this.inputViewChild.nativeElement.value != '';\n }\n\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n ngOnDestroy() {\n\n }\n}\n\n@NgModule({\n imports: [CommonModule,InputTextModule],\n exports: [InputMask],\n declarations: [InputMask]\n})\nexport class InputMaskModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","EventEmitter","DomHandler","Component","ChangeDetectionStrategy","ViewEncapsulation","ElementRef","ChangeDetectorRef","Input","ViewChild","Output","NgModule","CommonModule","InputTextModule"],"mappings":";;;;;;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCa,wBAAwB,GAAQ;QAC3C,OAAO,EAAEA,uBAAiB;QAC1B,WAAW,EAAEC,eAAU,CAAC,cAAM,OAAA,SAAS,GAAA,CAAC;QACxC,KAAK,EAAE,IAAI;MACX;;QA4GE,mBAAmB,EAAc,EAAU,EAAqB;YAA7C,OAAE,GAAF,EAAE,CAAY;YAAU,OAAE,GAAF,EAAE,CAAmB;YA1FvD,SAAI,GAAW,MAAM,CAAC;YAEtB,aAAQ,GAAW,GAAG,CAAC;YAEvB,cAAS,GAAY,IAAI,CAAC;YAgC1B,qBAAgB,GAAW,UAAU,CAAC;YAQrC,eAAU,GAAsB,IAAIC,iBAAY,EAAE,CAAC;YAEnD,YAAO,GAAsB,IAAIA,iBAAY,EAAE,CAAC;YAEhD,WAAM,GAAsB,IAAIA,iBAAY,EAAE,CAAC;YAE/C,YAAO,GAAsB,IAAIA,iBAAY,EAAE,CAAC;YAM1D,kBAAa,GAAa,eAAQ,CAAC;YAEnC,mBAAc,GAAa,eAAQ,CAAC;SAgCgC;QAEpE,4BAAQ,GAAR;YACI,IAAI,EAAE,GAAGC,cAAU,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;QAED,sBAAa,2BAAI;iBAAjB;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;iBAED,UAAS,GAAU;gBACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBAEjB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;;;WARA;QAUD,4BAAQ,GAAR;YACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG;gBACR,GAAG,EAAE,OAAO;gBACZ,GAAG,EAAE,IAAI,CAAC,gBAAgB;gBAC1B,GAAG,EAAK,IAAI,CAAC,gBAAgB,WAAQ;aACxC,CAAC;YAEF,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,GAAG,EAAE;oBACtB,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;iBACzB;qBACa,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;wBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;qBACzD;oBACW,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAC;wBACzB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;qBACvD;iBACb;qBACa;oBACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;aACK;YAED,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,GAAG,EAAE;oBACV,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;;wBAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC3B;aACJ;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7C;QAED,8BAAU,GAAV,UAAW,KAAU;YACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;gBAC1D,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;oBAC7C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;;oBAE7C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC;gBACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;SACJ;QAED,oCAAgB,GAAhB,UAAiB,EAAY;YACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;QAED,qCAAiB,GAAjB,UAAkB,EAAY;YAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC5B;QAED,oCAAgB,GAAhB,UAAiB,GAAY;YACzB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SAC1B;QAED,yBAAK,GAAL,UAAM,KAAc,EAAE,IAAa;YAC/B,IAAI,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC;YAEtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,IAAE,IAAI,CAAC,cAAc,CAAC,aAAa,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,EAAE;gBACtJ,OAAO;aACV;YAED,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;gBAC1B,KAAK,GAAG,KAAK,CAAC;gBACd,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;gBAChD,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE;oBACrD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;iBACnE;qBACI,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;oBAC3D,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC/D,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACrB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;oBAChC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;oBACpC,KAAK,CAAC,MAAM,EAAE,CAAC;iBAClB;aACJ;iBACI;gBACD,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE;oBAC9D,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC;oBACzD,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC;iBACrD;qBACU,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;oBAC1E,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC5C,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC9D,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;iBAChC;gBAED,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAC,CAAC;aAC7B;SACJ;QAED,+BAAW,GAAX;YACI,IAAI,SAAkB,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE;gBACtE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;oBAC5D,OAAO,KAAK,CAAC;iBAChB;aACJ;YAED,OAAO,IAAI,CAAC;SACf;QAED,kCAAc,GAAd,UAAe,CAAS;YACpB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAClC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClC;QAED,4BAAQ,GAAR,UAAS,GAAG;YACR,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAC,CAAC;YAC7C,OAAO,GAAG,CAAC;SACd;QAED,4BAAQ,GAAR,UAAS,GAAG;YACR,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAC,CAAC;YACvC,OAAO,GAAG,CAAC;SACd;QAED,0BAAM,GAAN,UAAO,KAAY,EAAC,GAAU;YAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;YAET,IAAI,KAAK,GAAC,CAAC,EAAE;gBACT,OAAO;aACV;YAED,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACvD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;wBACpD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;qBAC3C;yBAAM;wBACH,MAAM;qBACT;oBAED,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACxB;aACJ;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;SACrD;QAED,0BAAM,GAAN,UAAO,GAAG;YACN,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAEf,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACf,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACvC,CAAC,GAAG,CAAC,CAAC;qBACT;yBAAM;wBACH,MAAM;qBACT;iBACJ;aACJ;SACJ;QAED,sCAAkB,GAAlB,UAAmB,CAAC;YAApB,iBAmCC;YAlCG,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC;YACrD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAG;;gBAE1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC;oBAC1C,GAAG,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,EACnB;oBACG,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;wBAC9D,GAAG,CAAC,KAAK,EAAE,CAAC;iBACjB;gBAED,UAAU,CAAC;oBACP,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,KAAI,CAAC,WAAW,EAAE,EAAE;wBACpB,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;qBAC1B;iBACJ,EAAE,CAAC,CAAC,CAAC;aACT;iBACI;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;oBACjD,GAAG,CAAC,KAAK,EAAE,CAAC;gBAEhB,UAAU,CAAC;oBACP,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjC,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,KAAI,CAAC,WAAW,EAAE,EAAE;wBACpB,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;qBAC1B;iBACJ,EAAE,CAAC,CAAC,CAAC;aACT;SACJ;QAED,+BAAW,GAAX,UAAY,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;gBACpH,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC/C,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC1D;SACJ;QAED,6BAAS,GAAT,UAAU,CAAC;YACP,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO;aACV;YAED,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,OAAO,EACtB,GAAG,EACH,KAAK,EACL,GAAG,CAAC;YACR,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAACA,cAAU,CAAC,YAAY,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC;;YAGtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBAC9C,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBAClB,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;gBAEd,IAAI,GAAG,GAAG,KAAK,KAAK,CAAC,EAAE;oBACnB,KAAK,GAAC,CAAC,KAAG,EAAE,GAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAE,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;oBAC/D,GAAG,GAAC,CAAC,KAAG,EAAE,GAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAC,GAAG,CAAC;iBACrC;gBAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAErB,CAAC,CAAC,cAAc,EAAE,CAAC;aACtB;iBACI,IAAK,CAAC,KAAK,EAAE,EAAG;gBACjB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACvB;iBACI,IAAI,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEpB,CAAC,CAAC,cAAc,EAAE,CAAC;aACtB;SACJ;QAED,8BAAU,GAAV,UAAW,CAAC;YAAZ,iBA2DC;YA1DG,IAAI,IAAI,CAAC,QAAQ,EAAC;gBACd,OAAO;aACV;YAED,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EACxB,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,EAClB,CAAC,EACD,CAAC,EACD,IAAI,EACJ,SAAS,CAAC;YAEd,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,KAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;gBACrE,OAAO;aACV;iBAAM,IAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAG;gBACxB,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,EAAC;oBAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC;iBACrC;gBAED,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;oBACd,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACvB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAEf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAExB,IAAI,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,YAAY,EAAE,CAAC,EAAE;;4BAE5C,IAAI,KAAK,GAAG;gCACR,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;6BACpB,CAAC;4BAEF,UAAU,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;yBACvB;6BACI;4BACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBACpB;wBAED,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,sBAAsB,EAAE;4BAC1C,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;yBAClC;wBAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACxB;iBACJ;gBACD,CAAC,CAAC,cAAc,EAAE,CAAC;aACtB;YAED,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAC1B;SACJ;QAED,+BAAW,GAAX,UAAY,KAAK,EAAE,GAAG;YAClB,IAAI,CAAC,CAAC;YACN,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACJ;SACJ;QAED,+BAAW,GAAX;YACI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClE;QAED,4BAAQ,GAAR,UAAS,KAAe;;YAEpB,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,EAC9C,SAAS,GAAG,CAAC,CAAC,EACd,CAAC,EACD,CAAC,EACD,GAAG,CAAC;YAER,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACxC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;wBACxB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;wBACzB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACvB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACnB,SAAS,GAAG,CAAC,CAAC;4BACd,MAAM;yBACT;qBACJ;oBACD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;wBACnB,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;wBAClC,MAAM;qBACT;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;wBACrC,GAAG,EAAE,CAAC;qBACT;oBACD,IAAK,CAAC,GAAG,IAAI,CAAC,eAAe,EAAC;wBAC1B,SAAS,GAAG,CAAC,CAAC;qBACjB;iBACJ;aACJ;YACD,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;iBAAM,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;gBAC7C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE;;;oBAG/D,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK;wBAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC1F,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjC;qBAAM;;;oBAGH,IAAI,CAAC,WAAW,EAAE,CAAC;iBACtB;aACJ;iBAAM;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;aACjH;YACD,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;SAC5D;QAED,gCAAY,GAAZ,UAAa,KAAK;YAAlB,iBA2BC;YA1BG,IAAI,IAAI,CAAC,QAAQ,EAAC;gBACd,OAAO;aACV;YAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,GAAG,CAAC;YAER,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC;YAEzD,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBAC7B,IAAI,KAAI,CAAC,cAAc,CAAC,aAAa,KAAK,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,EAAC;oBACpG,OAAO;iBACV;gBACD,KAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,GAAG,IAAI,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC,MAAM,EAAE;oBACzC,KAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACtB;qBAAM;oBACH,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACnB;aACJ,EAAE,EAAE,CAAC,CAAC;YAEP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,iCAAa,GAAb,UAAc,KAAK;YACf,IAAI,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;;gBAE/B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,qCAAiB,GAAjB,UAAkB,KAAK;YAAvB,iBAaC;YAZG,IAAI,IAAI,CAAC,QAAQ,EAAC;gBACd,OAAO;aACV;YAED,UAAU,CAAC;gBACP,IAAI,GAAG,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChB,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,KAAI,CAAC,WAAW,EAAE,EAAE;oBACpB,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;iBAC1B;aACJ,EAAE,CAAC,CAAC,CAAC;SACT;QAED,oCAAgB,GAAhB;YACI,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;oBAC9C,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC1B;aACJ;YAED,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClC;QAED,+BAAW,GAAX,UAAY,CAAC;YACT,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5E,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE;gBACrD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;SACJ;QAED,qCAAiB,GAAjB;YACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;SACpG;QAED,yBAAK,GAAL;YACI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC7C;QAED,+BAAW,GAAX;SAEC;;;;gBAhmBJC,cAAS,SAAC;oBACP,QAAQ,EAAE,aAAa;oBACvB,QAAQ,EAAE,quBAG+D;oBACzE,IAAI,EAAE;wBACF,+BAA+B,EAAE,QAAQ;wBACzC,8BAA8B,EAAE,SAAS;qBAC5C;oBACD,SAAS,EAAE,CAAC,wBAAwB,CAAC;oBACrC,eAAe,EAAEC,4BAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAEC,sBAAiB,CAAC,IAAI;iBACxC;;;gBAzB0BC,eAAU;gBAA6GC,sBAAiB;;;uBA4B9JC,UAAK;2BAELA,UAAK;4BAELA,UAAK;wBAELA,UAAK;0BAELA,UAAK;6BAELA,UAAK;8BAELA,UAAK;uBAELA,UAAK;4BAELA,UAAK;2BAELA,UAAK;wBAELA,UAAK;4BAELA,UAAK;+BAELA,UAAK;2BAELA,UAAK;2BAELA,UAAK;yBAELA,UAAK;uBAELA,UAAK;2BAELA,UAAK;mCAELA,UAAK;4BAELA,UAAK;+BAELA,UAAK;iCAELC,cAAS,SAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;6BAEnCC,WAAM;0BAENA,WAAM;yBAENA,WAAM;0BAENA,WAAM;uBAiDNF,UAAK;;;QAqfV;;;;;gBALCG,aAAQ,SAAC;oBACN,OAAO,EAAE,CAACC,mBAAY,EAACC,yBAAe,CAAC;oBACvC,OAAO,EAAE,CAAC,SAAS,CAAC;oBACpB,YAAY,EAAE,CAAC,SAAS,CAAC;iBAC5B;;;IC9oBD;;;;;;;;;;;;;;"}