carbon-components-angular
Version:
Next generation components
1 lines • 29.3 kB
Source Map (JSON)
{"version":3,"file":"carbon-components-angular-radio.mjs","sources":["../../src/radio/radio-change.class.ts","../../src/radio/radio.component.ts","../../src/radio/radio-group.component.ts","../../src/radio/radio.module.ts","../../src/radio/carbon-components-angular-radio.ts"],"sourcesContent":["import { Radio } from \"./radio.component\";\n\n/**\n * Used to emit changes performed on a `Radio`.\n */\nexport class RadioChange {\n\t/**\n\t * Contains the `Radio` that has been changed.\n\t */\n\tsource: Radio | null;\n\t/**\n\t * The value of the `Radio` encompassed in the `RadioChange` class.\n\t */\n\tvalue: string;\n\n\tconstructor(source: Radio, value: string) {\n\t\tthis.source = source;\n\t\tthis.value = value;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { RadioChange } from \"./radio-change.class\";\n\n/**\n * class: Radio (extends Checkbox)\n *\n * selector: `n-radio`\n *\n * source: `src/forms/radio.component.ts`\n *\n * ```html\n *\t<cds-radio [(ngModel)]=\"radioState\">Radio</cds-radio>\n * ```\n *\n * Also see: [`RadioGroup`](#cds-radio-group)\n */\n@Component({\n\tselector: \"cds-radio, ibm-radio\",\n\ttemplate: `\n\t\t<input\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\tclass=\"cds--radio-button\"\n\t\t\ttype=\"radio\"\n\t\t\t[checked]=\"checked\"\n\t\t\t[disabled]=\"disabled || disabledFromGroup\"\n\t\t\t[name]=\"name\"\n\t\t\t[id]=\"id\"\n\t\t\t[required]=\"required\"\n\t\t\t[attr.value]=\"value\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t(change)=\"onChange($event)\"\n\t\t\t(click)=\"onClick($event)\">\n\t\t<div *ngIf=\"skeleton\" class=\"cds--radio-button cds--skeleton\"></div>\n\t\t<label\n\t\t\tclass=\"cds--radio-button__label\"\n\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--skeleton': skeleton\n\t\t\t}\"\n\t\t\t[for]=\"id\"\n\t\t\tid=\"label-{{id}}\">\n\t\t\t<span class=\"cds--radio-button__appearance\"></span>\n\t\t\t<ng-content></ng-content>\n\t\t</label>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: Radio,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class Radio {\n\t/**\n\t * Used to dynamically create unique ids for the `Radio`.\n\t */\n\tstatic radioCount = 0;\n\n\t@Input() checked = false;\n\n\t@Input() name = \"\";\n\n\t@Input() disabled = false;\n\n\t@Input() labelPlacement: \"right\" | \"left\" = \"right\";\n\n\t@Input() set ariaLabelledby(value: string) {\n\t\tthis._labelledby = value;\n\t}\n\n\tget ariaLabelledby() {\n\t\tif (this._labelledby) {\n\t\t\treturn this._labelledby;\n\t\t}\n\t\treturn `label-${this.id}`;\n\t}\n\n\t/**\n\t * Used to set the `aria-label` attribute on the input label.\n\t */\n\t@Input() ariaLabel: string;\n\n\t/**\n\t * Sets the HTML required attribute\n\t */\n\t@Input() required = false;\n\t/**\n\t * The value of the `Radio`.\n\t */\n\t@Input() value;\n\t/**\n\t * Set to `true` for a loading table.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * The id for the `Radio`.\n\t */\n\t@Input() id = `radio-${Radio.radioCount++}`;\n\t/**\n\t * emits when the state of the radio changes\n\t */\n\t@Output() change = new EventEmitter<RadioChange>();\n\n\t@HostBinding(\"class.cds--radio-button-wrapper\") hostClass = true;\n\n\t@HostBinding(\"class.cds--radio-button-wrapper--label-left\") get labelLeft() {\n\t\treturn this.labelPlacement === \"left\";\n\t}\n\n\t/**\n\t * Reflects whether or not the input is disabled at `RadioGroup` level.\n\t */\n\tdisabledFromGroup = false;\n\n\tprotected _labelledby = \"\";\n\n\t/**\n\t * Handler provided by the `RadioGroup` to bubble events up\n\t */\n\tradioChangeHandler = (event: RadioChange) => {};\n\n\t/**\n\t * Synchronizes with the `RadioGroup` in the event of a changed `Radio`.\n\t * Emits the changes of both the `RadioGroup` and `Radio`.\n\t */\n\tonChange(event: Event) {\n\t\tevent.stopPropagation();\n\t}\n\n\tonClick(event: Event) {\n\t\tthis.checked = (event.target as HTMLInputElement).checked;\n\t\tconst radioEvent = new RadioChange(this, this.value);\n\t\tthis.change.emit(radioEvent);\n\t\tthis.radioChangeHandler(radioEvent);\n\t}\n\n\t/**\n\t * Method called by `RadioGroup` with a callback function to bubble `RadioChange` events\n\t * @param fn callback that expects a `RadioChange` as an argument\n\t */\n\tregisterRadioChangeHandler(fn: (event: RadioChange) => void) {\n\t\tthis.radioChangeHandler = fn;\n\t}\n\n\tsetDisabledFromGroup(disabled: boolean) {\n\t\tthis.disabledFromGroup = disabled;\n\t}\n}\n","import {\n\tAfterContentInit,\n\tContentChildren,\n\tComponent,\n\tEventEmitter,\n\tforwardRef,\n\tInput,\n\tOutput,\n\tQueryList,\n\tHostBinding,\n\tAfterViewInit,\n\tHostListener,\n\tTemplateRef\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { Radio } from \"./radio.component\";\nimport { RadioChange } from \"./radio-change.class\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { RadioModule } from 'carbon-components-angular';\n * ```\n *\n * Ex:\n *\n * ```html\n * <cds-radio-group [(ngModel)]=\"radio\">\n * \t<cds-radio *ngFor=\"let one of manyRadios\" [value]=\"one\">\n *\t\tRadio {{one}}\n * \t</cds-radio>\n * </cds-radio-group>\n *\n * Radio selected: {{radio}}\n * ```\n *\n * ```ts\n *\tconst manyRadios = [\"one\", \"two\", \"three\", \"four\", \"five\", \"six\"];\n * ```\n *\n * [See demo](../../?path=/story/components-radio--basic)\n */\n@Component({\n\tselector: \"cds-radio-group, ibm-radio-group\",\n\ttemplate: `\n\t\t<fieldset\n\t\t\tclass=\"cds--radio-button-group\"\n\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--radio-button-group--vertical': orientation === 'vertical',\n\t\t\t\t'cds--radio-button-group--label-left': labelPlacement === 'left',\n\t\t\t\t'cds--radio-button-group--invalid': invalid,\n\t\t\t\t'cds--radio-button-group--warning': !invalid && warn\n\t\t\t}\"\n\t\t\t[attr.data-invalid]=\"invalid ? true : null\">\n\t\t\t<legend *ngIf=\"legend\" class=\"cds--label\">\n\t\t\t\t<ng-template *ngIf=\"isTemplate(legend); else legendLabel;\" [ngTemplateOutlet]=\"legend\"></ng-template>\n\t\t\t\t<ng-template #legendLabel>{{legend}}</ng-template>\n\t\t\t</legend>\n\t\t\t<ng-content></ng-content>\n\t\t</fieldset>\n\t\t<div class=\"cds--radio-button__validation-msg\">\n\t\t\t<ng-container *ngIf=\"invalid\">\n\t\t\t\t<svg\n\t\t\t\t\tcdsIcon=\"warning--filled\"\n\t\t\t\t\tsize=\"16\"\n\t\t\t\t\tclass=\"cds--radio-button__invalid-icon\">\n\t\t\t\t</svg>\n\t\t\t\t<div class=\"cds--form-requirement\">\n\t\t\t\t\t<ng-container *ngIf=\"!isTemplate(invalidText)\">{{ invalidText }}</ng-container>\n\t\t\t\t\t<ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!invalid && warn\">\n\t\t\t\t<svg\n\t\t\t\t\tcdsIcon=\"warning--alt--filled\"\n\t\t\t\t\tclass=\"cds--radio-button__invalid-icon cds--radio-button__invalid-icon--warning\"\n\t\t\t\t\tsize=\"16\">\n\t\t\t\t</svg>\n\t\t\t\t<div class=\"cds--form-requirement\">\n\t\t\t\t\t<ng-container *ngIf=\"!isTemplate(warnText)\">{{warnText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf=\"isTemplate(warnText)\" [ngTemplateOutlet]=\"warnText\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t</div>\n\t\t<div\n\t\t\t*ngIf=\"helperText && !invalid && !warn\"\n\t\t\tclass=\"cds--form__helper-text\"\n\t\t\t[ngClass]=\"{'cds--form__helper-text--disabled': disabled}\">\n\t\t\t<ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n\t\t\t<ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n\t\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: RadioGroup,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class RadioGroup implements AfterContentInit, AfterViewInit, ControlValueAccessor {\n\n\t/**\n\t * Sets the passed in `Radio` item as the selected input within the `RadioGroup`.\n\t */\n\t@Input()\n\tset selected(selected: Radio | null) {\n\t\tconst alreadySelected = (this._selected && this._selected.value) === (selected && selected.value);\n\t\tif (alreadySelected) {\n\t\t\t// no need to redo\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._selected) {\n\t\t\tthis._selected.checked = false;\n\t\t}\n\t\tthis._selected = selected;\n\t\tthis.value = selected ? selected.value : null;\n\t\tthis.checkSelectedRadio();\n\t}\n\n\t/**\n\t * Returns the `Radio` that is selected within the `RadioGroup`.\n\t */\n\tget selected() {\n\t\treturn this._selected;\n\t}\n\n\t/**\n\t * Sets the value/state of the selected `Radio` within the `RadioGroup` to the passed in value.\n\t */\n\t@Input()\n\tset value(newValue: any) {\n\t\tif (this._value !== newValue) {\n\t\t\tthis._value = newValue;\n\n\t\t\tthis.updateSelectedRadioFromValue();\n\t\t\tthis.checkSelectedRadio();\n\t\t}\n\t}\n\n\t/**\n\t * Returns the value/state of the selected `Radio` within the `RadioGroup`.\n\t */\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Replaces the name associated with the `RadioGroup` with the provided parameter.\n\t */\n\t@Input()\n\tset name(name: string) {\n\t\tthis._name = name;\n\t\tthis.updateRadios();\n\t}\n\t/**\n\t * Returns the associated name of the `RadioGroup`.\n\t */\n\tget name() {\n\t\treturn this._name;\n\t}\n\n\t/**\n\t * Set to true to disable the whole radio group\n\t */\n\t@Input()\n\tset disabled(disabled: boolean) {\n\t\tthis._disabled = disabled;\n\t\tthis.updateRadios();\n\t}\n\t/**\n\t * Returns the disabled value for the `RadioGroup`.\n\t */\n\tget disabled(): boolean {\n\t\treturn this._disabled;\n\t}\n\n\t/**\n\t * Returns the skeleton value in the `RadioGroup` if there is one.\n\t */\n\t@Input()\n\tget skeleton(): any {\n\t\treturn this._skeleton;\n\t}\n\n\t/**\n\t * Sets the skeleton value for all `Radio` to the skeleton value of `RadioGroup`.\n\t */\n\tset skeleton(value: any) {\n\t\tthis._skeleton = value;\n\t\tthis.updateChildren();\n\t}\n\t/**\n\t * Used for creating the `RadioGroup` 'name' property dynamically.\n\t */\n\tstatic radioGroupCount = 0;\n\n\t@Input() orientation: \"horizontal\" | \"vertical\" = \"horizontal\";\n\n\t@Input() labelPlacement: \"right\" | \"left\" = \"right\";\n\n\t@Input() legend: string | TemplateRef<any>;\n\n\t/**\n\t * Used to set the `aria-label` attribute on the radio group element.\n\t */\n\t@Input() ariaLabel: string;\n\n\t/**\n\t * Used to set the `aria-labelledby` attribute on the radio group element.\n\t */\n\t@Input() ariaLabelledby: string;\n\n\t/**\n\t * Sets the optional helper text.\n\t */\n\t@Input() helperText: string | TemplateRef<any>;\n\n\t/**\n\t * Set to `true` to show the invalid state.\n\t */\n\t@Input() invalid = false;\n\n\t/**\n\t * Value displayed if combobox is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\n\t/**\n\t* Set to `true` to show a warning (contents set by warnText)\n\t*/\n\t@Input() warn = false;\n\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\n\t/**\n\t * Emits event notifying other classes of a change using a `RadioChange` class.\n\t */\n\t@Output() change: EventEmitter<RadioChange> = new EventEmitter<RadioChange>();\n\n\t/**\n\t * The `Radio` input items in the `RadioGroup`.\n\t */\n\t// tslint:disable-next-line:no-forward-ref\n\t@ContentChildren(forwardRef(() => Radio)) radios: QueryList<Radio>;\n\n\t/**\n\t * Binds 'cds--form-item' value to the class for `RadioGroup`.\n\t */\n\t@HostBinding(\"class.cds--form-item\") radioButtonGroupClass = true;\n\n\t/**\n\t * To track whether the `RadioGroup` has been initialized.\n\t */\n\tprotected isInitialized = false;\n\t/**\n\t * Reflects whether or not the input is disabled and cannot be selected.\n\t */\n\tprotected _disabled = false;\n\t/**\n\t * Reflects whether or not the dropdown is loading.\n\t */\n\tprotected _skeleton = false;\n\t/**\n\t * The value of the selected option within the `RadioGroup`.\n\t */\n\tprotected _value: any = null;\n\t/**\n\t * The `Radio` within the `RadioGroup` that is selected.\n\t */\n\tprotected _selected: Radio = null;\n\t/**\n\t * The name attribute associated with the `RadioGroup`.\n\t */\n\tprotected _name = `radio-group-${RadioGroup.radioGroupCount++}`;\n\n\t/**\n\t * Updates the selected `Radio` to be checked (selected).\n\t */\n\tcheckSelectedRadio() {\n\t\tif (this.selected && !this._selected.checked) {\n\t\t\tthis.selected.checked = true;\n\t\t}\n\t}\n\n\t/**\n\t * Use the value of the `RadioGroup` to update the selected radio to the right state (selected state).\n\t */\n\tupdateSelectedRadioFromValue() {\n\t\tlet alreadySelected = this._selected != null && this._selected.value === this._value;\n\t\tif (this.radios && !alreadySelected) {\n\t\t\tif (this.selected && this.value) {\n\t\t\t\tthis.selected.checked = false;\n\t\t\t}\n\t\t\tthis._selected = null;\n\t\t\tthis.radios.forEach(radio => {\n\t\t\t\tif (radio.checked || radio.value === this._value) {\n\t\t\t\t\tthis._selected = radio;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (this.selected && !this.value) {\n\t\t\t\tthis._value = this.selected.value;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the `RadioGroup`.\n\t *\n\t * ex: `this.formGroup.get(\"myRadioGroup\").disable();`\n\t *\n\t * @param isDisabled `true` to disable the inputs\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t/**\n\t * Creates a class of `RadioChange` to emit the change in the `RadioGroup`.\n\t */\n\temitChangeEvent(event: RadioChange) {\n\t\tthis.change.emit(event);\n\t\tthis.propagateChange(event.value);\n\t\tthis.onTouched();\n\t}\n\n\t/**\n\t * Synchronizes radio properties.\n\t */\n\tupdateRadios() {\n\t\tif (this.radios) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.radios.forEach(radio => {\n\t\t\t\t\tradio.name = this.name;\n\t\t\t\t\tradio.setDisabledFromGroup(this.disabled);\n\t\t\t\t\tif (this.labelPlacement === \"left\") {\n\t\t\t\t\t\tradio.labelPlacement = \"left\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Updates the value of the `RadioGroup` using the provided parameter.\n\t */\n\twriteValue(value: any) {\n\t\tthis.value = value;\n\t\tsetTimeout(() => {\n\t\t\tthis.updateSelectedRadioFromValue();\n\t\t\tthis.checkSelectedRadio();\n\t\t});\n\t}\n\n\tngAfterContentInit() {\n\t\tthis.radios.changes.subscribe(() => {\n\t\t\tthis.updateRadios();\n\t\t\tthis.updateRadioChangeHandler();\n\t\t});\n\n\t\tthis.updateChildren();\n\t\tthis.updateRadioChangeHandler();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.updateRadios();\n\t}\n\n\t/**\n\t * Used to set method to propagate changes back to the form.\n\t */\n\tpublic registerOnChange(fn: any) {\n\t\tthis.propagateChange = fn;\n\t}\n\n\t/**\n\t * Registers a callback to be triggered when the control has been touched.\n\t * @param fn Callback to be triggered when the checkbox is touched.\n\t */\n\tpublic registerOnTouched(fn: any) {\n\t\tthis.onTouched = fn;\n\t}\n\n\t@HostListener(\"focusout\")\n\tfocusOut() {\n\t\tthis.onTouched();\n\t}\n\n\t/**\n\t * Needed to properly implement ControlValueAccessor.\n\t */\n\tonTouched: () => any = () => {};\n\n\t/**\n\t * Method set in registerOnChange to propagate changes back to the form.\n\t */\n\tpropagateChange = (_: any) => {};\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n\n\tprotected updateChildren() {\n\t\tif (this.radios) {\n\t\t\tthis.radios.forEach(child => child.skeleton = this.skeleton);\n\t\t}\n\t}\n\n\tprotected updateRadioChangeHandler() {\n\t\tthis.radios.forEach(radio => {\n\t\t\tradio.registerRadioChangeHandler((event: RadioChange) => {\n\t\t\t\tif ((this.selected && this.selected.value) === event.value) {\n\t\t\t\t\t// no need to redo\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// deselect previous radio\n\t\t\t\tif (this.selected) {\n\t\t\t\t\tthis.selected.checked = false;\n\t\t\t\t}\n\t\t\t\t// update selected and value from the event\n\t\t\t\tthis._selected = event.source;\n\t\t\t\tthis._value = event.value;\n\t\t\t\t// bubble the event\n\t\t\t\tthis.emitChangeEvent(event);\n\t\t\t});\n\t\t});\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { Radio } from \"./radio.component\";\nimport { RadioGroup } from \"./radio-group.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tRadio,\n\t\tRadioGroup\n\t],\n\texports: [\n\t\tRadio,\n\t\tRadioGroup\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tIconModule\n\t]\n})\nexport class RadioModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAEA;;AAEG;MACU,WAAW,CAAA;IAUvB,WAAY,CAAA,MAAa,EAAE,KAAa,EAAA;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACnB;AACD;;ACTD;;;;;;;;;;;;AAYG;MAsCU,KAAK,CAAA;AArClB,IAAA,WAAA,GAAA;AA2CU,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEV,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEjB,QAAA,IAAc,CAAA,cAAA,GAAsB,OAAO,CAAC;AAkBrD;;AAEG;AACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAK1B;;AAEG;AACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC1B;;AAEG;QACM,IAAA,CAAA,EAAE,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,UAAU,EAAE,CAAA,CAAE,CAAC;AAC5C;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAe,CAAC;AAEH,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AAMjE;;AAEG;AACH,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAE3B;;AAEG;QACH,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAkB,KAAM,GAAC,CAAC;KA4BhD;IAjFA,IAAa,cAAc,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KACzB;AAED,IAAA,IAAI,cAAc,GAAA;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC;AACxB,SAAA;AACD,QAAA,OAAO,CAAS,MAAA,EAAA,IAAI,CAAC,EAAE,EAAE,CAAC;KAC1B;AA8BD,IAAA,IAAgE,SAAS,GAAA;AACxE,QAAA,OAAO,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;KACtC;AAcD;;;AAGG;AACH,IAAA,QAAQ,CAAC,KAAY,EAAA;QACpB,KAAK,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,OAAO,CAAC,KAAY,EAAA;QACnB,IAAI,CAAC,OAAO,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;KACpC;AAED;;;AAGG;AACH,IAAA,0BAA0B,CAAC,EAAgC,EAAA;AAC1D,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;KAC7B;AAED,IAAA,oBAAoB,CAAC,QAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KAClC;;AA7FD;;AAEG;AACI,KAAU,CAAA,UAAA,GAAG,CAAC,CAAC;kGAJV,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAL,KAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,EARN,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,gBAAA,EAAA,6CAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACV,QAAA;AACC,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,KAAK,EAAE,IAAI;AACX,SAAA;AACD,KAAA,EAjCS,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FASW,KAAK,EAAA,UAAA,EAAA,CAAA;kBArCjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,CAAA,CAAA;AACD,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAO,KAAA;AAClB,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA;iBACD,CAAA;8BAOS,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEO,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAcG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAII,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAEyC,SAAS,EAAA,CAAA;sBAAxD,WAAW;uBAAC,iCAAiC,CAAA;gBAEkB,SAAS,EAAA,CAAA;sBAAxE,WAAW;uBAAC,6CAA6C,CAAA;;;AC/F3D;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;MA6DU,UAAU,CAAA;AA5DvB,IAAA,WAAA,GAAA;AA8JU,QAAA,IAAW,CAAA,WAAA,GAA8B,YAAY,CAAC;AAEtD,QAAA,IAAc,CAAA,cAAA,GAAsB,OAAO,CAAC;AAmBrD;;AAEG;AACM,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAOzB;;AAEE;AACO,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAOtB;;AAEG;AACO,QAAA,IAAA,CAAA,MAAM,GAA8B,IAAI,YAAY,EAAe,CAAC;AAQ9E;;AAEG;AACkC,QAAA,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;AAElE;;AAEG;AACO,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAChC;;AAEG;AACO,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAC5B;;AAEG;AACO,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAC5B;;AAEG;AACO,QAAA,IAAM,CAAA,MAAA,GAAQ,IAAI,CAAC;AAC7B;;AAEG;AACO,QAAA,IAAS,CAAA,SAAA,GAAU,IAAI,CAAC;AAClC;;AAEG;QACO,IAAA,CAAA,KAAK,GAAG,CAAA,YAAA,EAAe,UAAU,CAAC,eAAe,EAAE,CAAA,CAAE,CAAC;AAkHhE;;AAEG;AACH,QAAA,IAAA,CAAA,SAAS,GAAc,MAAK,GAAG,CAAC;AAEhC;;AAEG;QACH,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAM,GAAC,CAAC;KA+BjC;AAzUA;;AAEG;IACH,IACI,QAAQ,CAAC,QAAsB,EAAA;QAClC,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClG,QAAA,IAAI,eAAe,EAAE;;YAEpB,OAAO;AACP,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC1B;AAED;;AAEG;AACH,IAAA,IAAI,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;AAED;;AAEG;IACH,IACI,KAAK,CAAC,QAAa,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YAEvB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,SAAA;KACD;AAED;;AAEG;AACH,IAAA,IAAI,KAAK,GAAA;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;KACnB;AAED;;AAEG;IACH,IACI,IAAI,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;KACpB;AACD;;AAEG;AACH,IAAA,IAAI,IAAI,GAAA;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;KAClB;AAED;;AAEG;IACH,IACI,QAAQ,CAAC,QAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;KACpB;AACD;;AAEG;AACH,IAAA,IAAI,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;AAED;;AAEG;AACH,IAAA,IACI,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;AAED;;AAEG;IACH,IAAI,QAAQ,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;KACtB;AAwFD;;AAEG;IACH,kBAAkB,GAAA;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7B,SAAA;KACD;AAED;;AAEG;IACH,4BAA4B,GAAA;AAC3B,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;AACrF,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AAChC,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;gBAC3B,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;AACjD,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,iBAAA;AACF,aAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAClC,aAAA;AACD,SAAA;KACD;AAED;;;;;;AAMG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC3B;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,KAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;KACjB;AAED;;AAEG;IACH,YAAY,GAAA;QACX,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,UAAU,CAAC,MAAK;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AAC3B,oBAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,oBAAA,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,oBAAA,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;AACnC,wBAAA,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;AAC9B,qBAAA;AACF,iBAAC,CAAC,CAAC;AACJ,aAAC,CAAC,CAAC;AACH,SAAA;KACD;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,UAAU,CAAC,MAAK;YACf,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACH;IAED,kBAAkB,GAAA;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,wBAAwB,EAAE,CAAC;KAChC;IAED,eAAe,GAAA;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;KACpB;AAED;;AAEG;AACI,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC1B;AAED;;;AAGG;AACI,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACpB;IAGD,QAAQ,GAAA;QACP,IAAI,CAAC,SAAS,EAAE,CAAC;KACjB;AAYM,IAAA,UAAU,CAAC,KAAK,EAAA;QACtB,OAAO,KAAK,YAAY,WAAW,CAAC;KACpC;IAES,cAAc,GAAA;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7D,SAAA;KACD;IAES,wBAAwB,GAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AAC3B,YAAA,KAAK,CAAC,0BAA0B,CAAC,CAAC,KAAkB,KAAI;AACvD,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,EAAE;;oBAE3D,OAAO;AACP,iBAAA;;gBAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClB,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,iBAAA;;AAED,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;;AAE1B,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7B,aAAC,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;;AA7OD;;AAEG;AACI,UAAe,CAAA,eAAA,GAAG,CAAC,CAAC;uGAhGf,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EARX,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACV,QAAA;AACC,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,KAAK,EAAE,IAAI;AACX,SAAA;AACD,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAsJiC,KAAK,CA9M7B,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FASW,UAAU,EAAA,UAAA,EAAA,CAAA;kBA5DtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDT,CAAA,CAAA;AACD,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAY,UAAA;AACvB,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA;iBACD,CAAA;8BAOI,QAAQ,EAAA,CAAA;sBADX,KAAK;gBA2BF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAqBF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAgBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAgBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAiBG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAMmC,MAAM,EAAA,CAAA;sBAA/C,eAAe;gBAAC,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,KAAK,CAAC,CAAA;gBAKH,qBAAqB,EAAA,CAAA;sBAAzD,WAAW;uBAAC,sBAAsB,CAAA;gBAuInC,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,UAAU,CAAA;;;ACtYzB;MAyBa,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBAbtB,KAAK;AACL,QAAA,UAAU,aAOV,YAAY;QACZ,WAAW;AACX,QAAA,UAAU,aANV,KAAK;QACL,UAAU,CAAA,EAAA,CAAA,CAAA;AAQC,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YALtB,YAAY;QACZ,WAAW;QACX,UAAU,CAAA,EAAA,CAAA,CAAA;2FAGC,WAAW,EAAA,UAAA,EAAA,CAAA;kBAfvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,KAAK;wBACL,UAAU;AACV,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,KAAK;wBACL,UAAU;AACV,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,YAAY;wBACZ,WAAW;wBACX,UAAU;AACV,qBAAA;iBACD,CAAA;;;ACxBD;;AAEG;;;;"}