{"version":3,"file":"dynamic-angular-form.mjs","sources":["../../../projects/dynamic-form/src/lib/config.token.ts","../../../projects/dynamic-form/src/lib/dynamic-form.service.ts","../../../projects/dynamic-form/src/lib/models/dynamic-form.model.ts","../../../projects/dynamic-form/src/lib/custom_validators/link.validator.ts","../../../projects/dynamic-form/src/lib/custom_validators/confirm-password.validator.ts","../../../projects/dynamic-form/src/lib/custom_validators/phoneValidator.validator.ts","../../../projects/dynamic-form/src/lib/app-change-detection.ts","../../../projects/dynamic-form/src/lib/components/button-loader/button-loader.component.ts","../../../projects/dynamic-form/src/lib/components/button-loader/button-loader.component.html","../../../projects/dynamic-form/src/lib/google-recaptcha/google-recaptcha.component.ts","../../../projects/dynamic-form/src/lib/google-recaptcha/google-recaptcha.component.html","../../../projects/dynamic-form/src/lib/countries.ts","../../../projects/dynamic-form/src/lib/components/phone-field/phone-field.component.ts","../../../projects/dynamic-form/src/lib/components/phone-field/phone-field.component.html","../../../projects/dynamic-form/src/lib/components/drop-files/drop-files.component.ts","../../../projects/dynamic-form/src/lib/components/drop-files/drop-files.component.html","../../../projects/dynamic-form/src/lib/components/form-element/form-element.component.ts","../../../projects/dynamic-form/src/lib/components/form-element/form-element.component.html","../../../projects/dynamic-form/src/lib/components/google-login/google-login.component.ts","../../../projects/dynamic-form/src/lib/components/google-login/google-login.component.html","../../../projects/dynamic-form/src/lib/dynamic-form.component.ts","../../../projects/dynamic-form/src/lib/dynamic-form.component.html","../../../projects/dynamic-form/src/lib/components/dynamic-modal/dynamic-modal.component.ts","../../../projects/dynamic-form/src/lib/components/dynamic-modal/dynamic-modal.component.html","../../../projects/dynamic-form/src/lib/dynamic-form.module.ts","../../../projects/dynamic-form/src/lib/models/countries.model.ts","../../../projects/dynamic-form/src/public-api.ts","../../../projects/dynamic-form/src/dynamic-angular-form.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const GOOGLE_CLIENT_ID_KEY = new InjectionToken<string>('GOOGLE_CLIENT_ID_KEY');\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DynamicFormService {\r\n\r\n  constructor() { }\r\n}\r\n","import { FormGroup } from \"@angular/forms\"\r\n\r\nexport interface DynamicFormScheme {\r\n  formId: string\r\n  title: string\r\n  description?: string\r\n  active_page?: boolean\r\n  fields: FieldScheme[]\r\n  buttons: ButtonScheme[]\r\n  addons: AddonScheme[]\r\n  custom_validators: CustomValidatorScheme[]\r\n}\r\nexport interface FieldScheme {\r\n  type: FieldType\r\n  name?: string\r\n  name_?: string\r\n  src?: string\r\n  options?: any\r\n  length?: number\r\n  minDate:{ year: number, month: number, day: number }\r\n  maxDate:{ year: number, month: number, day: number }\r\n  disabledDates?: { year: number, month: number, day: number }[]\r\n  enabledDates?: { year: number, month: number, day: number }[]\r\n  autocomplete?: string\r\n  multiple?: boolean\r\n  accept?: string\r\n  width?: string\r\n  controls?: string\r\n  disabled?: boolean\r\n  visible?: boolean\r\n  formControlName?: string\r\n  version?: string\r\n  default_value?: string | number | boolean | { year: number, month: number, day: number } | { hour: number, minute: number }\r\n  values?: SelectValueScheme[]\r\n  top_label?: string\r\n  seconds?: boolean\r\n  meridian?: boolean\r\n  validators?: ValidatorScheme[]\r\n  errors?: ErrorScheme[]\r\n}\r\n\r\nexport interface SelectValueScheme {\r\n  name: string\r\n  value: string\r\n}\r\n\r\nexport interface AddonScheme {\r\n  name: AddonType\r\n  style?: number\r\n  upper_text?: string\r\n  size?: string\r\n  type?: string\r\n  theme?: string\r\n  href?: string\r\n  normal_text?: string\r\n  highlight_text?: string\r\n  href_type?: HrefTypes\r\n  text?: string\r\n  shape?: string\r\n  auto_prompt?: string\r\n  logo_alignment?: string\r\n}\r\nexport enum HrefTypes {\r\n  MODAL = 'modal',\r\n  URL = 'url',\r\n  EMITTER = 'emitter'\r\n}\r\n// Buttons\r\nexport interface ButtonScheme {\r\n  type: ButtonType\r\n  name: string\r\n  text_color: string\r\n  button_color: string\r\n  margin?: boolean\r\n  page?: number\r\n}\r\n\r\n// Errors and Validators\r\nexport interface CustomValidatorScheme {\r\n  name: string\r\n  error_name: string\r\n  text: string\r\n}\r\nexport interface ErrorScheme {\r\n  name: Errors\r\n  text: string\r\n}\r\nexport interface ValidatorScheme {\r\n  name: Errors\r\n  value: string\r\n}\r\n\r\n/*\r\n *  Types\r\n */\r\n// Addons Types\r\nexport enum AddonType {\r\n  highlight = 'highlight',\r\n  google_login = 'google-login'\r\n}\r\n\r\n//Field Types\r\nexport enum FieldType {\r\n  text = 'text',\r\n  switch = 'switch',\r\n  number = 'number',\r\n  date = 'date',\r\n  radio = 'radio',\r\n  otp = 'otp',\r\n  time = 'time',\r\n  select = 'select',\r\n  password = 'password',\r\n  textarea = 'textarea',\r\n  checkbox = 'checkbox',\r\n  checkbox_group = 'checkbox-group',\r\n  g_recaptcha = 'g-recaptcha',\r\n  section_info = 'section-info',\r\n  slider = 'slider',\r\n  telephone = 'telephone',\r\n  add_image = 'add-image',\r\n  show_image = 'show-image',\r\n  add_video = 'add-video',\r\n  show_video = 'show-video',\r\n  drag_and_drop = 'drag-and-drop'\r\n}\r\n//Button Types\r\nexport enum ButtonType {\r\n  submit = 'submit',\r\n  close = 'close',\r\n  back = 'back',\r\n  test = 'test'\r\n}\r\n//Errors Types\r\nexport enum Errors {\r\n  required = 'required',\r\n  telephone = 'telephone',\r\n  email = 'email',\r\n  maxlength = 'maxlength',\r\n  minlength = 'minlength',\r\n  max = 'max',\r\n  min = 'min',\r\n  pattern = 'pattern'\r\n}\r\nexport enum ButtonType {\r\n  SQUARE = 'rounded-0',\r\n  ROUNDED = '',\r\n  ROUNDER = 'rounded-xl',\r\n  PILL = 'rounded-pill',\r\n  CIRCLE = 'btn-circle'\r\n}\r\nexport interface DynamicSubmitEvent {\r\n  forms: Partial<FormGroup>[],\r\n  files: {\r\n    images: any[],\r\n    videos: any[],\r\n    drag_and_drop: any[]\r\n  },\r\n  formEmittingIndex: number,\r\n  emittedForms: Partial<FormGroup>[]\r\n}\r\n","import {\r\n  AbstractControl,\r\n  ValidationErrors,\r\n  ValidatorFn,\r\n} from '@angular/forms';\r\n\r\nexport const linkValidator: ValidatorFn = (\r\n  control: AbstractControl\r\n): ValidationErrors | null => {\r\n  return control.value.business_social.includes('https://') || control.value.business_social==''\r\n    ? null\r\n    : { linkNotValid: true };\r\n};\r\n","import {\r\n  AbstractControl,\r\n  ValidationErrors,\r\n  ValidatorFn,\r\n} from '@angular/forms';\r\n\r\nexport const confirmPasswordValidator: ValidatorFn = (\r\n  control: AbstractControl\r\n): ValidationErrors | null => {\r\n  return (control.value.password === control.value.confirmPassword) || (control.value.password === control.value.confirm_password)\r\n    ? null\r\n    : { PasswordNoMatch: true };\r\n};\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\nexport function phoneValidator(control: AbstractControl): ValidationErrors | null {\r\n  const value = control.value;\r\n  if (value && typeof value === 'object' && value?.valid) {\r\n    return null; // Validation passed\r\n  }\r\n  return { required: true }; // Validation failed\r\n}","import { ChangeDetectionStrategy, VERSION } from '@angular/core';\r\n\r\nexport const APP_CHANGE_DETECTION = +VERSION.major >= 22\r\n  ? ChangeDetectionStrategy.Eager\r\n  : ChangeDetectionStrategy.OnPush;","import { Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ButtonType } from '../../models/dynamic-form.model';\r\nimport { APP_CHANGE_DETECTION } from '../../app-change-detection';\r\n\r\n@Component({\r\n  selector: 'button-loader',\r\n  templateUrl: './button-loader.component.html',\r\n  styleUrls: ['./button-loader.component.scss'],\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  standalone: false\r\n})\r\nexport class ButtonLoaderComponent {\r\n  @Input() loadSpinner: boolean = false\r\n  @Input() loadCheck: boolean = false\r\n  @Input() isFormValid: boolean = true\r\n  @Input() text: string = ''\r\n  @Input() icon: string = ''\r\n  @Input() circular: boolean = false\r\n  @Input() icon_position: string = 'left'\r\n  @Input() type: string = 'submit'\r\n  @Input() color: string = 'primary'\r\n  @Input() text_color: string = 'white'\r\n  @Input() margin: boolean = true\r\n\r\n  @Input() button_type: ButtonType = ButtonType.PILL\r\n  @Input() large: boolean = false\r\n  @Input() expand: boolean = false\r\n  @Input() pulse: boolean = false\r\n\r\n  @Output() onSubmit = new EventEmitter()\r\n\r\n  protected getClassFromIcon(): string {\r\n    if (this.icon == 'credit-card') {\r\n      return 'uil uil-credit-card'\r\n    }\r\n    if (this.icon == 'deliveroo') {\r\n      return 'uil uil-credit-card'\r\n    }\r\n    if (this.icon == 'back') {\r\n      return 'uil uil-angle-left-b'\r\n    }\r\n    if (this.icon == 'info') {\r\n      return 'uil uil-info-circle'\r\n    }\r\n    return this.icon\r\n  }\r\n  protected getTextColor() {\r\n    if (this.text_color == 'white') {\r\n      return '#fff'\r\n    }\r\n    if (this.text_color == 'deliveroo') {\r\n      return '#35b8b2'\r\n    }\r\n    if (this.text_color == 'red') {\r\n      return '#e2626b'\r\n    }\r\n    if (this.text_color == 'green') {\r\n      return '#45c4a0'\r\n    }\r\n    if (this.text_color == 'yellow') {\r\n      return '#fab758'\r\n    }\r\n    if (this.text_color == 'pink') {\r\n      return '#d16b86'\r\n    }\r\n    return this.text_color\r\n  }\r\n  protected onClick() {\r\n    this.onSubmit.emit()\r\n  }\r\n\r\n}\r\n","<button (click)=\"onClick()\" [type]=\"type\" [disabled]=\"!isFormValid||loadSpinner||loadCheck\" [class]=\"'btn btn-'+color+' '+button_type\" [ngClass]=\"{'mr-1':margin,'circular':circular,'btn-expand':expand,'btn-lg':large}\">\r\n  @if (!loadSpinner && !loadCheck) {\r\n    <a class=\"d-flex align-items-center\" [style]=\"'color: '+getTextColor()\">\r\n      @if (icon!='' && icon_position=='left') {\r\n        <i [class]=\"getClassFromIcon()+' fs-20 '+(text ? 'mr-1' : '')\"></i>\r\n      }\r\n      <span>{{text}}</span>\r\n      @if (icon!='' && icon_position=='right') {\r\n        <i [class]=\"getClassFromIcon()+' fs-20'\"></i>\r\n      }\r\n    </a>\r\n  }\r\n  @if (loadCheck && !loadSpinner) {\r\n    <i style=\"font-size: 30px!important;\" class=\"uil uil-check fs-18\"></i>\r\n  }\r\n  @if (loadSpinner && !loadCheck) {\r\n    <span id=\"butt-spinner\" class=\"spinner-border spinner-border-sm\"\r\n    role=\"status\" aria-hidden=\"true\"></span>\r\n  }\r\n</button>\r\n","\r\nimport { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RecaptchaFormsModule, RecaptchaModule, RecaptchaV3Module, ReCaptchaV3Service } from 'ng-recaptcha-2';\r\nimport { APP_CHANGE_DETECTION } from '../app-change-detection';\r\n\r\n@Component({\r\n  selector: 'lib-google-recaptcha',\r\n  imports: [\r\n    RecaptchaV3Module,\r\n    RecaptchaFormsModule,\r\n    RecaptchaModule,\r\n    FormsModule,\r\n    ReactiveFormsModule\r\n  ],\r\n  providers: [\r\n    ReCaptchaV3Service\r\n  ],\r\n  templateUrl: './google-recaptcha.component.html',\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  styleUrl: './google-recaptcha.component.css'\r\n})\r\nexport class GoogleRecaptchaComponent {\r\n  @Input() id: string = '';\r\n  @Input() form: FormGroup = new FormGroup({});\r\n  @Input() formName: string = 'example';\r\n  @Input() version: string = 'v2';\r\n\r\n  protected get formControl() {\r\n    return this.form?.get(this.formName || '')\r\n  }\r\n}\r\n","@if (version == 'v2' || !version) {\r\n  <div class=\"row mt-3\">\r\n    <div class=\"col-sm-12 mb-2 g-recaptcha\" [formGroup]=\"form\">\r\n      <re-captcha [id]=\"id\" class=\"d-flex justify-content-center\"\r\n        style=\"transform:scale(1);-webkit-transform:scale(1);transform-origin:0 0;-webkit-transform-origin:0 0;\"\r\n        [formControlName]=\"formName\"\r\n      [class.is-invalid]=\"formControl?.invalid && (formControl?.dirty || formControl?.touched)\"></re-captcha>\r\n    </div>\r\n  </div>\r\n}","import { Country } from \"./models/countries.model\";\r\n\r\nexport const countries: Country[] = [\r\n    {\r\n        \"text\": \"+1 United States\",\r\n        \"code\": \"+1\",\r\n        \"country\": \"US\"\r\n    },\r\n    {\r\n        \"text\": \"+7 Russia\",\r\n        \"code\": \"+7\",\r\n        \"country\": \"RU\"\r\n    },\r\n    {\r\n        \"text\": \"+20 Egypt\",\r\n        \"code\": \"+20\",\r\n        \"country\": \"EG\"\r\n    },\r\n    {\r\n        \"text\": \"+27 South Africa\",\r\n        \"code\": \"+27\",\r\n        \"country\": \"ZA\"\r\n    },\r\n    {\r\n        \"text\": \"+30 Greece\",\r\n        \"code\": \"+30\",\r\n        \"country\": \"GR\"\r\n    },\r\n    {\r\n        \"text\": \"+31 Netherlands\",\r\n        \"code\": \"+31\",\r\n        \"country\": \"NL\"\r\n    },\r\n    {\r\n        \"text\": \"+32 Belgium\",\r\n        \"code\": \"+32\",\r\n        \"country\": \"BE\"\r\n    },\r\n    {\r\n        \"text\": \"+33 France\",\r\n        \"code\": \"+33\",\r\n        \"country\": \"FR\"\r\n    },\r\n    {\r\n        \"text\": \"+34 Spain\",\r\n        \"code\": \"+34\",\r\n        \"country\": \"ES\"\r\n    },\r\n    {\r\n        \"text\": \"+36 Hungary\",\r\n        \"code\": \"+36\",\r\n        \"country\": \"HU\"\r\n    },\r\n    {\r\n        \"text\": \"+39 Italy\",\r\n        \"code\": \"+39\",\r\n        \"country\": \"IT\"\r\n    },\r\n    {\r\n        \"text\": \"+40 Romania\",\r\n        \"code\": \"+40\",\r\n        \"country\": \"RO\"\r\n    },\r\n    {\r\n        \"text\": \"+41 Switzerland\",\r\n        \"code\": \"+41\",\r\n        \"country\": \"CH\"\r\n    },\r\n    {\r\n        \"text\": \"+43 Austria\",\r\n        \"code\": \"+43\",\r\n        \"country\": \"AT\"\r\n    },\r\n    {\r\n        \"text\": \"+44 United Kingdom\",\r\n        \"code\": \"+44\",\r\n        \"country\": \"GB\"\r\n    },\r\n    {\r\n        \"text\": \"+45 Denmark\",\r\n        \"code\": \"+45\",\r\n        \"country\": \"DK\"\r\n    },\r\n    {\r\n        \"text\": \"+46 Sweden\",\r\n        \"code\": \"+46\",\r\n        \"country\": \"SE\"\r\n    },\r\n    {\r\n        \"text\": \"+47 Norway\",\r\n        \"code\": \"+47\",\r\n        \"country\": \"NO\"\r\n    },\r\n    {\r\n        \"text\": \"+48 Poland\",\r\n        \"code\": \"+48\",\r\n        \"country\": \"PL\"\r\n    },\r\n    {\r\n        \"text\": \"+49 Germany\",\r\n        \"code\": \"+49\",\r\n        \"country\": \"DE\"\r\n    },\r\n    {\r\n        \"text\": \"+51 Peru\",\r\n        \"code\": \"+51\",\r\n        \"country\": \"PE\"\r\n    },\r\n    {\r\n        \"text\": \"+52 Mexico\",\r\n        \"code\": \"+52\",\r\n        \"country\": \"MX\"\r\n    },\r\n    {\r\n        \"text\": \"+53 Cuba\",\r\n        \"code\": \"+53\",\r\n        \"country\": \"CU\"\r\n    },\r\n    {\r\n        \"text\": \"+54 Argentina\",\r\n        \"code\": \"+54\",\r\n        \"country\": \"AR\"\r\n    },\r\n    {\r\n        \"text\": \"+55 Brazil\",\r\n        \"code\": \"+55\",\r\n        \"country\": \"BR\"\r\n    },\r\n    {\r\n        \"text\": \"+56 Chile\",\r\n        \"code\": \"+56\",\r\n        \"country\": \"CL\"\r\n    },\r\n    {\r\n        \"text\": \"+57 Colombia\",\r\n        \"code\": \"+57\",\r\n        \"country\": \"CO\"\r\n    },\r\n    {\r\n        \"text\": \"+58 Venezuela\",\r\n        \"code\": \"+58\",\r\n        \"country\": \"VE\"\r\n    },\r\n    {\r\n        \"text\": \"+60 Malaysia\",\r\n        \"code\": \"+60\",\r\n        \"country\": \"MY\"\r\n    },\r\n    {\r\n        \"text\": \"+61 Australia\",\r\n        \"code\": \"+61\",\r\n        \"country\": \"AU\"\r\n    },\r\n    {\r\n        \"text\": \"+62 Indonesia\",\r\n        \"code\": \"+62\",\r\n        \"country\": \"ID\"\r\n    },\r\n    {\r\n        \"text\": \"+63 Philippines\",\r\n        \"code\": \"+63\",\r\n        \"country\": \"PH\"\r\n    },\r\n    {\r\n        \"text\": \"+64 New Zealand\",\r\n        \"code\": \"+64\",\r\n        \"country\": \"NZ\"\r\n    },\r\n    {\r\n        \"text\": \"+65 Singapore\",\r\n        \"code\": \"+65\",\r\n        \"country\": \"SG\"\r\n    },\r\n    {\r\n        \"text\": \"+66 Thailand\",\r\n        \"code\": \"+66\",\r\n        \"country\": \"TH\"\r\n    },\r\n    {\r\n        \"text\": \"+81 Japan\",\r\n        \"code\": \"+81\",\r\n        \"country\": \"JP\"\r\n    },\r\n    {\r\n        \"text\": \"+82 South Korea\",\r\n        \"code\": \"+82\",\r\n        \"country\": \"KR\"\r\n    },\r\n    {\r\n        \"text\": \"+84 Vietnam\",\r\n        \"code\": \"+84\",\r\n        \"country\": \"VN\"\r\n    },\r\n    {\r\n        \"text\": \"+86 China\",\r\n        \"code\": \"+86\",\r\n        \"country\": \"CN\"\r\n    },\r\n    {\r\n        \"text\": \"+90 Turkey\",\r\n        \"code\": \"+90\",\r\n        \"country\": \"TR\"\r\n    },\r\n    {\r\n        \"text\": \"+91 India\",\r\n        \"code\": \"+91\",\r\n        \"country\": \"IN\"\r\n    },\r\n    {\r\n        \"text\": \"+92 Pakistan\",\r\n        \"code\": \"+92\",\r\n        \"country\": \"PK\"\r\n    },\r\n    {\r\n        \"text\": \"+93 Afghanistan\",\r\n        \"code\": \"+93\",\r\n        \"country\": \"AF\"\r\n    },\r\n    {\r\n        \"text\": \"+94 Sri Lanka\",\r\n        \"code\": \"+94\",\r\n        \"country\": \"LK\"\r\n    },\r\n    {\r\n        \"text\": \"+95 Myanmar\",\r\n        \"code\": \"+95\",\r\n        \"country\": \"MM\"\r\n    },\r\n    {\r\n        \"text\": \"+98 Iran\",\r\n        \"code\": \"+98\",\r\n        \"country\": \"IR\"\r\n    },\r\n    {\r\n        \"text\": \"+212 Morocco\",\r\n        \"code\": \"+212\",\r\n        \"country\": \"MA\"\r\n    },\r\n    {\r\n        \"text\": \"+213 Algeria\",\r\n        \"code\": \"+213\",\r\n        \"country\": \"DZ\"\r\n    },\r\n    {\r\n        \"text\": \"+216 Tunisia\",\r\n        \"code\": \"+216\",\r\n        \"country\": \"TN\"\r\n    },\r\n    {\r\n        \"text\": \"+218 Libya\",\r\n        \"code\": \"+218\",\r\n        \"country\": \"LY\"\r\n    },\r\n    {\r\n        \"text\": \"+220 Gambia\",\r\n        \"code\": \"+220\",\r\n        \"country\": \"GM\"\r\n    },\r\n    {\r\n        \"text\": \"+221 Senegal\",\r\n        \"code\": \"+221\",\r\n        \"country\": \"SN\"\r\n    },\r\n    {\r\n        \"text\": \"+222 Mauritania\",\r\n        \"code\": \"+222\",\r\n        \"country\": \"MR\"\r\n    },\r\n    {\r\n        \"text\": \"+223 Mali\",\r\n        \"code\": \"+223\",\r\n        \"country\": \"ML\"\r\n    },\r\n    {\r\n        \"text\": \"+224 Guinea\",\r\n        \"code\": \"+224\",\r\n        \"country\": \"GN\"\r\n    },\r\n    {\r\n        \"text\": \"+225 Ivory Coast\",\r\n        \"code\": \"+225\",\r\n        \"country\": \"CI\"\r\n    },\r\n    {\r\n        \"text\": \"+226 Burkina Faso\",\r\n        \"code\": \"+226\",\r\n        \"country\": \"BF\"\r\n    },\r\n    {\r\n        \"text\": \"+227 Niger\",\r\n        \"code\": \"+227\",\r\n        \"country\": \"NE\"\r\n    },\r\n    {\r\n        \"text\": \"+228 Togo\",\r\n        \"code\": \"+228\",\r\n        \"country\": \"TG\"\r\n    },\r\n    {\r\n        \"text\": \"+229 Benin\",\r\n        \"code\": \"+229\",\r\n        \"country\": \"BJ\"\r\n    },\r\n    {\r\n        \"text\": \"+230 Mauritius\",\r\n        \"code\": \"+230\",\r\n        \"country\": \"MU\"\r\n    },\r\n    {\r\n        \"text\": \"+231 Liberia\",\r\n        \"code\": \"+231\",\r\n        \"country\": \"LR\"\r\n    },\r\n    {\r\n        \"text\": \"+232 Sierra Leone\",\r\n        \"code\": \"+232\",\r\n        \"country\": \"SL\"\r\n    },\r\n    {\r\n        \"text\": \"+233 Ghana\",\r\n        \"code\": \"+233\",\r\n        \"country\": \"GH\"\r\n    },\r\n    {\r\n        \"text\": \"+234 Nigeria\",\r\n        \"code\": \"+234\",\r\n        \"country\": \"NG\"\r\n    },\r\n    {\r\n        \"text\": \"+235 Chad\",\r\n        \"code\": \"+235\",\r\n        \"country\": \"TD\"\r\n    },\r\n    {\r\n        \"text\": \"+236 Central African Republic\",\r\n        \"code\": \"+236\",\r\n        \"country\": \"CF\"\r\n    },\r\n    {\r\n        \"text\": \"+237 Cameroon\",\r\n        \"code\": \"+237\",\r\n        \"country\": \"CM\"\r\n    },\r\n    {\r\n        \"text\": \"+238 Cape Verde\",\r\n        \"code\": \"+238\",\r\n        \"country\": \"CV\"\r\n    },\r\n    {\r\n        \"text\": \"+239 Sao Tome and Principe\",\r\n        \"code\": \"+239\",\r\n        \"country\": \"ST\"\r\n    },\r\n    {\r\n        \"text\": \"+240 Equatorial Guinea\",\r\n        \"code\": \"+240\",\r\n        \"country\": \"GQ\"\r\n    },\r\n    {\r\n        \"text\": \"+241 Gabon\",\r\n        \"code\": \"+241\",\r\n        \"country\": \"GA\"\r\n    },\r\n    {\r\n        \"text\": \"+242 Republic of the Congo\",\r\n        \"code\": \"+242\",\r\n        \"country\": \"CG\"\r\n    },\r\n    {\r\n        \"text\": \"+243 Republic of the Congo\",\r\n        \"code\": \"+243\",\r\n        \"country\": \"CD\"\r\n    },\r\n    {\r\n        \"text\": \"+244 Angola\",\r\n        \"code\": \"+244\",\r\n        \"country\": \"AO\"\r\n    },\r\n    {\r\n        \"text\": \"+245 Guinea-Bissau\",\r\n        \"code\": \"+245\",\r\n        \"country\": \"GW\"\r\n    },\r\n    {\r\n        \"text\": \"+246 Ocean Territory\",\r\n        \"code\": \"+246\",\r\n        \"country\": \"IO\"\r\n    },\r\n    {\r\n        \"text\": \"+248 Seychelles\",\r\n        \"code\": \"+248\",\r\n        \"country\": \"SC\"\r\n    },\r\n    {\r\n        \"text\": \"+249 Sudan\",\r\n        \"code\": \"+249\",\r\n        \"country\": \"SD\"\r\n    },\r\n    {\r\n        \"text\": \"+250 Rwanda\",\r\n        \"code\": \"+250\",\r\n        \"country\": \"RW\"\r\n    },\r\n    {\r\n        \"text\": \"+251 Ethiopia\",\r\n        \"code\": \"+251\",\r\n        \"country\": \"ET\"\r\n    },\r\n    {\r\n        \"text\": \"+252 Somalia\",\r\n        \"code\": \"+252\",\r\n        \"country\": \"SO\"\r\n    },\r\n    {\r\n        \"text\": \"+253 Djibouti\",\r\n        \"code\": \"+253\",\r\n        \"country\": \"DJ\"\r\n    },\r\n    {\r\n        \"text\": \"+254 Kenya\",\r\n        \"code\": \"+254\",\r\n        \"country\": \"KE\"\r\n    },\r\n    {\r\n        \"text\": \"+255 Tanzania\",\r\n        \"code\": \"+255\",\r\n        \"country\": \"TZ\"\r\n    },\r\n    {\r\n        \"text\": \"+256 Uganda\",\r\n        \"code\": \"+256\",\r\n        \"country\": \"UG\"\r\n    },\r\n    {\r\n        \"text\": \"+257 Burundi\",\r\n        \"code\": \"+257\",\r\n        \"country\": \"BI\"\r\n    },\r\n    {\r\n        \"text\": \"+258 Mozambique\",\r\n        \"code\": \"+258\",\r\n        \"country\": \"MZ\"\r\n    },\r\n    {\r\n        \"text\": \"+260 Zambia\",\r\n        \"code\": \"+260\",\r\n        \"country\": \"ZM\"\r\n    },\r\n    {\r\n        \"text\": \"+261 Madagascar\",\r\n        \"code\": \"+261\",\r\n        \"country\": \"MG\"\r\n    },\r\n    {\r\n        \"text\": \"+262 Reunion\",\r\n        \"code\": \"+262\",\r\n        \"country\": \"RE\"\r\n    },\r\n    {\r\n        \"text\": \"+263 Zimbabwe\",\r\n        \"code\": \"+263\",\r\n        \"country\": \"ZW\"\r\n    },\r\n    {\r\n        \"text\": \"+264 Namibia\",\r\n        \"code\": \"+264\",\r\n        \"country\": \"NA\"\r\n    },\r\n    {\r\n        \"text\": \"+265 Malawi\",\r\n        \"code\": \"+265\",\r\n        \"country\": \"MW\"\r\n    },\r\n    {\r\n        \"text\": \"+266 Lesotho\",\r\n        \"code\": \"+266\",\r\n        \"country\": \"LS\"\r\n    },\r\n    {\r\n        \"text\": \"+267 Botswana\",\r\n        \"code\": \"+267\",\r\n        \"country\": \"BW\"\r\n    },\r\n    {\r\n        \"text\": \"+268 Eswatini\",\r\n        \"code\": \"+268\",\r\n        \"country\": \"SZ\"\r\n    },\r\n    {\r\n        \"text\": \"+269 Comoros\",\r\n        \"code\": \"+269\",\r\n        \"country\": \"KM\"\r\n    },\r\n    {\r\n        \"text\": \"+290 Saint Helena\",\r\n        \"code\": \"+290\",\r\n        \"country\": \"SH\"\r\n    },\r\n    {\r\n        \"text\": \"+291 Eritrea\",\r\n        \"code\": \"+291\",\r\n        \"country\": \"ER\"\r\n    },\r\n    {\r\n        \"text\": \"+297 Aruba\",\r\n        \"code\": \"+297\",\r\n        \"country\": \"AW\"\r\n    },\r\n    {\r\n        \"text\": \"+298 Faroe Islands\",\r\n        \"code\": \"+298\",\r\n        \"country\": \"FO\"\r\n    },\r\n    {\r\n        \"text\": \"+299 Greenland\",\r\n        \"code\": \"+299\",\r\n        \"country\": \"GL\"\r\n    },\r\n    {\r\n        \"text\": \"+350 Gibraltar\",\r\n        \"code\": \"+350\",\r\n        \"country\": \"GI\"\r\n    },\r\n    {\r\n        \"text\": \"+351 Portugal\",\r\n        \"code\": \"+351\",\r\n        \"country\": \"PT\"\r\n    },\r\n    {\r\n        \"text\": \"+352 Luxembourg\",\r\n        \"code\": \"+352\",\r\n        \"country\": \"LU\"\r\n    },\r\n    {\r\n        \"text\": \"+353 Ireland\",\r\n        \"code\": \"+353\",\r\n        \"country\": \"IE\"\r\n    },\r\n    {\r\n        \"text\": \"+354 Iceland\",\r\n        \"code\": \"+354\",\r\n        \"country\": \"IS\"\r\n    },\r\n    {\r\n        \"text\": \"+355 Albania\",\r\n        \"code\": \"+355\",\r\n        \"country\": \"AL\"\r\n    },\r\n    {\r\n        \"text\": \"+356 Malta\",\r\n        \"code\": \"+356\",\r\n        \"country\": \"MT\"\r\n    },\r\n    {\r\n        \"text\": \"+357 Cyprus\",\r\n        \"code\": \"+357\",\r\n        \"country\": \"CY\"\r\n    },\r\n    {\r\n        \"text\": \"+358 Finland\",\r\n        \"code\": \"+358\",\r\n        \"country\": \"FI\"\r\n    },\r\n    {\r\n        \"text\": \"+359 Bulgaria\",\r\n        \"code\": \"+359\",\r\n        \"country\": \"BG\"\r\n    },\r\n    {\r\n        \"text\": \"+370 Lithuania\",\r\n        \"code\": \"+370\",\r\n        \"country\": \"LT\"\r\n    },\r\n    {\r\n        \"text\": \"+371 Latvia\",\r\n        \"code\": \"+371\",\r\n        \"country\": \"LV\"\r\n    },\r\n    {\r\n        \"text\": \"+372 Estonia\",\r\n        \"code\": \"+372\",\r\n        \"country\": \"EE\"\r\n    },\r\n    {\r\n        \"text\": \"+373 Moldova\",\r\n        \"code\": \"+373\",\r\n        \"country\": \"MD\"\r\n    },\r\n    {\r\n        \"text\": \"+374 Armenia\",\r\n        \"code\": \"+374\",\r\n        \"country\": \"AM\"\r\n    },\r\n    {\r\n        \"text\": \"+375 Belarus\",\r\n        \"code\": \"+375\",\r\n        \"country\": \"BY\"\r\n    },\r\n    {\r\n        \"text\": \"+376 Andorra\",\r\n        \"code\": \"+376\",\r\n        \"country\": \"AD\"\r\n    },\r\n    {\r\n        \"text\": \"+377 Monaco\",\r\n        \"code\": \"+377\",\r\n        \"country\": \"MC\"\r\n    },\r\n    {\r\n        \"text\": \"+378 San Marino\",\r\n        \"code\": \"+378\",\r\n        \"country\": \"SM\"\r\n    },\r\n    {\r\n        \"text\": \"+380 Ukraine\",\r\n        \"code\": \"+380\",\r\n        \"country\": \"UA\"\r\n    },\r\n    {\r\n        \"text\": \"+381 Serbia\",\r\n        \"code\": \"+381\",\r\n        \"country\": \"RS\"\r\n    },\r\n    {\r\n        \"text\": \"+382 Montenegro\",\r\n        \"code\": \"+382\",\r\n        \"country\": \"ME\"\r\n    },\r\n    {\r\n        \"text\": \"+385 Croatia\",\r\n        \"code\": \"+385\",\r\n        \"country\": \"HR\"\r\n    },\r\n    {\r\n        \"text\": \"+386 Slovenia\",\r\n        \"code\": \"+386\",\r\n        \"country\": \"SI\"\r\n    },\r\n    {\r\n        \"text\": \"+387 Bosnia and Herzegovina\",\r\n        \"code\": \"+387\",\r\n        \"country\": \"BA\"\r\n    },\r\n    {\r\n        \"text\": \"+389 North Macedonia\",\r\n        \"code\": \"+389\",\r\n        \"country\": \"MK\"\r\n    },\r\n    {\r\n        \"text\": \"+420 Czech Republic\",\r\n        \"code\": \"+420\",\r\n        \"country\": \"CZ\"\r\n    },\r\n    {\r\n        \"text\": \"+421 Slovakia\",\r\n        \"code\": \"+421\",\r\n        \"country\": \"SK\"\r\n    },\r\n    {\r\n        \"text\": \"+423 Liechtenstein\",\r\n        \"code\": \"+423\",\r\n        \"country\": \"LI\"\r\n    },\r\n    {\r\n        \"text\": \"+500 Falkland Islands\",\r\n        \"code\": \"+500\",\r\n        \"country\": \"FK\"\r\n    },\r\n    {\r\n        \"text\": \"+501 Belize\",\r\n        \"code\": \"+501\",\r\n        \"country\": \"BZ\"\r\n    },\r\n    {\r\n        \"text\": \"+502 Guatemala\",\r\n        \"code\": \"+502\",\r\n        \"country\": \"GT\"\r\n    },\r\n    {\r\n        \"text\": \"+503 El Salvador\",\r\n        \"code\": \"+503\",\r\n        \"country\": \"SV\"\r\n    },\r\n    {\r\n        \"text\": \"+504 Honduras\",\r\n        \"code\": \"+504\",\r\n        \"country\": \"HN\"\r\n    },\r\n    {\r\n        \"text\": \"+505 Nicaragua\",\r\n        \"code\": \"+505\",\r\n        \"country\": \"NI\"\r\n    },\r\n    {\r\n        \"text\": \"+506 Costa Rica\",\r\n        \"code\": \"+506\",\r\n        \"country\": \"CR\"\r\n    },\r\n    {\r\n        \"text\": \"+507 Panama\",\r\n        \"code\": \"+507\",\r\n        \"country\": \"PA\"\r\n    },\r\n    {\r\n        \"text\": \"+508 Saint Pierre and Miquelon\",\r\n        \"code\": \"+508\",\r\n        \"country\": \"PM\"\r\n    },\r\n    {\r\n        \"text\": \"+509 Haiti\",\r\n        \"code\": \"+509\",\r\n        \"country\": \"HT\"\r\n    },\r\n    {\r\n        \"text\": \"+590 Guadeloupe\",\r\n        \"code\": \"+590\",\r\n        \"country\": \"GP\"\r\n    },\r\n    {\r\n        \"text\": \"+591 Bolivia\",\r\n        \"code\": \"+591\",\r\n        \"country\": \"BO\"\r\n    },\r\n    {\r\n        \"text\": \"+592 Guyana\",\r\n        \"code\": \"+592\",\r\n        \"country\": \"GY\"\r\n    },\r\n    {\r\n        \"text\": \"+593 Ecuador\",\r\n        \"code\": \"+593\",\r\n        \"country\": \"EC\"\r\n    },\r\n    {\r\n        \"text\": \"+594 French Guiana\",\r\n        \"code\": \"+594\",\r\n        \"country\": \"GF\"\r\n    },\r\n    {\r\n        \"text\": \"+595 Paraguay\",\r\n        \"code\": \"+595\",\r\n        \"country\": \"PY\"\r\n    },\r\n    {\r\n        \"text\": \"+596 Martinique\",\r\n        \"code\": \"+596\",\r\n        \"country\": \"MQ\"\r\n    },\r\n    {\r\n        \"text\": \"+597 Suriname\",\r\n        \"code\": \"+597\",\r\n        \"country\": \"SR\"\r\n    },\r\n    {\r\n        \"text\": \"+598 Uruguay\",\r\n        \"code\": \"+598\",\r\n        \"country\": \"UY\"\r\n    },\r\n    {\r\n        \"text\": \"+599 Curaçao\",\r\n        \"code\": \"+599\",\r\n        \"country\": \"CW\"\r\n    },\r\n    {\r\n        \"text\": \"+670 Timor-Leste\",\r\n        \"code\": \"+670\",\r\n        \"country\": \"TL\"\r\n    },\r\n    {\r\n        \"text\": \"+672 Antarctica\",\r\n        \"code\": \"+672\",\r\n        \"country\": \"AQ\"\r\n    },\r\n    {\r\n        \"text\": \"+673 Brunei\",\r\n        \"code\": \"+673\",\r\n        \"country\": \"BN\"\r\n    },\r\n    {\r\n        \"text\": \"+674 Nauru\",\r\n        \"code\": \"+674\",\r\n        \"country\": \"NR\"\r\n    },\r\n    {\r\n        \"text\": \"+675 Papua New Guinea\",\r\n        \"code\": \"+675\",\r\n        \"country\": \"PG\"\r\n    },\r\n    {\r\n        \"text\": \"+676 Tonga\",\r\n        \"code\": \"+676\",\r\n        \"country\": \"TO\"\r\n    },\r\n    {\r\n        \"text\": \"+677 Solomon Islands\",\r\n        \"code\": \"+677\",\r\n        \"country\": \"SB\"\r\n    },\r\n    {\r\n        \"text\": \"+678 Vanuatu\",\r\n        \"code\": \"+678\",\r\n        \"country\": \"VU\"\r\n    },\r\n    {\r\n        \"text\": \"+679 Fiji\",\r\n        \"code\": \"+679\",\r\n        \"country\": \"FJ\"\r\n    },\r\n    {\r\n        \"text\": \"+680 Palau\",\r\n        \"code\": \"+680\",\r\n        \"country\": \"PW\"\r\n    },\r\n    {\r\n        \"text\": \"+681 Wallis and Futuna\",\r\n        \"code\": \"+681\",\r\n        \"country\": \"WF\"\r\n    },\r\n    {\r\n        \"text\": \"+682 Cook Islands\",\r\n        \"code\": \"+682\",\r\n        \"country\": \"CK\"\r\n    },\r\n    {\r\n        \"text\": \"+683 Niue\",\r\n        \"code\": \"+683\",\r\n        \"country\": \"NU\"\r\n    },\r\n    {\r\n        \"text\": \"+685 Samoa\",\r\n        \"code\": \"+685\",\r\n        \"country\": \"WS\"\r\n    },\r\n    {\r\n        \"text\": \"+686 Kiribati\",\r\n        \"code\": \"+686\",\r\n        \"country\": \"KI\"\r\n    },\r\n    {\r\n        \"text\": \"+687 New Caledonia\",\r\n        \"code\": \"+687\",\r\n        \"country\": \"NC\"\r\n    },\r\n    {\r\n        \"text\": \"+688 Tuvalu\",\r\n        \"code\": \"+688\",\r\n        \"country\": \"TV\"\r\n    },\r\n    {\r\n        \"text\": \"+689 French Polynesia\",\r\n        \"code\": \"+689\",\r\n        \"country\": \"PF\"\r\n    },\r\n    {\r\n        \"text\": \"+690 Tokelau\",\r\n        \"code\": \"+690\",\r\n        \"country\": \"TK\"\r\n    },\r\n    {\r\n        \"text\": \"+691 States of Micronesia\",\r\n        \"code\": \"+691\",\r\n        \"country\": \"FM\"\r\n    },\r\n    {\r\n        \"text\": \"+692 Marshall Islands\",\r\n        \"code\": \"+692\",\r\n        \"country\": \"MH\"\r\n    },\r\n    {\r\n        \"text\": \"+850 North Korea\",\r\n        \"code\": \"+850\",\r\n        \"country\": \"KP\"\r\n    },\r\n    {\r\n        \"text\": \"+852 Hong Kong\",\r\n        \"code\": \"+852\",\r\n        \"country\": \"HK\"\r\n    },\r\n    {\r\n        \"text\": \"+853 Macau\",\r\n        \"code\": \"+853\",\r\n        \"country\": \"MO\"\r\n    },\r\n    {\r\n        \"text\": \"+855 Cambodia\",\r\n        \"code\": \"+855\",\r\n        \"country\": \"KH\"\r\n    },\r\n    {\r\n        \"text\": \"+856 Laos\",\r\n        \"code\": \"+856\",\r\n        \"country\": \"LA\"\r\n    },\r\n    {\r\n        \"text\": \"+880 Bangladesh\",\r\n        \"code\": \"+880\",\r\n        \"country\": \"BD\"\r\n    },\r\n    {\r\n        \"text\": \"+886 Taiwan\",\r\n        \"code\": \"+886\",\r\n        \"country\": \"TW\"\r\n    },\r\n    {\r\n        \"text\": \"+960 Maldives\",\r\n        \"code\": \"+960\",\r\n        \"country\": \"MV\"\r\n    },\r\n    {\r\n        \"text\": \"+961 Lebanon\",\r\n        \"code\": \"+961\",\r\n        \"country\": \"LB\"\r\n    },\r\n    {\r\n        \"text\": \"+962 Jordan\",\r\n        \"code\": \"+962\",\r\n        \"country\": \"JO\"\r\n    },\r\n    {\r\n        \"text\": \"+963 Syria\",\r\n        \"code\": \"+963\",\r\n        \"country\": \"SY\"\r\n    },\r\n    {\r\n        \"text\": \"+964 Iraq\",\r\n        \"code\": \"+964\",\r\n        \"country\": \"IQ\"\r\n    },\r\n    {\r\n        \"text\": \"+965 Kuwait\",\r\n        \"code\": \"+965\",\r\n        \"country\": \"KW\"\r\n    },\r\n    {\r\n        \"text\": \"+966 Saudi Arabia\",\r\n        \"code\": \"+966\",\r\n        \"country\": \"SA\"\r\n    },\r\n    {\r\n        \"text\": \"+967 Yemen\",\r\n        \"code\": \"+967\",\r\n        \"country\": \"YE\"\r\n    },\r\n    {\r\n        \"text\": \"+968 Oman\",\r\n        \"code\": \"+968\",\r\n        \"country\": \"OM\"\r\n    },\r\n    {\r\n        \"text\": \"+970 Palestine\",\r\n        \"code\": \"+970\",\r\n        \"country\": \"PS\"\r\n    },\r\n    {\r\n        \"text\": \"+971 United Arab Emirates\",\r\n        \"code\": \"+971\",\r\n        \"country\": \"AE\"\r\n    },\r\n    {\r\n        \"text\": \"+972 Israel\",\r\n        \"code\": \"+972\",\r\n        \"country\": \"IL\"\r\n    },\r\n    {\r\n        \"text\": \"+973 Bahrain\",\r\n        \"code\": \"+973\",\r\n        \"country\": \"BH\"\r\n    },\r\n    {\r\n        \"text\": \"+974 Qatar\",\r\n        \"code\": \"+974\",\r\n        \"country\": \"QA\"\r\n    },\r\n    {\r\n        \"text\": \"+975 Bhutan\",\r\n        \"code\": \"+975\",\r\n        \"country\": \"BT\"\r\n    },\r\n    {\r\n        \"text\": \"+976 Mongolia\",\r\n        \"code\": \"+976\",\r\n        \"country\": \"MN\"\r\n    },\r\n    {\r\n        \"text\": \"+977 Nepal\",\r\n        \"code\": \"+977\",\r\n        \"country\": \"NP\"\r\n    },\r\n    {\r\n        \"text\": \"+992 Tajikistan\",\r\n        \"code\": \"+992\",\r\n        \"country\": \"TJ\"\r\n    },\r\n    {\r\n        \"text\": \"+993 Turkmenistan\",\r\n        \"code\": \"+993\",\r\n        \"country\": \"TM\"\r\n    },\r\n    {\r\n        \"text\": \"+994 Azerbaijan\",\r\n        \"code\": \"+994\",\r\n        \"country\": \"AZ\"\r\n    },\r\n    {\r\n        \"text\": \"+995 Georgia\",\r\n        \"code\": \"+995\",\r\n        \"country\": \"GE\"\r\n    },\r\n    {\r\n        \"text\": \"+996 Kyrgyzstan\",\r\n        \"code\": \"+996\",\r\n        \"country\": \"KG\"\r\n    },\r\n    {\r\n        \"text\": \"+998 Uzbekistan\",\r\n        \"code\": \"+998\",\r\n        \"country\": \"UZ\"\r\n    }\r\n]","import { Component, EventEmitter, Input, OnInit, Output, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { countries } from '../../countries';\r\nimport * as libphonenumber from 'google-libphonenumber';\r\nimport { Country } from '../../models/countries.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { APP_CHANGE_DETECTION } from '../../app-change-detection';\r\n\r\n@Component({\r\n  selector: 'app-phone-field',\r\n  templateUrl: './phone-field.component.html',\r\n  styleUrl: './phone-field.component.scss',\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  standalone: false\r\n})\r\nexport class PhoneFieldComponent implements OnInit {\r\n  @Input() id: string = '';\r\n  @Input() label: string = '';\r\n  @Input() form: FormGroup | undefined;\r\n  @Input() formName: string = '';\r\n  @Output() onPhoneSelected = new EventEmitter<any>();\r\n\r\n  protected countries: Country[] = countries\r\n\r\n  protected selectedCountry: Country = {\r\n    code: '+39',\r\n    country: 'IT'\r\n  };\r\n  protected phoneUtil = libphonenumber.PhoneNumberUtil.getInstance();\r\n\r\n  protected searchText: string = '';\r\n  protected filteredPhoneNumbers: Country[] = [];\r\n\r\n  constructor(\r\n    private translate: TranslateService\r\n  ) {\r\n    this.filteredPhoneNumbers = [...this.countries];\r\n  }\r\n  ngOnInit() {\r\n\r\n  }\r\n\r\n  protected onSearchCountriesInput() {\r\n    this.filteredPhoneNumbers = this.countries.filter(i =>\r\n      (i.text || '').toLowerCase().includes(this.searchText.toLowerCase())\r\n    );\r\n  }\r\n\r\n  protected selectPhoneItem(phone: any) {\r\n    this.selectedCountry = phone;\r\n    if (!this.phoneValue) {\r\n      this.onPhoneSelected.emit(undefined)\r\n      return\r\n    }\r\n    this.onPhoneSelected.emit({\r\n      number: this.phoneValue,\r\n      valid: this.isValidField(this.phoneValue),\r\n      country: {\r\n        code: this.selectedCountry.code,\r\n        country: this.selectedCountry.country\r\n      }\r\n    });\r\n  }\r\n  protected isValidField(phone: string) {\r\n    try {\r\n      const number = this.phoneUtil.parseAndKeepRawInput(phone, this.selectedCountry.country);\r\n      return this.phoneUtil.isValidNumber(number) || this.phoneUtil.isValidNumberForRegion(number, this.selectedCountry.country)\r\n    } catch (e) {\r\n      return false\r\n    }\r\n  }\r\n  get phoneValue(): string {\r\n    return this.form?.get(this.formName)?.value?.number || '';\r\n  }\r\n\r\n  protected onTypeNumber(event: any) {\r\n    const value = event.target.value || '';\r\n    const control = this.form?.get(this.formName);\r\n\r\n    if (!control) return;\r\n\r\n    if (!value) {\r\n      control.setValue(undefined);\r\n      this.onPhoneSelected.emit(undefined);\r\n      return;\r\n    }\r\n    const body = {\r\n      ...(control.value || {}),\r\n      number: value,\r\n      country: {\r\n        code: this.selectedCountry.code,\r\n        country: this.selectedCountry.country\r\n      }\r\n    }\r\n    control.setValue(body);\r\n    this.onPhoneSelected.emit(body);\r\n  }\r\n  protected openPhoneSelect() {\r\n    const button = document.querySelector('#open-' + this.id) as HTMLButtonElement;\r\n    button.click();\r\n  }\r\n\r\n  protected get translatePrefix() {\r\n    const currLang = this.translate.currentLang\r\n    return currLang == 'it' ? 'Seleziona Prefisso' : 'Select Prefix'\r\n  }\r\n  protected get translateDescription() {\r\n    const currLang = this.translate.currentLang\r\n    return currLang == 'it' ? 'Inserisci il suffisso del tuo paese' : 'Enter the suffix of your country'\r\n  }\r\n  protected get translateSearch() {\r\n    const currLang = this.translate.currentLang\r\n    return currLang == 'it' ? 'Cerca' : 'Search'\r\n  }\r\n  protected get translateNoResults() {\r\n    const currLang = this.translate.currentLang\r\n    return currLang == 'it' ? 'Nessun risultato trovato' : 'No results found'\r\n  }\r\n}\r\n","<div class=\"d-flex justify-content-center mb-4 dropdown\">\r\n  <ul class=\"dropdown-menu\" style=\"padding: 20px;width: 350px;\">\r\n    <h1>{{translatePrefix}}</h1>\r\n    <p>{{translateDescription}}</p>\r\n    <div class=\"form-floating mb-4 mt-4\">\r\n      <input (input)=\"onSearchCountriesInput()\" [(ngModel)]=\"searchText\" name=\"search-input\" type=\"text\"\r\n        class=\"form-control\" [placeholder]=\"translateSearch\">\r\n        <label [for]=\"id\">{{translateSearch}}</label>\r\n      </div>\r\n      <div style=\"overflow-y: scroll;max-height: 300px;\">\r\n        @for (phone of filteredPhoneNumbers; track phone) {\r\n          <li class=\"nav-item\">\r\n            <a (click)=\"selectPhoneItem(phone)\"\r\n              class=\"dropdown-item d-flex align-items-center justify-content-between custom-search-input pointer\">\r\n              <span class=\"fi\"\r\n              [ngStyle]=\"{ 'background-image': 'url(\\'assets/flags/4x3/' + (phone.country | lowercase) + '.svg\\')' }\"></span>\r\n              {{ phone.text }}\r\n            </a>\r\n          </li>\r\n        }\r\n        @if (filteredPhoneNumbers.length == 0) {\r\n          <p class=\"text-center\">{{translateNoResults}}</p>\r\n        }\r\n      </div>\r\n    </ul>\r\n\r\n    <button data-bs-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" [id]=\"'open'+id\"\r\n      class=\"d-flex custom-tel-butt\" color=\"dark\">\r\n      <span class=\"fi\"\r\n      [ngStyle]=\"{ 'background-image': 'url(\\'assets/flags/4x3/' + (selectedCountry.country | lowercase) + '.svg\\')' }\"></span>{{selectedCountry.code}}\r\n    </button>\r\n    <div class=\"form-floating\">\r\n      <input #number (input)=\"onTypeNumber($event)\" [ngClass]=\"{'is-invalid': !isValidField(phoneValue) && phoneValue !== ''}\" [value]=\"phoneValue\"\r\n        [id]=\"id\" type=\"tel\" class=\"form-control custom-tel-input\" placeholder=\"328 888 9999\">\r\n        <label [for]=\"id\">{{label}}</label>\r\n      </div>\r\n    </div>","import { Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { APP_CHANGE_DETECTION } from '../../app-change-detection';\r\n\r\n@Component({\r\n  selector: 'drop-files',\r\n  standalone: false,\r\n  templateUrl: './drop-files.component.html',\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  styleUrl: './drop-files.component.scss'\r\n})\r\nexport class DropFilesComponent {\r\n  protected files: File[] = [];\r\n  protected isDragOver = false;\r\n  @Input() id: string = '';\r\n  @Input() accept: string = 'image/png, image/gif, image/jpeg, image/jpg';\r\n  @Input() maxFiles: number = 5;\r\n  @Output() fileSelected = new EventEmitter<File[]>();\r\n\r\n  constructor(\r\n    private translate: TranslateService\r\n  ) { }\r\n\r\n  protected onDragOver(event: DragEvent) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.isDragOver = true;\r\n  }\r\n\r\n  protected onDragLeave(event: DragEvent) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.isDragOver = false;\r\n  }\r\n\r\n  protected onDrop(event: DragEvent) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    this.isDragOver = false;\r\n\r\n    if (!event.dataTransfer) {\r\n      return;\r\n    }\r\n    const acceptedTypes = this.accept.split(',').map(x => x.trim());\r\n    const droppedFiles = Array.from(event.dataTransfer.files);\r\n\r\n    if((this.files.length)+(droppedFiles.length) > this.maxFiles) {\r\n      return\r\n    }\r\n    \r\n    const filteredFiles = droppedFiles.filter(file => acceptedTypes.includes(file.type));\r\n\r\n    if (filteredFiles.length === 0) {\r\n      console.log('Nessun file supportato è stato trascinato.');\r\n      return;\r\n    }\r\n    this.files.push(...droppedFiles);\r\n    this.fileSelected.emit(this.files);\r\n    // qui puoi chiamare il servizio per l’upload\r\n  }\r\n\r\n  protected onFileSelected(event: Event) {\r\n    const input = event.target as HTMLInputElement;\r\n    if (!input.files?.length) {\r\n      return;\r\n    }\r\n    const acceptedTypes = this.accept.split(',').map(x => x.trim());\r\n    const selectedFiles = Array.from(input.files);\r\n    const filteredFiles = selectedFiles.filter(file => acceptedTypes.includes(file.type));\r\n\r\n    if((this.files.length)+(selectedFiles.length) > this.maxFiles) {\r\n      return\r\n    }\r\n    if (filteredFiles.length === 0) {\r\n      console.log('Nessun file supportato è stato trascinato.');\r\n      return;\r\n    }\r\n    this.files.push(...selectedFiles);\r\n    // anche qui eventuale upload\r\n    this.fileSelected.emit(this.files);\r\n  }\r\n  protected bytesToMb(bytes: number) {\r\n    return (bytes / (1024 * 1024)).toFixed(2);\r\n  }\r\n  protected removeFile(index: number) {\r\n    this.files.splice(index, 1);\r\n    this.fileSelected.emit(this.files);\r\n  }\r\n  protected get translateTitle() {\r\n    const currLang = this.translate.currentLang\r\n    return currLang == 'it' ? 'Trascina qui i file o clicca per selezionare' : 'Drag and drop files or click to select'\r\n  }\r\n}\r\n","<div [id]=\"id\">\r\n  <div class=\"dropzone mb-3\" (dragover)=\"onDragOver($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\"\r\n    (click)=\"fileInput.click()\" [class.dropzone-over]=\"isDragOver\">\r\n    <p class=\"m-0\">{{translateTitle}}</p>\r\n    <input [attr.accept]=\"accept\" type=\"file\" multiple (change)=\"onFileSelected($event)\" hidden #fileInput />\r\n  </div>\r\n\r\n  @if (files.length) {\r\n    <ul>\r\n      @for (file of files; track file; let idx = $index) {\r\n        <li>\r\n          <div class=\"d-flex align-items-center\" style=\"gap:10px\">\r\n            <span>{{ file.name }} ({{ bytesToMb(file.size) }} MB)</span>\r\n            <button-loader type=\"button\" (onSubmit)=\"removeFile(idx)\" [circular]=\"true\" icon=\"uil uil-trash-alt\" color=\"red\" />\r\n          </div>\r\n        </li>\r\n      }\r\n    </ul>\r\n  }\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FieldType, SelectValueScheme } from '../../models/dynamic-form.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { APP_CHANGE_DETECTION } from '../../app-change-detection';\r\n\r\n@Component({\r\n  selector: 'form-element',\r\n  templateUrl: './form-element.component.html',\r\n  styleUrls: ['./form-element.component.scss'],\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  standalone: false\r\n})\r\nexport class FormElementComponent implements OnInit {\r\n  @Input() id: string = '';\r\n  @Input() type: FieldType = FieldType.text;\r\n  @Input() label: string = 'Example';\r\n  @Input() form: FormGroup = new FormGroup({});\r\n  @Input() formName: string = 'example';\r\n  @Input() disabled: boolean = false;\r\n  @Input() autocomplete: string = 'off';\r\n  @Input() default_value: any;\r\n  // Select\r\n  @Input() values: SelectValueScheme[] = [];\r\n  // Slider\r\n  @Input() options: any;\r\n  // OTP\r\n  @Input() length: number = 6;\r\n  // show_video and show_image\r\n  @Input() controls: string = '';\r\n  @Input() width!: string;\r\n  @Input() src: string = '';\r\n  // add_image\r\n  @Input() displayMedia: string = ''\r\n  @Input() multiple: boolean = false;\r\n  @Input() accept: string = 'image/png, image/gif, image/jpeg, image/jpg';\r\n  @Output() onChooseMedia: EventEmitter<any> = new EventEmitter()\r\n\r\n  // Date\r\n  @Input() minDate: any;\r\n  @Input() maxDate: any;\r\n  @Input() disabledDates: { year: number, month: number, day: number }[] = []\r\n  @Input() enabledDates: { year: number, month: number, day: number }[] = []\r\n  protected defMinDate = { year: 1930, month: 1, day: 1 }\r\n  protected defMaxDate = { year: new Date().setFullYear(new Date().getFullYear() + 5), month: 12, day: 31 }\r\n\r\n  //G-Recaptcha\r\n  @Input() version: string = '';\r\n\r\n  // Time\r\n  @Input() meridian: boolean = false\r\n  @Input() seconds: boolean = true\r\n\r\n  // Errors\r\n  @Input() errors: any[] = [];\r\n\r\n  @Output() onChange = new EventEmitter<any>()\r\n\r\n  protected showPassword = false\r\n  protected isDisabled:any;\r\n  protected loadedFunc = false\r\n  protected FieldTypesEnum: typeof FieldType = FieldType\r\n\r\n  constructor(private translate: TranslateService) {\r\n  }\r\n  ngOnInit() {\r\n    this.flushDates()\r\n    if (!this.form) return\r\n    this.form.valueChanges.subscribe((e: any) => {\r\n      this.onChange.emit(e)\r\n    })\r\n  }\r\n  protected flushDates() {\r\n    this.loadedFunc = false\r\n    if (this.disabledDates.length > 0) {\r\n      this.isDisabled = (\r\n        date: NgbDateStruct\r\n        //current: { day: number; month: number; year: number }\r\n      ) => {\r\n        return this.disabledDates.find(x =>\r\n          (new NgbDate(x.year, x.month, x.day).equals(date)))\r\n          ? true\r\n          : false;\r\n      };\r\n    } else if (this.enabledDates.length > 0) {\r\n      this.isDisabled = (\r\n        date: NgbDateStruct\r\n        //current: { day: number; month: number; year: number }\r\n      ) => {\r\n        return this.enabledDates.find(x =>\r\n          (new NgbDate(x.year, x.month, x.day).equals(date)))\r\n          ? false\r\n          : true;\r\n      };\r\n    } else {\r\n      this.isDisabled = (\r\n        date: NgbDateStruct\r\n        //current: { day: number; month: number; year: number }\r\n      ) => {\r\n        return false\r\n      };\r\n    }\r\n    this.loadedFunc = true\r\n  }\r\n  protected get formControl(){\r\n    return this.form?.get(this.formName || '')\r\n  }\r\n  protected sanitizeInput(formControlName: string) {\r\n    if (!this.form) return\r\n    const control = this.form.get(formControlName);\r\n    if (control) {\r\n      const sanitizedValue = control.value.replace(/<[^>]*>/g, \"\");\r\n      control.setValue(sanitizedValue, { emitEvent: false });\r\n    }\r\n  }\r\n  protected getRealFieldType(fieldType: string) {\r\n    return fieldType.replace(/_/g, '-').toLowerCase().trim()\r\n  }\r\n  // slider\r\n  protected getSliderOptions(options: any) {\r\n    let body = {\r\n      ...options,\r\n      getPointerColor: (value: number) => {\r\n        return 'var(--bs-primary)'\r\n      }\r\n    }\r\n    return body\r\n  }\r\n  // otp\r\n  protected onOtpChange(event: any, formControlName: string) {\r\n    this.form.patchValue({ [formControlName]: event })\r\n  }\r\n  // add image\r\n  protected openSelectorFiles(id: string) {\r\n    const selector = document.getElementById(id) as HTMLElement\r\n    selector.click()\r\n  }\r\n  protected toAdd(event: any, mode: string = 'img') {\r\n    let addTree = []\r\n    this.displayMedia = URL.createObjectURL(event.target.files[0])\r\n    for (let file of event.target.files) {\r\n      var src = URL.createObjectURL(file);\r\n      addTree.push({ file: file, src: src, id: this.id, });\r\n    }\r\n    this.onChooseMedia.emit({\r\n      id: this.id,\r\n      files: addTree,\r\n      mode: mode\r\n    });\r\n  }\r\n  protected handleFiles(files: File[]) {\r\n    let addTree = []\r\n    for (let file of files) {\r\n      var src = URL.createObjectURL(file);\r\n      addTree.push({ file: file, src: src, id: this.id, });\r\n    }\r\n    this.onChooseMedia.emit({\r\n      id: this.id,\r\n      files: addTree,\r\n      mode: 'drag-and-drop'\r\n    });\r\n  }\r\n  protected getTranslatedName(field: any, key: string = 'name'): string {\r\n    const currLang = this.translate.currentLang\r\n    if (currLang != 'it' && field[key + '_' + currLang] != undefined) return field[key + '_' + currLang]\r\n    return field[key]\r\n  }\r\n}\r\n","@switch(getRealFieldType(type)) {\r\n\r\n@case(getRealFieldType(FieldTypesEnum.g_recaptcha)) {\r\n<lib-google-recaptcha [id]=\"id\" [formName]=\"formName\" [form]=\"form\" [version]=\"version\" />\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.textarea)) {\r\n<div class=\"form-floating mb-4\" [formGroup]=\"form\">\r\n  <textarea [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\" [name]=\"formName\"\r\n    (input)=\"sanitizeInput(formName)\" [formControlName]=\"formName\" [id]=\"id\" class=\"form-control\" [placeholder]=\"label\"\r\n    style=\"height: 150px\"></textarea>\r\n  <label [for]=\"id\">{{label}}</label>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.checkbox)) {\r\n<div class=\"form-check text-end\" [formGroup]=\"form\">\r\n  <input [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\" [name]=\"formName\"\r\n    [formControlName]=\"formName\" class=\"form-check-input\" type=\"checkbox\" value=\"\" [id]=\"id\">\r\n  <label class=\"form-check-label\" [for]=\"id\"> {{label}} </label>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.checkbox_group)) {\r\n<div class=\"d-flex justify-content-between\" style=\"flex-wrap: wrap;gap: 15px;\">\r\n  <ng-container *ngFor=\"let value of values;let idx = index\">\r\n    <div class=\"form-check text-end\" [formGroup]=\"form\">\r\n      <input [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\" [name]=\"formName\"\r\n        [formControlName]=\"formName\" class=\"form-check-input\" type=\"checkbox\" [value]=\"value.value\" [id]=\"id+'-'+idx\">\r\n      <label class=\"form-check-label\" [for]=\"id+'-'+idx\"> {{value.name}} </label>\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.switch)) {\r\n<div class=\"d-flex justify-content-between align-items-center\">\r\n  <p class=\"m-0\">{{label}}</p>\r\n  <label class=\"switch\" [formGroup]=\"form\">\r\n    <input type=\"checkbox\" [name]=\"formName\" [formControlName]=\"formName\" [id]=\"id\">\r\n    <span class=\"slider\"></span>\r\n  </label>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.radio)) {\r\n<div [formGroup]=\"form\">\r\n  <div class=\"form-check\" *ngFor=\"let value of values\">\r\n    <input [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\" [value]=\"value.value\"\r\n      [formControlName]=\"formName\" class=\"form-check-input\" type=\"radio\" [name]=\"formName\" [id]=\"id\">\r\n    <label class=\"form-check-label\" [for]=\"id\"> {{getTranslatedName(value,'name')}} </label>\r\n  </div>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.select)) {\r\n<div class=\"form-select-wrapper mb-4\" [formGroup]=\"form\">\r\n  <select [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\" [id]=\"id\" [formControlName]=\"formName\"\r\n    [name]=\"formName\" class=\"form-select\">\r\n    <option value=\"\" disabled selected>{{label}}</option>\r\n    <option *ngFor=\"let value of values\" [value]=\"value.value\">\r\n      {{getTranslatedName(value,'name')}}</option>\r\n  </select>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.slider)) {\r\n<div [formGroup]=\"form\" class=\"form-floating\">\r\n  <ngx-slider [id]=\"id\" [formControlName]=\"formName || ''\" [options]=\"getSliderOptions(options)\" />\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.password)) {\r\n<div [formGroup]=\"form\" class=\"form-floating password-field mb-4\">\r\n  <input [style]=\"\" [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\" [id]=\"id\"\r\n    [autocomplete]=\"autocomplete\" [type]=\"showPassword ? 'text':'password'\"\r\n    [class]=\"'form-control '+((formControl?.invalid && formControl.touched) ? 'pr-3':'pr-2')\" [placeholder]=\"label\"\r\n    [name]=\"formName || ''\" [formControlName]=\"formName || ''\">\r\n  <span (click)=\"showPassword = !showPassword\"\r\n    [class]=\"'password-toggle '+((formControl?.invalid && formControl.touched) ? 'pw-invalid':'')\"><i class=\"uil\"\r\n      [ngClass]=\"{'uil-eye': !showPassword, 'uil-eye-slash': showPassword}\"></i></span>\r\n  <label [for]=\"id\">{{label}}</label>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.otp)) {\r\n<div class=\"mb-3 d-flex\" style=\"align-items: center;justify-content: center;\">\r\n  <ng-otp-input [id]=\"id\" (onInputChange)=\"onOtpChange($event, formName || '')\"\r\n    [config]=\"{length:length, inputClass:'otp-input',allowNumbersOnly:true,placeholder:'_'}\" />\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.telephone)) {\r\n<div [formGroup]=\"form\" class=\"mb-4\">\r\n  <app-phone-field [form]=\"form\" [formName]=\"formName\" id=\"search-popover\" [label]=\"label\" />\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.section_info)) {\r\n<p [id]=\"id\" class=\"lead mb-6 text-start\">{{label}}</p>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.show_image)) {\r\n<div class=\"mb-4\">\r\n  <img [id]=\"id\" [width]=\"width\" [src]=\"src\">\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.show_video)) {\r\n<div class=\"mb-4\">\r\n  <video [id]=\"id\" [controls]=\"controls\" [width]=\"width\" [src]=\"src\"></video>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.add_image)) {\r\n<div [id]=\"id\" (click)=\"openSelectorFiles('input-file-'+label)\"\r\n  class=\"shadow-xl pdr-60px card pointer resp-block justify-content-center lift mb-8\"\r\n  [style]=\"'font-size: 80px;width: auto;padding: 25px;height: 180px;background-size: cover; background-position: center;'+ (displayMedia!='' ? 'background-image: url('+displayMedia+');':'')\">\r\n  <a class=\"text-center\" [hidden]=\"displayMedia!=''\">+</a>\r\n  <input [disabled]=\"disabled\" (change)=\"toAdd($event)\" [id]=\"'input-file-'+label\" style=\"display: none;\" type=\"file\"\r\n    [attr.multiple]=\"multiple ? multiple : null\"\r\n    [attr.accept]=\"(accept!='' && accept!=null && accept!=undefined) ? accept :'image/png, image/gif, image/jpeg, image/jpg'\">\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.drag_and_drop)) {\r\n<div>\r\n  <drop-files [maxFiles]=\"length\" [id]=\"id\" [accept]=\"accept ? accept : 'image/png, image/gif, image/jpeg, image/jpg'\"\r\n    (fileSelected)=\"handleFiles($event)\" />\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.add_video)) {\r\n\r\n@if(displayMedia!=''){\r\n<div [id]=\"id\" (click)=\"openSelectorFiles('input-file-'+label)\" class=\"video-container pointer lift mb-8\"\r\n  style=\"font-size: 80px;width: auto;padding: 25px;height: 180px;background-size: cover; background-position: center;\">\r\n  <video [src]=\"displayMedia\" [controls]=\"controls ? controls : null\" [width]=\"width\" playsinline autoplay\r\n    [muted]=\"'muted'\" loop id=\"bg-video\">\r\n  </video>\r\n  <input [disabled]=\"disabled\" (change)=\"toAdd($event,'video')\" [id]=\"'input-file-'+label\" style=\"display: none;\"\r\n    type=\"file\" [attr.multiple]=\"multiple ? multiple : null\"\r\n    [attr.accept]=\" (accept!='' && accept!=null && accept!=undefined) ? accept :'video/mp4,video/x-m4v,video/*'\">\r\n</div>\r\n}\r\n@else{\r\n<div [id]=\"id\" (click)=\"openSelectorFiles('input-file-'+label)\"\r\n  class=\"shadow-xl pdr-60px card pointer resp-block justify-content-center lift mb-8\"\r\n  style=\"font-size: 80px;width: auto;padding: 25px;height: 180px;background-size: cover; background-position: center;\">\r\n  <a class=\"text-center\">+</a>\r\n  <input [disabled]=\"disabled\" (change)=\"toAdd($event,'video')\" [id]=\"'input-file-'+label\" style=\"display: none;\"\r\n    type=\"file\" [attr.multiple]=\"multiple ? multiple : null\"\r\n    [attr.accept]=\" (accept!='' && accept!=null && accept!=undefined) ? accept :'video/mp4,video/x-m4v,video/*'\">\r\n</div>\r\n}\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.date)) {\r\n<div class=\"form-floating mb-4\">\r\n  <div [formGroup]=\"form\" [id]=\"id\" class=\"input-group\" *ngIf=\"loadedFunc\">\r\n    <input [markDisabled]=\"isDisabled\" class=\"form-control\" [minDate]=\"minDate ? minDate: defMinDate\"\r\n      [maxDate]=\"maxDate ? maxDate :defMaxDate\" [placeholder]=\"label ? label : 'yyyy-mm-dd'\" [name]=\"formName\"\r\n      [formControlName]=\"formName\" ngbDatepicker #d=\"ngbDatepicker\" />\r\n    <button class=\"btn bi bi-calendar3\" (click)=\"d.toggle()\" type=\"button\"><i class=\"uil uil-calendar-alt\"></i></button>\r\n  </div>\r\n</div>\r\n}\r\n@case(getRealFieldType(FieldTypesEnum.time)) {\r\n<div class=\"form-floating\">\r\n  <div [formGroup]=\"form\" [id]=\"id\" class=\"input-group d-grid\">\r\n    <p>{{label}}</p>\r\n    <ngb-timepicker [meridian]=\"meridian\" [disabled]=\"disabled\" [seconds]=\"seconds\"\r\n      class=\"d-flex justify-content-center\" [formControlName]=\"formName\">\r\n    </ngb-timepicker>\r\n  </div>\r\n</div>\r\n}\r\n@default {\r\n<div class=\"form-floating mb-4\" [formGroup]=\"form\">\r\n  <input [autocomplete]=\"autocomplete\" [ngClass]=\"{'is-invalid': formControl?.invalid && formControl.touched}\"\r\n    [name]=\"formName\" (input)=\"sanitizeInput(formName)\" [formControlName]=\"formName\" [id]=\"id\" [type]=\"type\"\r\n    class=\"form-control\" [placeholder]=\"label\">\r\n  <label [for]=\"id\">{{label}}</label>\r\n</div>\r\n}\r\n}\r\n@if(!formControl?.valid && (formControl?.dirty || formControl?.touched)){\r\n<div class=\"alert alert-danger\">\r\n  @for (error of errors; track error) {\r\n  <div>\r\n    <div [hidden]=\"!formControl.errors?.[error.name.toLowerCase()]\">\r\n      {{getTranslatedName(error,'text')}}\r\n    </div>\r\n  </div>\r\n  }\r\n</div>\r\n}","import { Component, EventEmitter, OnInit, Output, Input, OnDestroy, Inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { GOOGLE_CLIENT_ID_KEY } from '../../config.token';\r\nimport { APP_CHANGE_DETECTION } from '../../app-change-detection';\r\n\r\ndeclare global {\r\n  interface Window {\r\n    google: any;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'google-login',\r\n  templateUrl: './google-login.component.html',\r\n  styleUrls: ['./google-login.component.css'],\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  standalone: false\r\n})\r\nexport class GoogleLoginComponent implements OnInit, OnDestroy {\r\n  @Output() loginWithGoogle: EventEmitter<any> = new EventEmitter<any>();\r\n  @Input() gStyle: number = 2\r\n  @Input() type: string = 'standard'\r\n  @Input() size: string = 'medium'\r\n  @Input() theme: string = 'outline'\r\n  @Input() text: string = 'sign_in_with'\r\n  @Input() shape: string = 'rectangular'\r\n  @Input() logo_alignment: string = 'left'\r\n  @Input() auto_prompt: string = 'false'\r\n  protected script ?: HTMLScriptElement\r\n\r\n  constructor(@Inject(GOOGLE_CLIENT_ID_KEY) public googleClientId: string) { }\r\n\r\n  ngOnInit() {\r\n    if (this.gStyle == 2) {\r\n      (window as any).handleGoogleLoginV2 = this.handleGoogleLoginV2.bind(this);\r\n      // Load the Google Sign-In script dynamically\r\n      this.script = document.createElement('script');\r\n      this.script.src = 'https://accounts.google.com/gsi/client';\r\n      this.script.async = true;\r\n      this.script.setAttribute('rel','preconnect')\r\n      this.script.defer = true;\r\n      document.body.appendChild(this.script);\r\n    }\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.script?.parentElement?.removeChild(this.script)\r\n  }\r\n\r\n  protected handleGoogleLoginV2(response: any) {\r\n    this.loginWithGoogle.emit(response);\r\n  }\r\n\r\n\r\n}\r\n","@if (gStyle==2) {\r\n  <div id=\"g_id_onload\" [attr.data-client_id]=\"googleClientId\" [attr.data-auto_prompt]=\"auto_prompt\"\r\n    data-callback=\"handleGoogleLoginV2\">\r\n  </div>\r\n  <div\r\n    [attr.data-size]=\"size\"\r\n    class=\"g_id_signin\"\r\n    [attr.data-type]=\"type\"\r\n    [attr.data-theme]=\"theme\"\r\n    [attr.data-text]=\"text\"\r\n    [attr.data-shape]=\"shape\"\r\n    [attr.data-logo_alignment]=\"logo_alignment\"\r\n  ></div>\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output, PLATFORM_ID, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AddonScheme, AddonType, ButtonType, DynamicFormScheme, DynamicSubmitEvent, Errors, FieldType, HrefTypes, SelectValueScheme } from './models/dynamic-form.model';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { linkValidator } from './custom_validators/link.validator';\r\nimport { confirmPasswordValidator } from './custom_validators/confirm-password.validator';\r\nimport { phoneValidator } from './custom_validators/phoneValidator.validator';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { ReCaptchaV3Service } from 'ng-recaptcha-2';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { APP_CHANGE_DETECTION } from './app-change-detection';\r\n@Component({\r\n  selector: 'dynamic-form',\r\n  templateUrl: './dynamic-form.component.html',\r\n  styleUrls: ['./dynamic-form.component.scss'],\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  standalone: false\r\n})\r\nexport class DynamicFormComponent implements OnInit {\r\n\r\n  @Input() formSchemes: DynamicFormScheme[] = []\r\n  @Input() loadSpinner: boolean = false\r\n  @Input() isSubmitFailed: boolean = false\r\n  @Input() errorMessage: string = '';\r\n  @Input() isOnModal: boolean = false;\r\n  @Input() disableSubmit: boolean = false\r\n\r\n  @Output() onSubmit: EventEmitter<DynamicSubmitEvent> = new EventEmitter<DynamicSubmitEvent>();\r\n  @Output() onCloseForm: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() loginWithGoogle: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onBack: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() formValueChanges = new EventEmitter<any>()\r\n\r\n  @Output() addonSubmit = new EventEmitter<any>();\r\n\r\n  @Output() formInit = new EventEmitter<{ id: string; form: FormGroup }>();\r\n\r\n\r\n  protected FieldTypesEnum: typeof FieldType = FieldType\r\n  protected AddonsEnum: typeof AddonType = AddonType\r\n  protected ButtonsEnum: typeof ButtonType = ButtonType\r\n  protected hrefTypes: typeof HrefTypes = HrefTypes\r\n\r\n\r\n\r\n  protected addTree: any = []\r\n  protected addVideoTree: any = []\r\n  protected addDragAndDropTree: any = []\r\n  protected formGroup: FormGroup[] = []\r\n  protected emittedForms: any[] = []\r\n\r\n  constructor(\r\n    @Inject(PLATFORM_ID) private platformId: Object,\r\n    private recaptchaV3Service: ReCaptchaV3Service,\r\n    private translate: TranslateService\r\n  ) {\r\n  }\r\n  ngOnInit() {\r\n\r\n    if (isPlatformServer(this.platformId)) return;\r\n    const excludedFromControl = [\r\n      this.FieldTypesEnum.show_image,\r\n      this.FieldTypesEnum.add_image,\r\n      this.FieldTypesEnum.add_video,\r\n      this.FieldTypesEnum.show_video,\r\n      this.FieldTypesEnum.drag_and_drop,\r\n      this.FieldTypesEnum.section_info\r\n    ]\r\n    this.emittedForms = []\r\n    for (let i = 0; i < this.formSchemes.length; i++) {\r\n      const formScheme = this.formSchemes[i]\r\n      this.formGroup[i] = new FormGroup({})\r\n      for (let j = 0; j < formScheme.fields.length; j++) {\r\n        const currField = formScheme.fields[j]\r\n        if (!excludedFromControl.includes(currField.type)) {\r\n          this.addFormControl(currField.formControlName as string, currField.default_value as string, currField.validators, i, currField.disabled as boolean)\r\n        }\r\n      }\r\n      for (let j = 0; j < formScheme?.custom_validators?.length; j++) {\r\n        switch (formScheme.custom_validators[j].name) {\r\n          case 'confirmPasswordValidator': {\r\n            this.formGroup[i].addValidators(confirmPasswordValidator)\r\n            break\r\n          }\r\n          case 'linkValidator': {\r\n            this.formGroup[i].addValidators(linkValidator)\r\n            break\r\n          }\r\n        }\r\n      }\r\n      this.formInit.emit({ id: formScheme.formId, form: this.formGroup[i] });\r\n      Object.keys(this.formGroup[i].controls).forEach(controlName => {\r\n        this.formGroup[i].controls[controlName].valueChanges.subscribe(value => {\r\n          this.formValueChanges.emit({\r\n            control: controlName,\r\n            valid: this.formGroup[i].get(controlName)?.valid,\r\n            value: {\r\n              ...this.formGroup[i].value,\r\n              [controlName]: value\r\n            },\r\n            formIdx: i\r\n          });\r\n        });\r\n      });\r\n    }\r\n\r\n  }\r\n  private addFormControl(fieldName: string, default_value: string, validators: any, formGroupIndex: number, fieldDisabled: boolean) {\r\n    let valArr = []\r\n    for (let i = 0; i < validators?.length; i++) {\r\n      const val = validators[i]\r\n      switch (val.name.toLowerCase()) {\r\n        case Errors.required: {\r\n          valArr.push(Validators.required)\r\n          break;\r\n        }\r\n        case Errors.telephone: {\r\n          valArr.push(phoneValidator)\r\n          break;\r\n        }\r\n        case Errors.maxlength: {\r\n          valArr.push(Validators.maxLength(val.value))\r\n          break;\r\n        }\r\n        case Errors.minlength: {\r\n          valArr.push(Validators.minLength(val.value))\r\n          break;\r\n        }\r\n        case Errors.pattern: {\r\n          valArr.push(Validators.pattern(val.value))\r\n          break;\r\n        }\r\n        case Errors.min: {\r\n          valArr.push(Validators.min(val.value))\r\n          break;\r\n        }\r\n        case Errors.max: {\r\n          valArr.push(Validators.max(val.value))\r\n          break;\r\n        }\r\n        case Errors.email: {\r\n          valArr.push(Validators.email)\r\n          break;\r\n        }\r\n      }\r\n\r\n    }\r\n    this.formGroup[formGroupIndex].addControl(fieldName, new FormControl({\r\n      value: default_value,\r\n      disabled: fieldDisabled\r\n    }, Validators.compose(valArr)));\r\n  }\r\n  updateForm(formGroup: number, values: any) {\r\n    this.formGroup[formGroup].patchValue(values)\r\n  }\r\n  onSubmitForm(idx: number) {\r\n    // Se vuole usare recaptcha v3\r\n    //this.formSchemes[idx].active_page = false\r\n    if (this.formGroup[idx].invalid) return { success: false }\r\n\r\n    let isV3GRecaptcha = false\r\n    let fieldName = ''\r\n    for (let i = 0; i < this.formSchemes[idx].fields.length; i++) {\r\n      if (this.formSchemes[idx].fields[i].type == this.FieldTypesEnum.g_recaptcha) {\r\n        if (this.formSchemes[idx].fields[i].version == 'v3') {\r\n          isV3GRecaptcha = true\r\n          fieldName = this.formSchemes[idx].fields[i].formControlName as string\r\n          break\r\n        }\r\n      }\r\n    }\r\n    if (isV3GRecaptcha) {\r\n      this.recaptchaV3Service.execute('importantAction')\r\n        .subscribe((token) => {\r\n          this.formGroup[idx].value[fieldName] = token\r\n          this.emittedForms.push(this.formGroup[idx])\r\n          this.onSubmit.emit({\r\n            forms: this.formGroup, files: {\r\n              images: this.addTree,\r\n              videos: this.addVideoTree,\r\n              drag_and_drop: this.addDragAndDropTree\r\n            }, formEmittingIndex: idx, emittedForms: this.emittedForms\r\n          });\r\n        });\r\n    } else {\r\n      this.emittedForms.push(this.formGroup[idx])\r\n      this.onSubmit.emit({\r\n        forms: this.formGroup, files: {\r\n          images: this.addTree,\r\n          videos: this.addVideoTree,\r\n          drag_and_drop: this.addDragAndDropTree\r\n        }, formEmittingIndex: idx, emittedForms: this.emittedForms\r\n      });\r\n    }\r\n    return { success: true }\r\n  }\r\n  protected onTestSubmit() {\r\n    console.log(this.formGroup)\r\n    console.log(this.addTree)\r\n    console.log(this.addVideoTree)\r\n    console.log(this.addDragAndDropTree)\r\n  }\r\n  protected onBackPage(page: number) {\r\n    this.goToPage(page)\r\n    this.formGroup[page + 1]?.reset()\r\n    this.emittedForms = this.emittedForms.filter((form: any) => form !== this.formGroup[page])\r\n    //this.ngOnInit()\r\n    this.isSubmitFailed = false\r\n    this.onBack.emit({\r\n      page: page\r\n    })\r\n  }\r\n  protected onClose() {\r\n    this.goToPage(0)\r\n    this.emittedForms = []\r\n    this.addTree = []\r\n    this.addVideoTree = []\r\n    this.addDragAndDropTree = []\r\n    for (let i = 0; i < this.formGroup.length; i++) {\r\n      this.formGroup[i].reset()\r\n      const currScheme = this.formSchemes[i]?.fields as any\r\n      let patchForm: Record<string, any> = {};\r\n      for (let j = 0; j < currScheme.length; j++) {\r\n        if (currScheme[j]) {\r\n          patchForm[currScheme[j].formControlName] = currScheme[j].default_value\r\n        }\r\n      }\r\n      this.formGroup[i].patchValue(patchForm)\r\n    }\r\n    this.onCloseForm.emit(true)\r\n  }\r\n  resetAndGoToPage(page: number) {\r\n    for (let i = 0; i < this.formSchemes.length; i++) {\r\n      this.formGroup[i].reset()\r\n      const currScheme = this.formSchemes[i]?.fields as any\r\n      let patchForm: Record<string, any> = {};\r\n      for (let j = 0; j < currScheme.length; j++) {\r\n        if (currScheme[j]) {\r\n          patchForm[currScheme[j].formControlName] = currScheme[j].default_value\r\n        }\r\n      }\r\n      this.formGroup[i].patchValue(patchForm)\r\n    }\r\n    this.goToPage(page)\r\n    this.emittedForms = []\r\n    this.ngOnInit()\r\n  }\r\n\r\n  protected handleGoogleLoginV2(response: any) {\r\n    this.loginWithGoogle.emit(response);\r\n  }\r\n  public goToPage(page: number): void {\r\n    if (!this.formSchemes?.[page]) return;\r\n    //Se la pagina non esiste\r\n    if (page > this.formSchemes.length) {\r\n      return\r\n    }\r\n    this.addTree = []\r\n    this.addVideoTree = []\r\n    this.addDragAndDropTree = []\r\n    //Se la pagina è dopo la prima\r\n    for (let i = 0; i < this.formSchemes.length; i++) {\r\n      this.formSchemes[i].active_page = false\r\n    }\r\n    this.formSchemes[page].active_page = true\r\n  }\r\n  isFormValid(idx: number): boolean {\r\n    return this.formGroup[idx].valid\r\n  }\r\n  closeModal() {\r\n    if (this.isOnModal) setTimeout(() => { document.getElementById('closeModalButt')?.click() });\r\n  }\r\n  protected submitAddon(addon: AddonScheme) {\r\n    this.addonSubmit.emit(addon.href)\r\n  }\r\n  protected getTranslatedName(field: any, key: string = 'name'): string {\r\n    const currLang = this.translate.currentLang\r\n    if (currLang != 'it' && field[key + '_' + currLang] != undefined) return field[key + '_' + currLang]\r\n    return field[key]\r\n  }\r\n\r\n  protected onChooseMedia(event: any, id: string) {\r\n    if (event.mode == 'img') {\r\n      this.addTree = this.addTree.filter((file: any) => file.id != id)\r\n      this.addTree = [\r\n        ...this.addTree,\r\n        ...event.files\r\n      ]\r\n    } else if (event.mode == 'video') {\r\n      this.addVideoTree = this.addVideoTree.filter((file: any) => file.id != id)\r\n      this.addVideoTree = [\r\n        ...this.addVideoTree,\r\n        ...event.files\r\n      ]\r\n    } else if (event.mode == 'drag-and-drop') {\r\n      this.addDragAndDropTree = this.addDragAndDropTree.filter((file: any) => file.id != id)\r\n      this.addDragAndDropTree = [\r\n        ...this.addDragAndDropTree,\r\n        ...event.files\r\n      ]\r\n    }\r\n  }\r\n  protected getHighlightAddontext(addon: any, position: string): string {\r\n    const translatedName = this.getTranslatedName(addon, 'normal_text')\r\n    if (position == 'before') {\r\n      return translatedName.split('[*]')[0] || ''\r\n    } else if (position == 'after') {\r\n      return translatedName.split('[*]')[1] || ''\r\n    }\r\n    return ''\r\n  }\r\n\r\n\r\n  changeDescription(idx: number, description: string) {\r\n    this.formSchemes[idx].description = description\r\n  }\r\n  changeDefaultValue(idx: number, formControlName: string, value: any) {\r\n    this.updateField(idx, formControlName, {\r\n      default_value: value\r\n    })\r\n  }\r\n  changeVisibility(idx: number, formControlName: string, visible: boolean) {\r\n    this.updateField(idx, formControlName, {\r\n      visible: visible\r\n    })\r\n  }\r\n  fillSelects(idx: number, formControlName: string, values: SelectValueScheme[]) {\r\n    this.updateField(idx, formControlName, {\r\n      values: values\r\n    })\r\n  }\r\n  changeRangeDate(idx: number, formControlName: string, minDate: { year: number, month: number, day: number }, maxDate: { year: number, month: number, day: number }) {\r\n    this.updateField(idx, formControlName, {\r\n      minDate: minDate\r\n    })\r\n    this.updateField(idx, formControlName, {\r\n      maxDate: maxDate\r\n    })\r\n  }\r\n\r\n  enableDates(idx: number, formControlName: string, values: any) {\r\n    this.updateField(idx, formControlName, {\r\n      enabledDates: values\r\n    })\r\n  }\r\n\r\n  disableDates(idx: number, formControlName: string, values: any) {\r\n    this.updateField(idx, formControlName, {\r\n      disabledDates: values\r\n    })\r\n  }\r\n  private updateField(idx: number, formControlName: string, value: any) {\r\n    for (let i = 0; i < this.formSchemes[idx].fields.length; i++) {\r\n      if (this.formSchemes[idx].fields[i].formControlName == formControlName) {\r\n        this.formSchemes[idx].fields[i] = {\r\n          ...this.formSchemes[idx].fields[i],\r\n          ...value\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n","@for (formScheme of formSchemes; track formScheme; let idx = $index) {\r\n  @if ((formScheme.active_page) || (formSchemes.length == 1)) {\r\n    <h2 [id]=\"'title-'+idx\" class=\"mb-3 text-start\">{{getTranslatedName(formScheme,'title')}}</h2>\r\n    @if (getTranslatedName(formScheme,'description')) {\r\n      <p [id]=\"'description-'+idx\" class=\"lead mb-6 text-start\">\r\n        {{getTranslatedName(formScheme,'description')}}\r\n      </p>\r\n    }\r\n    <form [id]=\"formScheme.formId || 'defId'\" [formGroup]=\"formGroup[idx]\" (ngSubmit)=\"onSubmitForm(idx)\" class=\"mt-4\">\r\n      @for (field of formScheme.fields; track field; let fieldIdx = $index) {\r\n        <div [class]=\"(field.visible == false ? 'hidden':'')\" class=\"mb-4\"\r\n          [id]=\"formScheme.formId+'-'+field.formControlName+'-main'\">\r\n          @if (field.top_label) {\r\n            <div class=\"text-left\" [id]=\"formScheme.formId+'-'+field.formControlName+'-toplabel'\">\r\n              <p class=\"col-form-label\" style=\"color: #60697b;\">{{getTranslatedName(field,'top_label')}}</p>\r\n            </div>\r\n          }\r\n          <form-element [default_value]=\"field.default_value\" [id]=\"formScheme.formId+'-'+field.formControlName\"\r\n            [type]=\"field.type\" [seconds]=\"field.seconds || false\" [meridian]=\"field.meridian || false\"\r\n            [disabled]=\"field.disabled || false\" [label]=\"getTranslatedName(field)\"\r\n            [autocomplete]=\"field.autocomplete || 'off'\" [formName]=\"field.formControlName || ''\"\r\n            [form]=\"formGroup[idx]\" [displayMedia]=\"field.default_value?.toString() || ''\" [values]=\"field.values || []\"\r\n            [options]=\"field.options || {}\" [length]=\"field.length || 6\" [controls]=\"field.controls || ''\"\r\n            [width]=\"field.width || ''\" [src]=\"field.src || ''\" [multiple]=\"field.multiple || false\"\r\n            [accept]=\"field.accept || ''\" [minDate]=\"field.minDate || ''\" [maxDate]=\"field.maxDate || ''\" [disabledDates]=\"field.disabledDates || []\" [enabledDates]=\"field.enabledDates || []\"\r\n            [version]=\"field.version || ''\" [errors]=\"field.errors || []\"\r\n            (onChooseMedia)=\"onChooseMedia($event,formScheme.formId+'-'+field.formControlName)\" />\r\n          </div>\r\n        }\r\n        @for (error of formScheme.custom_validators; track error) {\r\n          <div>\r\n            <div [hidden]=\"!formGroup[idx]!.errors?.[error.error_name]\" class=\"mt-4 alert alert-danger custom\">\r\n              {{getTranslatedName(error,'text')}}\r\n            </div>\r\n          </div>\r\n        }\r\n        <ng-content />\r\n        @if (isSubmitFailed) {\r\n          <div class=\"alert alert-danger\">\r\n            {{errorMessage}}\r\n          </div>\r\n        }\r\n        <div class=\"d-flex justify-content-center\">\r\n          @for (button of formScheme.buttons; track button) {\r\n            <div class=\"mb-3\">\r\n              @switch (button.type) {\r\n                @case (ButtonsEnum.close) {\r\n                  <button-loader [margin]=\"button.margin || false\" (onSubmit)=\"onClose()\"\r\n                    [isFormValid]=\"true\" [text]=\"getTranslatedName(button)\" type=\"button\" [text_color]=\"button.text_color\"\r\n                    [color]=\"button.button_color\" data-bs-dismiss=\"modal\" />\r\n                }\r\n                @case (ButtonsEnum.test) {\r\n                  <button-loader [margin]=\"button.margin || false\" [isFormValid]=\"true\"\r\n                    [text]=\"getTranslatedName(button)\" type=\"button\" (onSubmit)=\"onTestSubmit()\"\r\n                    [text_color]=\"button.text_color\" [color]=\"button.button_color\" />\r\n                }\r\n                @case (ButtonsEnum.back) {\r\n                  <button-loader [margin]=\"button.margin || false\" [isFormValid]=\"true\"\r\n                    [text]=\"getTranslatedName(button)\" type=\"button\" (onSubmit)=\"onBackPage(button.page || 0)\"\r\n                    [text_color]=\"button.text_color\" [color]=\"button.button_color\" />\r\n                }\r\n                @case (ButtonsEnum.submit) {\r\n                  <button-loader [margin]=\"button.margin || false\"\r\n                    [loadSpinner]=\"loadSpinner\" [isFormValid]=\"formGroup[idx].valid && !disableSubmit\"\r\n                    [text]=\"getTranslatedName(button)\" type=\"submit\" [text_color]=\"button.text_color\"\r\n                    [color]=\"button.button_color\" />\r\n                }\r\n              }\r\n            </div>\r\n          }\r\n        </div>\r\n      </form>\r\n      @for (addon of formScheme.addons; track addon) {\r\n        <div>\r\n          @switch (addon.name) {\r\n            @case (AddonsEnum.highlight) {\r\n              <div>\r\n                <p class=\"mb-0\" style=\"text-align: center;\">\r\n                  @if (addon.normal_text) {\r\n                    <a [id]=\"'addon-text-before-'+idx\">{{getHighlightAddontext(addon,'before')}} </a>\r\n                  }\r\n                  @if (addon.href_type == hrefTypes.MODAL) {\r\n                    <a [id]=\"'addon-button-'+idx\" [attr.data-bs-target]=\"'#'+addon.href\" data-bs-toggle=\"modal\"\r\n                    data-bs-dismiss=\"modal\" class=\"hover\">{{getTranslatedName(addon,'highlight_text')}}</a>\r\n                  }\r\n                  @if (addon.href_type == hrefTypes.URL) {\r\n                    <a (click)=\"closeModal()\" [id]=\"'addon-button-'+idx\" [routerLink]=\"['/'+addon.href]\"\r\n                    class=\"hover\">{{getTranslatedName(addon,'highlight_text')}}</a>\r\n                  }\r\n                  @if (addon.href_type == hrefTypes.EMITTER) {\r\n                    <a (click)=\"submitAddon(addon)\" [id]=\"'addon-button-'+idx\"\r\n                    class=\"hover pointer\">{{getTranslatedName(addon,'highlight_text')}}</a>\r\n                  }\r\n                  @if (addon.normal_text) {\r\n                    <a [id]=\"'addon-text-after-'+idx\">{{getHighlightAddontext(addon,'after')}} </a>\r\n                  }\r\n                </p>\r\n              </div>\r\n            }\r\n            @case (AddonsEnum.google_login) {\r\n              <div class=\"mt-3\">\r\n                @if (addon.upper_text) {\r\n                  <div [id]=\"'google-uppertext-'+idx\" class=\"divider-icon my-4\">\r\n                    {{getTranslatedName(addon,'upper_text')}}\r\n                  </div>\r\n                }\r\n                <nav class=\"nav social justify-content-center text-center\">\r\n                  <google-login (loginWithGoogle)=\"handleGoogleLoginV2($event)\" [type]=\"addon.type || ''\"\r\n                    [size]=\"addon.size || ''\" [gStyle]=\"addon.style || 0\" [theme]=\"addon.theme || ''\" [text]=\"addon.text || ''\"\r\n                    [shape]=\"addon.shape || ''\" [logo_alignment]=\"addon.logo_alignment || ''\"\r\n                    [auto_prompt]=\"addon.auto_prompt || 'false'\" />\r\n                  </nav>\r\n                </div>\r\n              }\r\n            }\r\n          </div>\r\n        }\r\n      }\r\n    }\r\n    <button id=\"closeModalButt\" style=\"display: none;\" type=\"button\" data-bs-toggle=\"modal\"\r\n    data-bs-dismiss=\"modal\"></button>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { DynamicFormComponent } from '../../dynamic-form.component';\r\nimport { DynamicFormScheme, DynamicSubmitEvent, SelectValueScheme } from '../../models/dynamic-form.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { APP_CHANGE_DETECTION } from '../../app-change-detection';\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'dynamic-modal',\r\n  templateUrl: './dynamic-modal.component.html',\r\n  styleUrls: ['./dynamic-modal.component.scss'],\r\n  changeDetection: APP_CHANGE_DETECTION,\r\n  standalone: false\r\n})\r\nexport class DynamicModalComponent implements OnInit {\r\n\r\n  @ViewChild('dyn_form') dynForm: DynamicFormComponent | undefined;\r\n\r\n\r\n  @Input() modalId: string = 'default-id';\r\n  @Input() modalPopup: boolean = false\r\n  @Input() modalCloseButton: boolean = false\r\n  @Input() formSchemes: DynamicFormScheme[] = []\r\n  @Input() loadSpinner: boolean = false\r\n  @Input() isSubmitFailed: boolean = false\r\n  @Input() errorMessage: string = '';\r\n  @Input() modalBackdrop: string | boolean = true;\r\n  @Input() disableSubmit: boolean = false\r\n\r\n  @Output() onSubmit: EventEmitter<DynamicSubmitEvent> = new EventEmitter<DynamicSubmitEvent>();\r\n  @Output() onCloseModal: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() loginWithGoogle: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onBack: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() formValueChanges = new EventEmitter<any>();\r\n  @Output() formInit = new EventEmitter<{ id: string; form: FormGroup }>();\r\n\r\n  protected isLoaded = true\r\n\r\n  constructor() {\r\n  }\r\n  ngOnInit() {\r\n\r\n  }\r\n  protected onClose() {\r\n    this.isLoaded = false\r\n\r\n    this.dynForm?.resetAndGoToPage(0)\r\n\r\n    this.onCloseModal.emit(true)\r\n    this.isLoaded = true\r\n  }\r\n  protected onFormInit(event: any) {\r\n    this.formInit.emit(event)\r\n  }\r\n  isFormValid(idx: number): boolean {\r\n    return this.dynForm?.isFormValid(idx) || false\r\n  }\r\n  updateForm(idx: number, values: any) {\r\n    this.dynForm?.updateForm(idx, values)\r\n  }\r\n  goToPage(page: number) {\r\n    this.dynForm?.goToPage(page)\r\n  }\r\n  protected onSubmitForm(event: any) {\r\n    this.onSubmit.emit(event);\r\n  }\r\n  protected onFormValueChanges(event: any) {\r\n    this.formValueChanges.emit(event);\r\n  }\r\n  submitDynamicForm(idx: number) {\r\n    this.dynForm?.onSubmitForm(idx);\r\n  }\r\n  closeModal() {\r\n    this.onClose()\r\n    document.getElementById('closeDefModal-' + this.modalId)?.click()\r\n  }\r\n\r\n  protected handleGoogleLoginV2(response: any) {\r\n    this.loginWithGoogle.emit(response);\r\n  }\r\n  openModal() {\r\n    document.getElementById('openModal-' + this.modalId)?.click()\r\n  }\r\n  changeDescription(idx: number, description: string) {\r\n    this.dynForm?.changeDescription(idx, description)\r\n  }\r\n  changeDefaultValue(idx: number, formControlName: string, value: any) {\r\n    this.dynForm?.changeDefaultValue(idx, formControlName, value)\r\n  }\r\n  changeVisibility(idx: number, formControlName: string, visible: boolean) {\r\n    this.dynForm?.changeVisibility(idx, formControlName, visible)\r\n  }\r\n  fillSelects(idx: number, formControlName: string, values: SelectValueScheme[]) {\r\n    this.dynForm?.fillSelects(idx, formControlName, values)\r\n  }\r\n  changeRangeDate(idx: number, formControlName: string, minDate: { year: number, month: number, day: number }, maxDate: { year: number, month: number, day: number }) {\r\n    this.dynForm?.changeRangeDate(idx, formControlName, minDate, maxDate)\r\n  }\r\n  enableDates(idx: number, formControlName: string, values: any) {\r\n    this.dynForm?.enableDates(idx, formControlName, values)\r\n  }\r\n  disableDates(idx: number, formControlName: string, values: any) {\r\n    this.dynForm?.disableDates(idx, formControlName, values)\r\n  }\r\n}\r\n","<div [class]=\"'modal fade '+(modalPopup ? 'modal-popup' : '')\" [id]=\"modalId\" tabindex=\"-1\"\r\n  data-target=\"#modal\" [attr.data-bs-backdrop]=\"modalBackdrop\">\r\n  <div class=\"modal-dialog modal-dialog-centered modal-sm justify-content-center\">\r\n    <div class=\"text-start mb-3\">\r\n      <div class=\"modal-content text-center\">\r\n        @if (isLoaded) {\r\n          <div style=\"max-width: 100vw;\" class=\"modal-body\">\r\n            @if (modalCloseButton) {\r\n              <button style=\"height: fit-content;width: fit-content;\" (click)=\"onClose()\"\r\n                type=\"button\" class=\"btnsign btn-close\" [attr.data-bs-target]=\"'#'+modalId\" data-bs-toggle=\"modal\"\r\n              data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n            }\r\n            <dynamic-form [disableSubmit]=\"disableSubmit\" (formInit)=\"onFormInit($event)\" [isOnModal]=\"true\" #dyn_form [formSchemes]=\"formSchemes\" [isSubmitFailed]=\"isSubmitFailed\"\r\n              [loadSpinner]=\"loadSpinner\" [errorMessage]=\"errorMessage\" (onSubmit)=\"onSubmitForm($event)\"\r\n              (loginWithGoogle)=\"handleGoogleLoginV2($event)\" (formValueChanges)=\"onFormValueChanges($event)\" (onCloseForm)=\"onClose()\" (onBack)=\"onBack.emit(true)\" />\r\n              <ng-content />\r\n            </div>\r\n          }\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <a [id]=\"'closeDefModal-'+modalId\" style=\"display: none;\" [attr.data-bs-target]=\"'#'+modalId\" data-bs-dismiss=\"modal\"></a>\r\n\r\n  <a [id]=\"'openModal-'+modalId\" style=\"display: none;\" [attr.data-bs-target]=\"'#'+modalId\" data-bs-toggle=\"modal\"></a>\r\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { DynamicFormComponent } from \"./dynamic-form.component\";\r\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\r\nimport { NgbCalendar, NgbCalendarGregorian, NgbDatepickerModule, NgbTimepicker, NgbTimepickerModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ButtonLoaderComponent } from \"./components/button-loader/button-loader.component\";\r\nimport { RECAPTCHA_SETTINGS, RECAPTCHA_V3_SITE_KEY, RecaptchaSettings, ReCaptchaV3Service } from \"ng-recaptcha-2\";\r\nimport { GoogleLoginComponent } from \"./components/google-login/google-login.component\";\r\nimport { GOOGLE_CLIENT_ID_KEY } from \"./config.token\";\r\nimport { DynamicModalComponent, PhoneFieldComponent } from \"../public-api\";\r\nimport { NgOtpInputModule } from \"ng-otp-input\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { FormElementComponent } from \"./components/form-element/form-element.component\";\r\nimport { DropFilesComponent } from \"./components/drop-files/drop-files.component\";\r\nimport { GoogleRecaptchaComponent } from \"./google-recaptcha/google-recaptcha.component\";\r\n\r\n@NgModule({\r\n  declarations: [\r\n    DynamicFormComponent,\r\n    ButtonLoaderComponent,\r\n    PhoneFieldComponent,\r\n    DynamicModalComponent,\r\n    FormElementComponent,\r\n    GoogleLoginComponent,\r\n    DropFilesComponent\r\n  ],\r\n  imports : [\r\n    CommonModule,\r\n    FormsModule,\r\n    NgxSliderModule,\r\n    //NgbModule,\r\n    NgbDatepickerModule,\r\n    NgbTimepickerModule,\r\n    TranslateModule,\r\n    NgOtpInputModule,\r\n    RouterModule,\r\n    ReactiveFormsModule,\r\n    GoogleRecaptchaComponent\r\n  ],\r\n  exports: [\r\n    DynamicFormComponent,\r\n    ButtonLoaderComponent,\r\n    DynamicModalComponent,\r\n    FormElementComponent,\r\n    DropFilesComponent,\r\n    PhoneFieldComponent,\r\n    GoogleLoginComponent\r\n  ],\r\n  providers: [\r\n    ReCaptchaV3Service,\r\n    { provide: NgbCalendar, useClass: NgbCalendarGregorian },\r\n    { provide: NgbTimepicker, useExisting: NgbTimepicker }\r\n  ],\r\n})\r\nexport class DynamicFormModule {\r\n  static forRoot(sitegRecaptchaKey: string,googleClientId: string): ModuleWithProviders<DynamicFormModule> {\r\n    return {\r\n      ngModule: DynamicFormModule,\r\n      providers: [\r\n        {\r\n          provide: RECAPTCHA_SETTINGS,\r\n          useValue: {\r\n            siteKey: sitegRecaptchaKey,\r\n          } as RecaptchaSettings,\r\n        },\r\n        {\r\n          provide: RECAPTCHA_V3_SITE_KEY,\r\n          useValue: sitegRecaptchaKey\r\n        },\r\n        {\r\n          provide: GOOGLE_CLIENT_ID_KEY,\r\n          useValue: googleClientId\r\n        },\r\n      ]\r\n    };\r\n  }\r\n}\r\n","export class Country {\r\n    text?: string = '';\r\n    code: string = '';\r\n    country: string = '';\r\n}","/*\r\n * Public API Surface of dynamic-form\r\n */\r\nexport * from './lib/config.token';\r\nexport * from './lib/dynamic-form.service';\r\nexport * from './lib/dynamic-form.component';\r\nexport * from './lib/components/drop-files/drop-files.component';\r\nexport * from './lib/components/button-loader/button-loader.component';\r\nexport * from './lib/components/form-element/form-element.component';\r\nexport * from './lib/components/google-login/google-login.component';\r\nexport * from './lib/components/dynamic-modal/dynamic-modal.component';\r\nexport * from './lib/components/phone-field/phone-field.component';\r\nexport * from './lib/dynamic-form.module';\r\nexport * from './lib/countries';\r\nexport * from './lib/models/countries.model';\r\nexport * from './lib/models/dynamic-form.model';\r\nexport * from './lib/custom_validators/link.validator';\r\nexport * from './lib/custom_validators/confirm-password.validator';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.ButtonLoaderComponent","i7.GoogleRecaptchaComponent","i8.PhoneFieldComponent","i9.DropFilesComponent","i4","i5.ButtonLoaderComponent","i6.FormElementComponent","i7.GoogleLoginComponent","i1.DynamicFormComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;MAEa,oBAAoB,GAAG,IAAI,cAAc,CAAS,sBAAsB;;MCGxE,kBAAkB,CAAA;AAE7B,IAAA,WAAA,GAAA,EAAgB;8GAFL,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;IC0DW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAJW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AA8BrB;;AAEG;AACH;IACY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC/B,CAAC,EAHW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAKrB;IACY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EAtBW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAuBrB;IACY;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EALW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAMtB;IACY;AAAZ,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,MAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,MAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,MAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,MAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,MAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EATW,MAAM,KAAN,MAAM,GAAA,EAAA,CAAA,CAAA;AAUlB,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,WAAoB;AACpB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,EAAY;AACZ,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,YAAsB;AACtB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,cAAqB;AACrB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,YAAqB;AACvB,CAAC,EANW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;ACzIf,MAAM,aAAa,GAAgB,CACxC,OAAwB,KACG;AAC3B,IAAA,OAAO,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,IAAE;AAC1F,UAAE;AACF,UAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AAC5B;;ACNO,MAAM,wBAAwB,GAAgB,CACnD,OAAwB,KACG;IAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,gBAAgB;AAC7H,UAAE;AACF,UAAE,EAAE,eAAe,EAAE,IAAI,EAAE;AAC/B;;ACVM,SAAU,cAAc,CAAC,OAAwB,EAAA;AACrD,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;IAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,KAAK,EAAE;QACtD,OAAO,IAAI,CAAC;IACd;AACA,IAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B;;ACNO,MAAM,oBAAoB,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI;MAClD,uBAAuB,CAAC;AAC1B,MAAE,uBAAuB,CAAC,MAAM;;MCOrB,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;QAQW,IAAA,CAAA,WAAW,GAAY,KAAK;QAC5B,IAAA,CAAA,SAAS,GAAY,KAAK;QAC1B,IAAA,CAAA,WAAW,GAAY,IAAI;QAC3B,IAAA,CAAA,IAAI,GAAW,EAAE;QACjB,IAAA,CAAA,IAAI,GAAW,EAAE;QACjB,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,aAAa,GAAW,MAAM;QAC9B,IAAA,CAAA,IAAI,GAAW,QAAQ;QACvB,IAAA,CAAA,KAAK,GAAW,SAAS;QACzB,IAAA,CAAA,UAAU,GAAW,OAAO;QAC5B,IAAA,CAAA,MAAM,GAAY,IAAI;AAEtB,QAAA,IAAA,CAAA,WAAW,GAAe,UAAU,CAAC,IAAI;QACzC,IAAA,CAAA,KAAK,GAAY,KAAK;QACtB,IAAA,CAAA,MAAM,GAAY,KAAK;QACvB,IAAA,CAAA,KAAK,GAAY,KAAK;AAErB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE;AA0CxC,IAAA;IAxCW,gBAAgB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,EAAE;AAC9B,YAAA,OAAO,qBAAqB;QAC9B;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE;AAC5B,YAAA,OAAO,qBAAqB;QAC9B;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;AACvB,YAAA,OAAO,sBAAsB;QAC/B;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;AACvB,YAAA,OAAO,qBAAqB;QAC9B;QACA,OAAO,IAAI,CAAC,IAAI;IAClB;IACU,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE;AAC9B,YAAA,OAAO,MAAM;QACf;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE;AAClC,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE;AAC5B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE;AAC9B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;AAC/B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;AAC7B,YAAA,OAAO,SAAS;QAClB;QACA,OAAO,IAAI,CAAC,UAAU;IACxB;IACU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;IACtB;8GA1DW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,mbCXlC,49BAoBA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDTa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,oBAAoB,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,49BAAA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA;;sBAGhB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBAEA;;;MEPU,wBAAwB,CAAA;AAhBrC,IAAA,WAAA,GAAA;QAiBW,IAAA,CAAA,EAAE,GAAW,EAAE;AACf,QAAA,IAAA,CAAA,IAAI,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC;QACnC,IAAA,CAAA,QAAQ,GAAW,SAAS;QAC5B,IAAA,CAAA,OAAO,GAAW,IAAI;AAKhC,IAAA;AAHC,IAAA,IAAc,WAAW,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5C;8GARW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAPxB;YACT;SACD,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBH,qgBASC,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAG,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,oBAAoB,oLACpB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASV,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAhBpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,OAAA,EACvB;wBACP,iBAAiB;wBACjB,oBAAoB;wBACpB,eAAe;wBACf,WAAW;wBACX;qBACD,EAAA,SAAA,EACU;wBACT;AACD,qBAAA,EAAA,eAAA,EAEgB,oBAAoB,EAAA,QAAA,EAAA,qgBAAA,EAAA;;sBAIpC;;sBACA;;sBACA;;sBACA;;;AExBI,MAAM,SAAS,GAAc;AAChC,IAAA;AACI,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,4BAA4B;AACpC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,4BAA4B;AACpC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,4BAA4B;AACpC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,6BAA6B;AACrC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gCAAgC;AACxC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,2BAA2B;AACnC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,gBAAgB;AACxB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,2BAA2B;AACnC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd,KAAA;AACD,IAAA;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACd;;;MC1+BQ,mBAAmB,CAAA;AAkB9B,IAAA,WAAA,CACU,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;QAlBV,IAAA,CAAA,EAAE,GAAW,EAAE;QACf,IAAA,CAAA,KAAK,GAAW,EAAE;QAElB,IAAA,CAAA,QAAQ,GAAW,EAAE;AACpB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO;QAEzC,IAAA,CAAA,SAAS,GAAc,SAAS;AAEhC,QAAA,IAAA,CAAA,eAAe,GAAY;AACnC,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE;SACV;AACS,QAAA,IAAA,CAAA,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,WAAW,EAAE;QAExD,IAAA,CAAA,UAAU,GAAW,EAAE;QACvB,IAAA,CAAA,oBAAoB,GAAc,EAAE;QAK5C,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACjD;IACA,QAAQ,GAAA;IAER;IAEU,sBAAsB,GAAA;AAC9B,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IACjD,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CACrE;IACH;AAEU,IAAA,eAAe,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;YACpC;QACF;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;AAC/B,gBAAA,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;AAC/B;AACF,SAAA,CAAC;IACJ;AACU,IAAA,YAAY,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YACvF,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAC5H;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE;IAC3D;AAEU,IAAA,YAAY,CAAC,KAAU,EAAA;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE7C,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;YACpC;QACF;AACA,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AACxB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;AAC/B,gBAAA,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;AAC/B;SACF;AACD,QAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;IACU,eAAe,GAAA;AACvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAsB;QAC9E,MAAM,CAAC,KAAK,EAAE;IAChB;AAEA,IAAA,IAAc,eAAe,GAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;QAC3C,OAAO,QAAQ,IAAI,IAAI,GAAG,oBAAoB,GAAG,eAAe;IAClE;AACA,IAAA,IAAc,oBAAoB,GAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;QAC3C,OAAO,QAAQ,IAAI,IAAI,GAAG,qCAAqC,GAAG,kCAAkC;IACtG;AACA,IAAA,IAAc,eAAe,GAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;QAC3C,OAAO,QAAQ,IAAI,IAAI,GAAG,OAAO,GAAG,QAAQ;IAC9C;AACA,IAAA,IAAc,kBAAkB,GAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;QAC3C,OAAO,QAAQ,IAAI,IAAI,GAAG,0BAA0B,GAAG,kBAAkB;IAC3E;8GAtGW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,uMCfhC,m+DAoCU,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDrBG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,oBAAoB,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,m+DAAA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA;;sBAGhB;;sBACA;;sBACA;;sBACA;;sBACA;;;METU,kBAAkB,CAAA;AAQ7B,IAAA,WAAA,CACU,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;QART,IAAA,CAAA,KAAK,GAAW,EAAE;QAClB,IAAA,CAAA,UAAU,GAAG,KAAK;QACnB,IAAA,CAAA,EAAE,GAAW,EAAE;QACf,IAAA,CAAA,MAAM,GAAW,6CAA6C;QAC9D,IAAA,CAAA,QAAQ,GAAW,CAAC;AACnB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU;IAI/C;AAEM,IAAA,UAAU,CAAC,KAAgB,EAAA;QACnC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AAEU,IAAA,WAAW,CAAC,KAAgB,EAAA;QACpC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IACzB;AAEU,IAAA,MAAM,CAAC,KAAgB,EAAA;QAC/B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YACvB;QACF;QACA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/D,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;AAEzD,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAG,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC5D;QACF;AAEA,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpF,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC;YACzD;QACF;QACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;IAEpC;AAEU,IAAA,cAAc,CAAC,KAAY,EAAA;AACnC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;YACxB;QACF;QACA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7C,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAErF,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7D;QACF;AACA,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC;YACzD;QACF;QACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;;QAEjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC;AACU,IAAA,SAAS,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C;AACU,IAAA,UAAU,CAAC,KAAa,EAAA;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC;AACA,IAAA,IAAc,cAAc,GAAA;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;QAC3C,OAAO,QAAQ,IAAI,IAAI,GAAG,8CAA8C,GAAG,wCAAwC;IACrH;8GAhFW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,gLCX/B,23BAmBM,EAAA,MAAA,EAAA,CAAA,4OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDRO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,KAAK,EAAA,eAAA,EAEA,oBAAoB,EAAA,QAAA,EAAA,23BAAA,EAAA,MAAA,EAAA,CAAA,4OAAA,CAAA,EAAA;;sBAMpC;;sBACA;;sBACA;;sBACA;;;MEHU,oBAAoB,CAAA;AAkD/B,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;QAjDpB,IAAA,CAAA,EAAE,GAAW,EAAE;AACf,QAAA,IAAA,CAAA,IAAI,GAAc,SAAS,CAAC,IAAI;QAChC,IAAA,CAAA,KAAK,GAAW,SAAS;AACzB,QAAA,IAAA,CAAA,IAAI,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC;QACnC,IAAA,CAAA,QAAQ,GAAW,SAAS;QAC5B,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,YAAY,GAAW,KAAK;;QAG5B,IAAA,CAAA,MAAM,GAAwB,EAAE;;QAIhC,IAAA,CAAA,MAAM,GAAW,CAAC;;QAElB,IAAA,CAAA,QAAQ,GAAW,EAAE;QAErB,IAAA,CAAA,GAAG,GAAW,EAAE;;QAEhB,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,MAAM,GAAW,6CAA6C;AAC7D,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE;QAKtD,IAAA,CAAA,aAAa,GAAmD,EAAE;QAClE,IAAA,CAAA,YAAY,GAAmD,EAAE;AAChE,QAAA,IAAA,CAAA,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC7C,QAAA,IAAA,CAAA,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;;QAGhG,IAAA,CAAA,OAAO,GAAW,EAAE;;QAGpB,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,OAAO,GAAY,IAAI;;QAGvB,IAAA,CAAA,MAAM,GAAU,EAAE;AAEjB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;QAElC,IAAA,CAAA,YAAY,GAAG,KAAK;QAEpB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,cAAc,GAAqB,SAAS;IAGtD;IACA,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,QAAA,CAAC,CAAC;IACJ;IACU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,CAChB;;iBAEE;AACF,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAC7B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,sBAAE;sBACA,KAAK;AACX,YAAA,CAAC;QACH;aAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,CAChB;;iBAEE;AACF,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,sBAAE;sBACA,IAAI;AACV,YAAA,CAAC;QACH;aAAO;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,CAChB;;iBAEE;AACF,gBAAA,OAAO,KAAK;AACd,YAAA,CAAC;QACH;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AACA,IAAA,IAAc,WAAW,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5C;AACU,IAAA,aAAa,CAAC,eAAuB,EAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QAC9C,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACxD;IACF;AACU,IAAA,gBAAgB,CAAC,SAAiB,EAAA;AAC1C,QAAA,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IAC1D;;AAEU,IAAA,gBAAgB,CAAC,OAAY,EAAA;AACrC,QAAA,IAAI,IAAI,GAAG;AACT,YAAA,GAAG,OAAO;AACV,YAAA,eAAe,EAAE,CAAC,KAAa,KAAI;AACjC,gBAAA,OAAO,mBAAmB;YAC5B;SACD;AACD,QAAA,OAAO,IAAI;IACb;;IAEU,WAAW,CAAC,KAAU,EAAE,eAAuB,EAAA;AACvD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,KAAK,EAAE,CAAC;IACpD;;AAEU,IAAA,iBAAiB,CAAC,EAAU,EAAA;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAgB;QAC3D,QAAQ,CAAC,KAAK,EAAE;IAClB;AACU,IAAA,KAAK,CAAC,KAAU,EAAE,IAAA,GAAe,KAAK,EAAA;QAC9C,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACnC,IAAI,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QACtD;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;IACJ;AACU,IAAA,WAAW,CAAC,KAAa,EAAA;QACjC,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QACtD;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;IACJ;AACU,IAAA,iBAAiB,CAAC,KAAU,EAAE,GAAA,GAAc,MAAM,EAAA;AAC1D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AAC3C,QAAA,IAAI,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;AACpG,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC;IACnB;8GAzJW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,8pBCdjC,o3SAmLC,EAAA,MAAA,EAAA,CAAA,0hEAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,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,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,oJAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,0JAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,2IAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDrKY,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,cAAc,EAAA,eAAA,EAGP,oBAAoB,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,o3SAAA,EAAA,MAAA,EAAA,CAAA,0hEAAA,CAAA,EAAA;;sBAGhB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBAGA;;sBACA;;sBACA;;sBACA;;sBAKA;;sBAGA;;sBACA;;sBAGA;;sBAEA;;;MExCU,oBAAoB,CAAA;AAY/B,IAAA,WAAA,CAAiD,cAAsB,EAAA;QAAtB,IAAA,CAAA,cAAc,GAAd,cAAc;AAXrD,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO;QAC7D,IAAA,CAAA,MAAM,GAAW,CAAC;QAClB,IAAA,CAAA,IAAI,GAAW,UAAU;QACzB,IAAA,CAAA,IAAI,GAAW,QAAQ;QACvB,IAAA,CAAA,KAAK,GAAW,SAAS;QACzB,IAAA,CAAA,IAAI,GAAW,cAAc;QAC7B,IAAA,CAAA,KAAK,GAAW,aAAa;QAC7B,IAAA,CAAA,cAAc,GAAW,MAAM;QAC/B,IAAA,CAAA,WAAW,GAAW,OAAO;IAGqC;IAE3E,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;YACnB,MAAc,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;;YAEzE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,wCAAwC;AAC1D,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;YACxB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAC,YAAY,CAAC;AAC5C,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;YACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QACxC;IACF;IACA,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;IACtD;AAEU,IAAA,mBAAmB,CAAC,QAAa,EAAA;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC;AAhCW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAYX,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAZ7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,gSCjBjC,sdAcA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDGa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,cAAc,EAAA,eAAA,EAGP,oBAAoB,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,sdAAA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA;;0BAcJ,MAAM;2BAAC,oBAAoB;;sBAXvC;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;METU,oBAAoB,CAAA;AAiC/B,IAAA,WAAA,CAC+B,UAAkB,EACvC,kBAAsC,EACtC,SAA2B,EAAA;QAFN,IAAA,CAAA,UAAU,GAAV,UAAU;QAC/B,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAClB,IAAA,CAAA,SAAS,GAAT,SAAS;QAlCV,IAAA,CAAA,WAAW,GAAwB,EAAE;QACrC,IAAA,CAAA,WAAW,GAAY,KAAK;QAC5B,IAAA,CAAA,cAAc,GAAY,KAAK;QAC/B,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,SAAS,GAAY,KAAK;QAC1B,IAAA,CAAA,aAAa,GAAY,KAAK;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAqC,IAAI,YAAY,EAAsB;AACnF,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;AACxD,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO;AAC5D,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAO;AACnD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO;AAE1C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO;AAErC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAmC;QAG9D,IAAA,CAAA,cAAc,GAAqB,SAAS;QAC5C,IAAA,CAAA,UAAU,GAAqB,SAAS;QACxC,IAAA,CAAA,WAAW,GAAsB,UAAU;QAC3C,IAAA,CAAA,SAAS,GAAqB,SAAS;QAIvC,IAAA,CAAA,OAAO,GAAQ,EAAE;QACjB,IAAA,CAAA,YAAY,GAAQ,EAAE;QACtB,IAAA,CAAA,kBAAkB,GAAQ,EAAE;QAC5B,IAAA,CAAA,SAAS,GAAgB,EAAE;QAC3B,IAAA,CAAA,YAAY,GAAU,EAAE;IAOlC;IACA,QAAQ,GAAA;AAEN,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE;AACvC,QAAA,MAAM,mBAAmB,GAAG;YAC1B,IAAI,CAAC,cAAc,CAAC,UAAU;YAC9B,IAAI,CAAC,cAAc,CAAC,SAAS;YAC7B,IAAI,CAAC,cAAc,CAAC,SAAS;YAC7B,IAAI,CAAC,cAAc,CAAC,UAAU;YAC9B,IAAI,CAAC,cAAc,CAAC,aAAa;YACjC,IAAI,CAAC,cAAc,CAAC;SACrB;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AACrC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACjD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,eAAyB,EAAE,SAAS,CAAC,aAAuB,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,QAAmB,CAAC;gBACrJ;YACF;AACA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9D,QAAQ,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;oBAC1C,KAAK,0BAA0B,EAAE;wBAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,wBAAwB,CAAC;wBACzD;oBACF;oBACA,KAAK,eAAe,EAAE;wBACpB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC;wBAC9C;oBACF;;YAEJ;YACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,IAAG;AAC5D,gBAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;AACrE,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK;AAChD,wBAAA,KAAK,EAAE;AACL,4BAAA,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;4BAC1B,CAAC,WAAW,GAAG;AAChB,yBAAA;AACD,wBAAA,OAAO,EAAE;AACV,qBAAA,CAAC;AACJ,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;IAEF;IACQ,cAAc,CAAC,SAAiB,EAAE,aAAqB,EAAE,UAAe,EAAE,cAAsB,EAAE,aAAsB,EAAA;QAC9H,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;AACzB,YAAA,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5B,gBAAA,KAAK,MAAM,CAAC,QAAQ,EAAE;AACpB,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAChC;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,SAAS,EAAE;AACrB,oBAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC3B;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,SAAS,EAAE;AACrB,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5C;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,SAAS,EAAE;AACrB,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5C;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,OAAO,EAAE;AACnB,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1C;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE;AACf,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACtC;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE;AACf,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACtC;gBACF;AACA,gBAAA,KAAK,MAAM,CAAC,KAAK,EAAE;AACjB,oBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC7B;gBACF;;QAGJ;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,WAAW,CAAC;AACnE,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,QAAQ,EAAE;SACX,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC;IACA,UAAU,CAAC,SAAiB,EAAE,MAAW,EAAA;QACvC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IAC9C;AACA,IAAA,YAAY,CAAC,GAAW,EAAA;;;AAGtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO;AAAE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAE1D,IAAI,cAAc,GAAG,KAAK;QAC1B,IAAI,SAAS,GAAG,EAAE;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC3E,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE;oBACnD,cAAc,GAAG,IAAI;AACrB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAyB;oBACrE;gBACF;YACF;QACF;QACA,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB;AAC9C,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3C,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,oBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;wBAC5B,MAAM,EAAE,IAAI,CAAC,OAAO;wBACpB,MAAM,EAAE,IAAI,CAAC,YAAY;wBACzB,aAAa,EAAE,IAAI,CAAC;qBACrB,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC;AAC/C,iBAAA,CAAC;AACJ,YAAA,CAAC,CAAC;QACN;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;oBAC5B,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,MAAM,EAAE,IAAI,CAAC,YAAY;oBACzB,aAAa,EAAE,IAAI,CAAC;iBACrB,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC;AAC/C,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B;IACU,YAAY,GAAA;AACpB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACzB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9B,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACtC;AACU,IAAA,UAAU,CAAC,IAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAE1F,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;IACJ;IACU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAa;YACrD,IAAI,SAAS,GAAwB,EAAE;AACvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,gBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,oBAAA,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa;gBACxE;YACF;YACA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QACzC;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AACA,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAa;YACrD,IAAI,SAAS,GAAwB,EAAE;AACvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,gBAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,oBAAA,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa;gBACxE;YACF;YACA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QACzC;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;QACtB,IAAI,CAAC,QAAQ,EAAE;IACjB;AAEU,IAAA,mBAAmB,CAAC,QAAa,EAAA;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC;AACO,IAAA,QAAQ,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAAE;;QAE/B,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAClC;QACF;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;;AAE5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK;QACzC;QACA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,IAAI;IAC3C;AACA,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK;IAClC;IACA,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,MAAK,EAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAA,CAAC,CAAC,CAAC;IAC9F;AACU,IAAA,WAAW,CAAC,KAAkB,EAAA;QACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC;AACU,IAAA,iBAAiB,CAAC,KAAU,EAAE,GAAA,GAAc,MAAM,EAAA;AAC1D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AAC3C,QAAA,IAAI,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;AACpG,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC;IACnB;IAEU,aAAa,CAAC,KAAU,EAAE,EAAU,EAAA;AAC5C,QAAA,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,GAAG,KAAK,CAAC;aACV;QACH;AAAO,aAAA,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG;gBAClB,GAAG,IAAI,CAAC,YAAY;gBACpB,GAAG,KAAK,CAAC;aACV;QACH;AAAO,aAAA,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,EAAE;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YACtF,IAAI,CAAC,kBAAkB,GAAG;gBACxB,GAAG,IAAI,CAAC,kBAAkB;gBAC1B,GAAG,KAAK,CAAC;aACV;QACH;IACF;IACU,qBAAqB,CAAC,KAAU,EAAE,QAAgB,EAAA;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC;AACnE,QAAA,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC7C;AAAO,aAAA,IAAI,QAAQ,IAAI,OAAO,EAAE;YAC9B,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC7C;AACA,QAAA,OAAO,EAAE;IACX;IAGA,iBAAiB,CAAC,GAAW,EAAE,WAAmB,EAAA;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,WAAW;IACjD;AACA,IAAA,kBAAkB,CAAC,GAAW,EAAE,eAAuB,EAAE,KAAU,EAAA;AACjE,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,aAAa,EAAE;AAChB,SAAA,CAAC;IACJ;AACA,IAAA,gBAAgB,CAAC,GAAW,EAAE,eAAuB,EAAE,OAAgB,EAAA;AACrE,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;IACJ;AACA,IAAA,WAAW,CAAC,GAAW,EAAE,eAAuB,EAAE,MAA2B,EAAA;AAC3E,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;IACJ;AACA,IAAA,eAAe,CAAC,GAAW,EAAE,eAAuB,EAAE,OAAqD,EAAE,OAAqD,EAAA;AAChK,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,GAAW,EAAE,eAAuB,EAAE,MAAW,EAAA;AAC3D,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,YAAY,EAAE;AACf,SAAA,CAAC;IACJ;AAEA,IAAA,YAAY,CAAC,GAAW,EAAE,eAAuB,EAAE,MAAW,EAAA;AAC5D,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE;AACrC,YAAA,aAAa,EAAE;AAChB,SAAA,CAAC;IACJ;AACQ,IAAA,WAAW,CAAC,GAAW,EAAE,eAAuB,EAAE,KAAU,EAAA;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5D,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,eAAe,EAAE;gBACtE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;oBAChC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,oBAAA,GAAG;iBACJ;YACH;QACF;IACF;AAtVW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAkCrB,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlCV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,kdCjBjC,+pOAwHqC,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,KAAA,EAAA,cAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDvGxB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,cAAc,EAAA,eAAA,EAGP,oBAAoB,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,+pOAAA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA;;0BAoCd,MAAM;2BAAC,WAAW;;sBAhCpB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAEA;;;MEnBU,qBAAqB,CAAA;AAwBhC,IAAA,WAAA,GAAA;QAnBS,IAAA,CAAA,OAAO,GAAW,YAAY;QAC9B,IAAA,CAAA,UAAU,GAAY,KAAK;QAC3B,IAAA,CAAA,gBAAgB,GAAY,KAAK;QACjC,IAAA,CAAA,WAAW,GAAwB,EAAE;QACrC,IAAA,CAAA,WAAW,GAAY,KAAK;QAC5B,IAAA,CAAA,cAAc,GAAY,KAAK;QAC/B,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,aAAa,GAAqB,IAAI;QACtC,IAAA,CAAA,aAAa,GAAY,KAAK;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAqC,IAAI,YAAY,EAAsB;AACnF,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAO;AACzD,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO;AAC5D,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAO;AACnD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAmC;QAE9D,IAAA,CAAA,QAAQ,GAAG,IAAI;IAGzB;IACA,QAAQ,GAAA;IAER;IACU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AAErB,QAAA,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;AACU,IAAA,UAAU,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AACA,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK;IAChD;IACA,UAAU,CAAC,GAAW,EAAE,MAAW,EAAA;QACjC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;IACvC;AACA,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;IAC9B;AACU,IAAA,YAAY,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AACU,IAAA,kBAAkB,CAAC,KAAU,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC;AACA,IAAA,iBAAiB,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC;IACjC;IACA,UAAU,GAAA;QACR,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,QAAQ,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;IACnE;AAEU,IAAA,mBAAmB,CAAC,QAAa,EAAA;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC;IACA,SAAS,GAAA;AACP,QAAA,QAAQ,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;IAC/D;IACA,iBAAiB,CAAC,GAAW,EAAE,WAAmB,EAAA;QAChD,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC;IACnD;AACA,IAAA,kBAAkB,CAAC,GAAW,EAAE,eAAuB,EAAE,KAAU,EAAA;QACjE,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC;IAC/D;AACA,IAAA,gBAAgB,CAAC,GAAW,EAAE,eAAuB,EAAE,OAAgB,EAAA;QACrE,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC;IAC/D;AACA,IAAA,WAAW,CAAC,GAAW,EAAE,eAAuB,EAAE,MAA2B,EAAA;QAC3E,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC;IACzD;AACA,IAAA,eAAe,CAAC,GAAW,EAAE,eAAuB,EAAE,OAAqD,EAAE,OAAqD,EAAA;AAChK,QAAA,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC;IACvE;AACA,IAAA,WAAW,CAAC,GAAW,EAAE,eAAuB,EAAE,MAAW,EAAA;QAC3D,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC;IACzD;AACA,IAAA,YAAY,CAAC,GAAW,EAAE,eAAuB,EAAE,MAAW,EAAA;QAC5D,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC;IAC1D;8GAzFW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,0nBCflC,8pDA0BA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDXa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,oBAAoB,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,8pDAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA;;sBAIhB,SAAS;uBAAC,UAAU;;sBAGpB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MEqBU,iBAAiB,CAAA;AAC5B,IAAA,OAAO,OAAO,CAAC,iBAAyB,EAAC,cAAsB,EAAA;QAC7D,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,QAAQ,EAAE;AACR,wBAAA,OAAO,EAAE,iBAAiB;AACN,qBAAA;AACvB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,QAAQ,EAAE;AACX,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,QAAQ,EAAE;AACX,iBAAA;AACF;SACF;IACH;8GArBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBApC1B,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,qBAAqB;YACrB,oBAAoB;YACpB,oBAAoB;AACpB,YAAA,kBAAkB,aAGlB,YAAY;YACZ,WAAW;YACX,eAAe;;YAEf,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;AACnB,YAAA,wBAAwB,aAGxB,oBAAoB;YACpB,qBAAqB;YACrB,qBAAqB;YACrB,oBAAoB;YACpB,kBAAkB;YAClB,mBAAmB;YACnB,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAQX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,SAAA,EANjB;YACT,kBAAkB;AAClB,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AACxD,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa;AACrD,SAAA,EAAA,OAAA,EAAA,CAzBC,YAAY;YACZ,WAAW;YACX,eAAe;;YAEf,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;YACnB,wBAAwB,CAAA,EAAA,CAAA,CAAA;;2FAiBf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAtC7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,qBAAqB;wBACrB,mBAAmB;wBACnB,qBAAqB;wBACrB,oBAAoB;wBACpB,oBAAoB;wBACpB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAG;wBACR,YAAY;wBACZ,WAAW;wBACX,eAAe;;wBAEf,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,YAAY;wBACZ,mBAAmB;wBACnB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,qBAAqB;wBACrB,qBAAqB;wBACrB,oBAAoB;wBACpB,kBAAkB;wBAClB,mBAAmB;wBACnB;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,kBAAkB;AAClB,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AACxD,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa;AACrD,qBAAA;AACF,iBAAA;;;MCvDY,OAAO,CAAA;AAApB,IAAA,WAAA,GAAA;QACI,IAAA,CAAA,IAAI,GAAY,EAAE;QAClB,IAAA,CAAA,IAAI,GAAW,EAAE;QACjB,IAAA,CAAA,OAAO,GAAW,EAAE;IACxB;AAAC;;ACJD;;AAEG;;ACFH;;AAEG;;;;"}