{"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/settings.ts","../../../projects/bx-rest/src/functions/mapResult.ts","../../../projects/bx-rest/src/services/vanilla/сookies.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/services/vanilla/sessionStorage.ts","../../../projects/bx-rest/src/services/http/sessionKey.ts","../../../projects/bx-rest/src/services/http/HttpData.ts","../../../projects/bx-rest/src/services/http/base/base.ts","../../../projects/bx-rest/src/services/http/http.ts","../../../projects/bx-rest/src/services/http/HttpBX.ts","../../../projects/bx-rest/src/consts/part-name-methods.ts","../../../projects/bx-rest/src/typification/base/methods.ts","../../../projects/bx-rest/src/request/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task/commentitem.ts","../../../projects/bx-rest/src/request/task/planner.ts","../../../projects/bx-rest/src/request/task/item/userfield.ts","../../../projects/bx-rest/src/request/task/item.ts","../../../projects/bx-rest/src/request/task.ts","../../../projects/bx-rest/src/request/tasks/task/result.ts","../../../projects/bx-rest/src/request/tasks/task.ts","../../../projects/bx-rest/src/request/tasks.ts","../../../projects/bx-rest/src/request/disk/file.ts","../../../projects/bx-rest/src/request/disk/folder.ts","../../../projects/bx-rest/src/request/disk/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/services/http/httpNavvy.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/request/department.ts","../../../projects/bx-rest/src/request/app.ts","../../../projects/bx-rest/src/request/timeman.ts","../../../projects/bx-rest/src/request/socialnetwork/api/contentview.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed/blogpost.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed.ts","../../../projects/bx-rest/src/request/socialnetwork/api.ts","../../../projects/bx-rest/src/request/socialnetwork.ts","../../../projects/bx-rest/src/request/pull/application/config.ts","../../../projects/bx-rest/src/request/pull/config.ts","../../../projects/bx-rest/src/request/pull/channel/public.ts","../../../projects/bx-rest/src/request/pull.ts","../../../projects/bx-rest/src/rest/base.ts","../../../projects/bx-rest/src/map/rest.ts","../../../projects/bx-rest/src/services/navvy/extends/navvy-pag-base.ts","../../../projects/bx-rest/src/services/navvy/navvy-simple.ts","../../../projects/bx-rest/src/services/navvy/navvy-alternative-pagination-navigation.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag-nav-with-useless-key.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag-nav-tasks.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/map/tasks/task/result.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task/result.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/request-navvy/task/delegate/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/map/task/commentitem.ts","../../../projects/bx-rest/src/request-navvy/task/commentitem.ts","../../../projects/bx-rest/src/map/task/planner.ts","../../../projects/bx-rest/src/request-navvy/task/planner.ts","../../../projects/bx-rest/src/map/task/item/userfield.ts","../../../projects/bx-rest/src/request-navvy/task/item/userfield.ts","../../../projects/bx-rest/src/request-navvy/task/item.ts","../../../projects/bx-rest/src/request-navvy/task.ts","../../../projects/bx-rest/src/map/disk/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/base.ts","../../../projects/bx-rest/src/map/disk/folder.ts","../../../projects/bx-rest/src/request-navvy/disk/folder.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/map/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/map/calendar/section.ts","../../../projects/bx-rest/src/request-navvy/calendar/section.ts","../../../projects/bx-rest/src/map/calendar/user/settings.ts","../../../projects/bx-rest/src/request-navvy/calendar/user/settings.ts","../../../projects/bx-rest/src/request-navvy/calendar/user.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.ts","../../../projects/bx-rest/src/map/department.ts","../../../projects/bx-rest/src/request-navvy/department.ts","../../../projects/bx-rest/src/request-navvy/im/chat/user.ts","../../../projects/bx-rest/src/request-navvy/im/chat.ts","../../../projects/bx-rest/src/request-navvy/im/counters.ts","../../../projects/bx-rest/src/map/im/gialog/users.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/users.ts","../../../projects/bx-rest/src/map/im/dialog.ts","../../../projects/bx-rest/src/map/im/gialog/messages.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/messages.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/read.ts","../../../projects/bx-rest/src/request-navvy/im/dialog.ts","../../../projects/bx-rest/src/functions/errorHandler.ts","../../../projects/bx-rest/src/map/im/recent.ts","../../../projects/bx-rest/src/request-navvy/im/recent.ts","../../../projects/bx-rest/src/map/im/user.ts","../../../projects/bx-rest/src/request-navvy/im/user/status/idle.ts","../../../projects/bx-rest/src/request-navvy/im/user/status.ts","../../../projects/bx-rest/src/map/im/user/list.ts","../../../projects/bx-rest/src/request-navvy/im/user/list.ts","../../../projects/bx-rest/src/request-navvy/im/user.ts","../../../projects/bx-rest/src/request-navvy/im.ts","../../../projects/bx-rest/src/map/app.ts","../../../projects/bx-rest/src/request-navvy/app.ts","../../../projects/bx-rest/src/map/timeman.ts","../../../projects/bx-rest/src/request-navvy/timeman.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/contentview.ts","../../../projects/bx-rest/src/map/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed/blogpost.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork.ts","../../../projects/bx-rest/src/map/pull/application/config.ts","../../../projects/bx-rest/src/map/pull.ts","../../../projects/bx-rest/src/map/channel/public.ts","../../../projects/bx-rest/src/request-navvy/pull/config.ts","../../../projects/bx-rest/src/request-navvy/pull/channel/public.ts","../../../projects/bx-rest/src/request-navvy/pull/application/config.ts","../../../projects/bx-rest/src/request-navvy/pull.ts","../../../projects/bx-rest/src/rest/navvy.ts","../../../projects/bx-rest/src/map/calendar/user.ts","../../../projects/bx-rest/src/map/calendar.ts","../../../projects/bx-rest/src/map/log.ts","../../../projects/bx-rest/src/map/task/stages.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/map/tasks.ts","../../../projects/bx-rest/src/rest/map.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { iBXRestSettings } from './typification/settings'\r\n\r\nexport const DEFAULT_BX_REST_SETTINGS: iBXRestSettings = {\r\n  auth: {\r\n    source: 'cookies',\r\n    key: 'auth'\r\n  },\r\n  urls: {\r\n    source: 'localStorage',\r\n    key: '',\r\n    additional_part: 'rest'\r\n  }\r\n}\r\n\r\nexport const BXRestSettings = {\r\n  date: {\r\n    auth: {\r\n      source: 'cookies',\r\n      key: 'auth',\r\n    },\r\n    urls: {\r\n      source: 'localStorage',\r\n      key: '',\r\n      additional_part: 'rest',\r\n    },\r\n  } as iBXRestSettings,\r\n\r\n  update(newSettings: Partial<iBXRestSettings>): void {\r\n    this.date = { ...this.date, ...newSettings }\r\n  },\r\n}","import { iBXRestAnswer, iBXRestAnswerSuccess } from '../typification/rest/base/answer'\r\n\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T>): NonNullable<T>\r\nexport function BXRestMapResult(v: undefined): undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined): T | undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined) {\r\n  if (v && (instanceOfiBXRestAnswerSuccess(v))) {\r\n    return v.result\r\n  }\r\n  return undefined\r\n}\r\nexport function instanceOfiBXRestAnswerSuccess<T>(object: any): object is iBXRestAnswerSuccess<T> {\r\n  return 'result' in object\r\n}","export default class CookiesServices {\r\n\r\n  static get(name: string): string {\r\n    const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)')\r\n    if (results)\r\n      return results[2]\r\n    else\r\n      return ''\r\n  }\r\n\r\n  static set(name: string, value: string, age = 0) {\r\n    let string = name + '=' + value + ';'\r\n    if(age) {\r\n      string += ' max-age=' + age\r\n    }\r\n    string += '; SameSite=None; Secure'\r\n    document.cookie = string\r\n  }\r\n\r\n  static setObj(name: string, value: any, age = 0) {\r\n    let string = name + '=' + JSON.stringify(value) + ';'\r\n    if(age) {\r\n      string += ' max-age=' + age\r\n    }\r\n    string += '; SameSite=None; Secure'\r\n    document.cookie = string\r\n  }\r\n\r\n  static getObj<T>(name: string): T | false {\r\n    const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)')\r\n    if (results) {\r\n      return JSON.parse(results[2]) as T\r\n    }\r\n\r\n    return false\r\n  }\r\n}\r\n","import { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n/**\r\n * Преобразует значение в строку\r\n *\r\n * @param val\r\n * @param throwError\r\n */\r\nexport function toStr(val: any, throwError = false): string {\r\n  if (val === null || val === undefined) {\r\n    if (throwError) {\r\n      throw new Error(`Invalid value: ${val} cannot be converted to string`)\r\n    }\r\n    return ''\r\n  }\r\n  return String(val)\r\n}\r\n\r\n/**\r\n * Преобразует значение в число\r\n */\r\nexport function toNum(val: any, throwError = true, defValue = 0): number {\r\n  const result = Number(val)\r\n\r\n  if (isNaN(result)) {\r\n    const error = new ToNumError(val)\r\n\r\n    if (throwError) throw error\r\n\r\n    // Если ошибка не пробрасывается — просто логируем\r\n    console.error(error.toString())\r\n    return defValue\r\n  }\r\n\r\n  return result\r\n}\r\n\r\n/**\r\n * Кастомный тип ошибки для числовых преобразований\r\n */\r\nexport class ToNumError extends Error {\r\n  constructor(public readonly value: any) {\r\n    const valueType = typeof value\r\n    const formattedValue =\r\n      valueType === 'object' ? JSON.stringify(value) : String(value)\r\n    const message = `Invalid value passed to toNum(): ${formattedValue} (type: ${valueType})`\r\n    super(message)\r\n    this.name = 'ToNumError'\r\n\r\n    // сохраняем стек вызова (отфильтровав сам конструктор)\r\n    if (this.stack) {\r\n      const stackLines = this.stack.split('\\n')\r\n      // Удаляем строку конструктора (чтобы стек начинался с места вызова toNum)\r\n      this.stack = [stackLines[0], ...stackLines.slice(2)].join('\\n')\r\n    }\r\n  }\r\n\r\n  override toString(): string {\r\n    return [\r\n      `❌ [${this.name}] ${this.message}`,\r\n      this.stack ? `   Stack trace:\\n${this.stack}` : '',\r\n    ].join('\\n')\r\n  }\r\n}\r\n\r\n/**\r\n * Преобразует значение в дату\r\n */\r\nexport function toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions, throwError = true): Date {\r\n  if (val instanceof Date) {\r\n    return val\r\n  } else if (typeof val === 'string') {\r\n    if (format) {\r\n      if (opt) {\r\n        return DateTime.fromFormat(val, format, opt).toJSDate()\r\n      }\r\n      return DateTime.fromFormat(val, format).toJSDate()\r\n    } else {\r\n      return new Date(val)\r\n    }\r\n  } else if (typeof val === 'number') {\r\n    return new Date(val)\r\n  }\r\n\r\n  if (throwError) {\r\n    console.error('Wrong date format', val, format)\r\n    throw new Error('Wrong date format')\r\n  }\r\n\r\n  return new Date()\r\n}\r\n\r\n/**\r\n * Преобразует дату в строку с учетом временной зоны\r\n *\r\n * @param date\r\n * @param throwError\r\n */\r\nexport function toISOStringWithTimezone(date: Date, throwError = true): string {\r\n  if (!(date instanceof Date)) {\r\n    if (throwError) throw new Error('Invalid value: not a valid Date object')\r\n    return ''\r\n  }\r\n\r\n  const tzOffset = -date.getTimezoneOffset()\r\n  const diff = tzOffset >= 0 ? '+' : '-'\r\n  const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n  return date.getFullYear() +\r\n    '-' + pad(date.getMonth() + 1) +\r\n    '-' + pad(date.getDate()) +\r\n    'T' + pad(date.getHours()) +\r\n    ':' + pad(date.getMinutes()) +\r\n    ':' + pad(date.getSeconds()) +\r\n    diff + pad(tzOffset / 60) +\r\n    ':' + pad(tzOffset % 60)\r\n}\r\n\r\n/**\r\n * Преобразует значение в булево значение\r\n *\r\n * @param val\r\n * @param throwError\r\n */\r\nexport function toBool(val: any, throwError = true): boolean {\r\n  switch (typeof val) {\r\n    case 'string':\r\n      val = val.toLowerCase()\r\n      if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n        return val === 'y'\r\n      } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n        return val === 'true'\r\n      } else {\r\n        if (throwError) throw new Error('Invalid value: cannot be converted to boolean')\r\n        return false\r\n      }\r\n    default:\r\n      return Boolean(val)\r\n  }\r\n}\r\n\r\n/**\r\n * Преобразует булево значение в 'Y' или 'N'\r\n *\r\n * @param val\r\n */\r\nexport function toBXYorN(val: boolean): string {\r\n  return val ? 'Y' : 'N'\r\n}\r\n\r\nexport function getBaseUrlHttps(url: string, component = false): string {\r\n  if (component) {\r\n    return encodeURI(cropUrl(url) + '/')\r\n  } else {\r\n    return encodeURI('https://' + cropUrl(url) + '/')\r\n  }\r\n}\r\n\r\n/**\r\n * Обрезает URL (удаляет протокол)\r\n *\r\n * @param url\r\n */\r\nexport function cropUrl(url: string): string {\r\n  url = url ? url.replace('https://', '') : ''\r\n  url = url ? url.replace('http://', '') : ''\r\n  url = url ? url.replace('https:', '') : ''\r\n  url = url ? url.replace('http:', '') : ''\r\n  return url\r\n}\r\n\r\n/**\r\n * Преобразует файл в base64\r\n *\r\n * @param file\r\n */\r\nexport function getBase64File(file: File): Promise<string> {\r\n  return new Promise((resolve, reject) => {\r\n    const reader = new FileReader()\r\n    reader.readAsDataURL(file)\r\n    reader.onload = () => resolve(reader.result as string)\r\n    reader.onerror = error => reject(error)\r\n  })\r\n}\r\n\r\n/**\r\n * Получить файл в формате base64 с разбивкой на заголовок и данные\r\n *\r\n * @param file\r\n */\r\nexport async function getBase64FileLikeStr(file: File): Promise<{\r\n  header: string,\r\n  val: string\r\n} | undefined> {\r\n  const result = await getBase64File(file)\r\n  if (typeof result === 'string') {\r\n    const split = result.split(',')\r\n    return {\r\n      header: split[0],\r\n      val: split[1]\r\n    }\r\n  }\r\n  return undefined\r\n}\r\n\r\nexport function prepareBaseAddress(url: string, add: string | undefined = '') {\r\n  if (url.search('https://') !== 0 && url.search('http://')) {\r\n    url = 'https://' + url\r\n  }\r\n\r\n  if (add && add.length > 0) {\r\n    if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n      url = url + '/'\r\n    }\r\n\r\n    url = url + add\r\n  }\r\n\r\n  if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n    url = url + '/'\r\n  }\r\n\r\n  return url\r\n}","export class LocalStorageServices {\r\n\r\n  static get(name: string): any {\r\n    return localStorage.getItem(name)\r\n  }\r\n\r\n  static getObj<T>(name: string): T | null {\r\n    const localData = localStorage.getItem(name)\r\n    return (localData) ? JSON.parse(localData) as T : null\r\n  }\r\n\r\n  static set(name: string, value: string): void {\r\n    localStorage.setItem(name, value)\r\n  }\r\n\r\n  static setObj(name: string, value: any): void {\r\n    let get = this.get(name)\r\n    if(get && typeof get === 'object'){\r\n      localStorage.setItem(\r\n        name,\r\n        JSON.stringify(\r\n          Object.assign(\r\n            get,\r\n            value\r\n          )\r\n        )\r\n      )\r\n    } else {\r\n      localStorage.setItem(name, JSON.stringify(value))\r\n    }\r\n  }\r\n\r\n  static del(name: string): void {\r\n    localStorage.removeItem(name)\r\n  }\r\n\r\n}\r\n","export class SessionStorage {\r\n\r\n  static setItem(name: string, value: any){\r\n    sessionStorage.setItem(name, JSON.stringify(value))\r\n  }\r\n\r\n  static getItem<T>(name: string){\r\n    const res = sessionStorage.getItem(name)\r\n    if(res){\r\n      return JSON.parse(res) as T\r\n    }\r\n    return undefined\r\n  }\r\n}\r\n","import Cookies from '../../services/vanilla/сookies'\r\nimport { Observable, of, Subscription } from 'rxjs'\r\nimport { prepareBaseAddress } from '../base'\r\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\r\nimport { BXRestSettings, DEFAULT_BX_REST_SETTINGS } from '../../settings'\r\nimport { iBXRestAuth } from '../../typification/auth/save'\r\nimport { SessionStorage } from '../vanilla/sessionStorage'\r\n\r\ntype IKeyAuth = 'sessid' | 'auth' | string\r\n\r\nexport default class SessionKeyServices {\r\n\r\n  authHave = false\r\n  authData: iBXRestAuth | undefined\r\n  subscribe = {\r\n    authData: new Subscription()\r\n  }\r\n\r\n  private readonly BX_REST_SETTINGS = BXRestSettings.date\r\n\r\n  constructor(\r\n  ) {\r\n    const authData = SessionStorage.getItem<iBXRestAuth>(this.constructor.name)\r\n    if ((authData && !authData.access_token.length) || !authData) {\r\n      // получаем токен по собственным каналом (в битриксе приложение trace:apps.trace)\r\n      window.addEventListener('message', (event: MessageEvent) => {\r\n        if (event.origin !== window.origin) { // проверяем что это не наше сообщение (с текущего приложения)\r\n          if (event.data && event.data.param) {\r\n            if (typeof event.data.param === 'string') {\r\n              event.data.param = JSON.parse(event.data.param)\r\n            }\r\n\r\n            if (event.data.param.access_token) {\r\n              const param = event.data.param\r\n              const save = {\r\n                access_token: (param.access_token) ? param.access_token : undefined,\r\n                client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,\r\n                domain: (param.domain) ? param.domain : undefined,\r\n                expires: (param.expires) ? param.expires : undefined,\r\n                expires_in: (param.expires_in) ? param.expires_in : undefined,\r\n                member_id: (param.member_id) ? param.member_id : undefined,\r\n                refresh_token: (param.refresh_token) ? param.refresh_token : undefined,\r\n                scope: (param.scope) ? param.scope : undefined,\r\n                server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,\r\n                status: (param.status) ? param.status : undefined,\r\n                user_id: (param.user_id) ? param.user_id : undefined,\r\n                type: (param.type) ? param.type : undefined,\r\n              }\r\n\r\n              if (Object.keys(save).length && save.access_token) {\r\n                SessionStorage.setItem(this.constructor.name, save)\r\n                this.subscribeAll()\r\n              }\r\n            }\r\n          }\r\n        }\r\n      })\r\n    } else if (this.getAuth().length) {\r\n      this.authHave = true\r\n    }\r\n\r\n    this.authData = authData\r\n\r\n  }\r\n\r\n  subscribeAll() {\r\n    this.subscribe.authData.unsubscribe()\r\n  }\r\n\r\n  getAuth(): string {\r\n    switch (this.BX_REST_SETTINGS.auth.key) {\r\n      case 'auth':\r\n        return Cookies.get('auth')\r\n      default:\r\n        if ((window as any).BX && (window as any).BX.bitrix_sessid()) { // чё за хуйня?\r\n          return (window as any).BX.bitrix_sessid()\r\n        } else if (this.getSessid().length) {\r\n          const str = this.getSessid()\r\n          return (str) ? str : ''\r\n        } else {\r\n          return Cookies.get('auth')\r\n        }\r\n    }\r\n  }\r\n\r\n  getKeyAuth(): IKeyAuth {\r\n    if (this.BX_REST_SETTINGS.auth.key.length) {\r\n      return this.BX_REST_SETTINGS.auth.key\r\n    } else {\r\n      return 'auth'\r\n    }\r\n  }\r\n\r\n  getSessid() {\r\n    const check = new URLSearchParams(document.location.search).get('sessid')\r\n    if (check) {\r\n      LocalStorage.set('sessid', check)\r\n      return check\r\n    } else if (LocalStorage.get('sessid')) {\r\n      return LocalStorage.get('sessid')\r\n    }\r\n    return ''\r\n  }\r\n\r\n  getAuthParams(): string | undefined {\r\n    switch (this.BX_REST_SETTINGS.auth.source) {\r\n      case 'cookies':\r\n        return this.getAuth()\r\n      case 'localStorage':\r\n        return LocalStorage.get(this.BX_REST_SETTINGS.auth.key)\r\n      default:\r\n        return (this.authData) ? this.authData.access_token : undefined\r\n    }\r\n  }\r\n\r\n  getCheckAuthParamsIsOn(){\r\n    return this.BX_REST_SETTINGS.auth.source !== 'off'\r\n  }\r\n\r\n  getBaseUrl(): Observable<string | undefined> {\r\n    const additional_part = (this.BX_REST_SETTINGS.urls.additional_part || this.BX_REST_SETTINGS.urls.additional_part === '')\r\n    ? this.BX_REST_SETTINGS.urls.additional_part\r\n      : DEFAULT_BX_REST_SETTINGS.urls.additional_part\r\n\r\n    if(this.BX_REST_SETTINGS.urls.source === 'string'){\r\n      return of(prepareBaseAddress(this.BX_REST_SETTINGS.urls.key, additional_part))\r\n    }\r\n\r\n    const str = localStorage.getItem(this.BX_REST_SETTINGS.urls.key)\r\n\r\n    return of(prepareBaseAddress((str) ? str : '', additional_part))\r\n  }\r\n}\r\n","import { iHttpParamSettings } from '../../typification/rest/settings'\r\n\r\nexport class HttpData {\r\n\r\n  defSettings: iHttpParamSettings = {\r\n    timeZone: {\r\n      calc: true,\r\n      levelOut: false\r\n    }\r\n  }\r\n\r\n  getHttpParamsPost(\r\n    obj: any,\r\n    sendHttpParams: FormData = new FormData(),\r\n    nesting: string[] = [],\r\n    settings = this.defSettings\r\n  ): any {\r\n    if (obj instanceof Blob) {\r\n      let first = nesting[0]\r\n      let setKey = (nesting.length > 1)\r\n        ? first + '[' + nesting.slice(1).join('][') + ']'\r\n        : first\r\n      sendHttpParams.set(setKey, obj)\r\n      return sendHttpParams\r\n    } else if (obj instanceof Date) {\r\n      let first = nesting[0]\r\n      let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n      let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n      let setKey = (nesting.length > 1)\r\n        ? first + '[' + nesting.slice(1).join('][') + ']'\r\n        : first\r\n      sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString())\r\n      return sendHttpParams\r\n    } else {\r\n      for (const key in obj) {\r\n        let setKey = ''\r\n        if (nesting.length) {\r\n          let first = nesting[0]\r\n          setKey = (nesting.length > 1)\r\n            ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n            : first + '[' + key + ']'\r\n        } else {\r\n          setKey = key\r\n        }\r\n        switch (typeof obj[key]) {\r\n          case 'string':\r\n            sendHttpParams.set(setKey, obj[key])\r\n            break\r\n          case 'symbol':\r\n          case 'number':\r\n          case 'bigint':\r\n          case 'boolean':\r\n            sendHttpParams.set(setKey, String(obj[key]))\r\n            break\r\n          case 'object':\r\n            nesting.push(key)\r\n            sendHttpParams = this.getHttpParamsPost(\r\n              obj[key],\r\n              sendHttpParams,\r\n              nesting,\r\n              settings\r\n            )\r\n            nesting.pop()\r\n            break\r\n          case 'function':\r\n          case 'undefined':\r\n          default:\r\n            console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj)\r\n        }\r\n      }\r\n    }\r\n    return sendHttpParams\r\n  }\r\n\r\n  sliceArrayIntoChunks(arr: any[], chunkSize: number) {\r\n    const res = []\r\n    for (let i = 0; i < arr.length; i += chunkSize) {\r\n      const chunk = arr.slice(i, i + chunkSize)\r\n      res.push(chunk)\r\n    }\r\n    return res\r\n  }\r\n\r\n  removingMultipleSlashes(str: string) {\r\n    return str.replace(/\\/{2,}/g, '/')\r\n  }\r\n}\r\n","import { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { Observable } from 'rxjs'\r\nimport { HttpData } from '../HttpData'\r\n\r\nexport abstract class BaseHttp extends HttpData {\r\n\r\n    abstract httpGet<T>(\r\n        url: string,\r\n        params: any,\r\n        settings: iHttpParamSettings\r\n    ): Observable<T | undefined>\r\n\r\n    abstract httpPost<T>(url: string,\r\n                       params: any ,\r\n                       settings: iHttpParamSettings\r\n    ): Observable<T | undefined>\r\n}\r\n","import { Observable, from, throwError } from 'rxjs'\r\nimport { switchMap } from 'rxjs/operators'\r\nimport axios, { AxiosInstance } from 'axios'\r\nimport SessionKeyServices from '../../services/http/sessionKey'\r\nimport clone from 'just-clone'\r\nimport { iHttpParamSettings } from '../../typification/rest/settings'\r\nimport { BaseHttp } from './base/base'\r\nimport { prepareBaseAddress } from '../base'\r\n\r\nexport class HttpServices extends BaseHttp {\r\n\r\n  protected readonly axiosInstance: AxiosInstance\r\n  public readonly session = new SessionKeyServices()\r\n\r\n  constructor() {\r\n    super()\r\n    this.axiosInstance = axios.create()\r\n  }\r\n\r\n  override httpPost<T>(\r\n    url: string,\r\n    params: any = {},\r\n    settings: iHttpParamSettings = this.defSettings\r\n  ): Observable<T | undefined> {\r\n    const auth = this.session.getAuthParams()\r\n    if (auth) {\r\n      const paramsClone = clone(params)\r\n      paramsClone[this.session.getKeyAuth()] = auth\r\n\r\n      return this.session.getBaseUrl().pipe(\r\n        switchMap((baseUrl) => {\r\n          if (!baseUrl) {\r\n            return throwError(() => new Error('get base url error'))\r\n          }\r\n\r\n          const fullUrl = prepareBaseAddress(baseUrl) + url\r\n          const body = this.getHttpParamsPost(paramsClone, new FormData(), [], settings)\r\n\r\n          return from(\r\n            this.axiosInstance.post<T>(fullUrl, body).then((response) => response.data)\r\n          )\r\n        })\r\n      )\r\n    } else {\r\n      return throwError(() => new Error('auth session not get (post)'))\r\n    }\r\n  }\r\n\r\n  // Мб вообще не работает\r\n  override httpGet<T>(url: string, params: any = {}): Observable<T | undefined> {\r\n    const auth = this.session.getAuthParams()\r\n    if (auth) {\r\n      const paramsClone = clone(params)\r\n      paramsClone[this.session.getKeyAuth()] = auth\r\n\r\n      return this.session.getBaseUrl().pipe(\r\n        switchMap((baseUrl) => {\r\n          if (!baseUrl) {\r\n            return throwError(() => new Error('get base url error'))\r\n          }\r\n\r\n          const fullUrl = prepareBaseAddress(baseUrl) + url\r\n          const queryString = new URLSearchParams(paramsClone).toString()\r\n          const finalUrl = `${fullUrl}?${queryString}`\r\n\r\n          return from(\r\n            this.axiosInstance.get<T>(finalUrl).then((response) => response.data)\r\n          )\r\n        })\r\n      )\r\n    } else {\r\n      return throwError(() => new Error('auth session not get (get)'))\r\n    }\r\n  }\r\n}\r\n","import { Observable, throwError, forkJoin, from } from 'rxjs'\r\nimport clone from 'just-clone'\r\nimport { HttpServices } from './http'\r\nimport {\r\n  iBatchRequestAnswer, iBatchRequestParam, iBatchRequestParamArr, iBatchRequestParamHttp, keyBatch,\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport flatten from 'just-flatten-it'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { switchMap } from 'rxjs/operators'\r\nimport * as qs from 'qs'\r\nimport { prepareBaseAddress } from '../base'\r\nimport { BXRestSettings } from '../../settings'\r\n\r\nexport class HttpBXServices extends HttpServices {\r\n\r\n  /**\r\n   * Это пиздец а не метод\r\n   * TODO: Удалить данный метод после реализации его в разделе Navvy\r\n   * @param param\r\n   */\r\n  branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[])\r\n    : Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n    let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n    const size = 50 // больше не отдаст\r\n    let subarray = [] //массив в который будет выведен результат.\r\n    for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n      subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n    }\r\n\r\n    return forkJoin(\r\n      subarray.map(i => {\r\n        return this.httpPost('batch.json', {\r\n          halt: 0,\r\n          cmd: Object.assign({}, ...i.map(x => {\r\n            return {[x[0]]: x[1]}\r\n          }))\r\n        })\r\n      })\r\n    ) as Observable<iBatchRequestAnswer<A>[]>\r\n  }\r\n\r\n  prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n    let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n      (obj, key) => {\r\n        obj[key] = ''\r\n        return obj\r\n      },\r\n      {} as iBatchRequestParamHttp\r\n    )\r\n    for (let key in param) {\r\n      if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n        res[key] = param[key].name + '?' + qs.stringify(param[key].param, {arrayFormat: 'brackets'})\r\n      }\r\n    }\r\n    return res\r\n  }\r\n\r\n  mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\r\n    return Object.assign([], ...res.map(i =>\r\n      (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result)) ? i.result.result : undefined)\r\n    ) as Record<keyBatch, T>\r\n  }\r\n\r\n  mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\r\n    return flatten<T>(Object.assign([], ...res.map(i =>\r\n      (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result))\r\n        ? i.result.result\r\n        : undefined))\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Основной метод для запросов\r\n   *\r\n   * @param name\r\n   * @param params\r\n   */\r\n  post<T>(name: string[], params: any = {}) {\r\n    return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params)\r\n  }\r\n\r\n  /**\r\n   * Второстепенный метод для запросов. По возможности лучше не использовать\r\n   *\r\n   * @param name\r\n   * @param params\r\n   */\r\n  get<T>(name: string[], params: any = {}) {\r\n    return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params)\r\n  }\r\n\r\n  override httpPost<T>(url: string, params: any = {}): Observable<T | undefined> {\r\n    const paramsClone = clone(params)\r\n    let auth = this.session.getAuthParams()\r\n    const checkIsOn = this.session.getCheckAuthParamsIsOn()\r\n    if (checkIsOn) {\r\n      if (!auth && BXRestSettings.date.auth.source !== 'off') {\r\n        throw new Error('Authorization required (post)')\r\n      }\r\n      paramsClone[this.session.getKeyAuth()] = auth\r\n    }\r\n\r\n    return this.session.getBaseUrl().pipe(\r\n      switchMap((baseUrl) => {\r\n        if (!baseUrl) {\r\n          return throwError(() => new Error('get base url error'))\r\n        }\r\n\r\n        const fullUrl = prepareBaseAddress(baseUrl) + url\r\n        // const body = this.getHttpParamsPost(paramsClone, new FormData(), false, [])\r\n\r\n        return from(\r\n          this.axiosInstance.post<T>(fullUrl, paramsClone,\r\n            {\r\n              headers: {\r\n                'Content-Type': 'application/json',\r\n              }\r\n            }\r\n          ).then((response) => response.data)\r\n        )\r\n      })\r\n    )\r\n  }\r\n\r\n  // Мб не работает\r\n  override httpGet<T>(url: string, params: any = {}): Observable<T | undefined> {\r\n    if (params === null) {\r\n      params = {}\r\n    }\r\n    let auth = this.session.getAuthParams()\r\n    const paramsClone = clone(params)\r\n    if (auth) {\r\n      paramsClone[this.session.getKeyAuth()] = auth\r\n    }\r\n\r\n    let options = {\r\n      params: paramsClone\r\n      // params: JSON.stringify(paramsClone)\r\n    }\r\n\r\n    return this.session.getBaseUrl().pipe(\r\n      switchMap((baseUrl) => {\r\n        if (!baseUrl) {\r\n          return throwError(() => new Error('get base url error'))\r\n        }\r\n\r\n        return from(\r\n          this.axiosInstance.post<T>(prepareBaseAddress(baseUrl) + url, options,\r\n            {\r\n              headers: {\r\n                'Content-Type': 'application/json',\r\n              }\r\n            }\r\n          ).then((response) => response.data)\r\n        )\r\n      })\r\n    )\r\n  }\r\n\r\n  getNameMethod(arr: string[]) {\r\n    return arr.join('.')\r\n  }\r\n\r\n}\r\n\r\n","export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $defer = 'defer'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\nexport const $bizproc = 'bizProc'\r\nexport const $workflow = 'workflow'\r\nexport const $instances = 'instances'\r\nexport const $terminate = '$terminate'\r\nexport const $kill = 'kill'\r\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\r\nexport const $chat = 'chat'\r\nexport const $message = 'message'\r\nexport const $im = 'im'\r\nexport const $updateTitle = 'updateTitle'\r\nexport const $updateColor = 'updateColor'\r\nexport const $updateAvatar = 'updateAvatar'\r\nexport const $setOwner = 'setOwner'\r\nexport const $mute = 'mute'\r\nexport const $timeMan = 'timeman'\r\nexport const $item = 'item'\r\nexport const $userfield = 'userfield'\r\nexport const $config = 'config'\r\nexport const $pull = 'pull'\r\nexport const $channel = 'channel'\r\nexport const $public = 'public'\r\nexport const $application = 'application'\r\nexport const $dialog = 'dialog'\r\nexport const $users = 'users'\r\nexport const $messages = 'messages'\r\nexport const $read = 'read'\r\nexport const $unread = 'unread'\r\nexport const $writing = 'writing'\r\nexport const $all = 'all'\r\nexport const $leave = 'leave'\r\nexport const $recent = 'recent'\r\nexport const $hide = 'hide'\r\nexport const $pin = 'pin'\r\nexport const $end = 'end'\r\nexport const $idle = 'idle'\r\n\r\n","import {\r\n  $add, $api, $approve, $bizproc, $blogpost, $calendar, $chat, $commentitem,\r\n  $complete, $copyto, $defer, $delegate, $delete, $department, $disk,\r\n  $elapseditem, $element, $event, $field, $file, $folder, $get, $getaccess, $getchildren,\r\n  $getFields, $getlist, $im, $isactionallowed, $item,\r\n  $list, $lists, $log, $markdeleted, $moveto, $planner, $rename, $restore,\r\n  $result, $search, $server, $set, $socialnetwork, $sonet_group, $stages, $start, $status, $task,\r\n  $tasks, $time, $timeMan, $update,\r\n  $uploadfile, $user, $userfield, $workflow\r\n} from '../../consts/part-name-methods'\r\nimport { iBXRestWorkpieceMethodsFullOneArgument } from './workpiece/methods'\r\n\r\n/**\r\n * @deprecated\r\n * в будущем будет удалён\r\n */\r\nexport const methods: iBXRestWorkpieceMethodsFullOneArgument<string[]> = {\r\n  user: {\r\n    admin: [$user, 'admin'],\r\n    get: [$user, $get] as const,\r\n    current: [$user, 'current'],\r\n    update: [$user, $update],\r\n    search: [$user, $search],\r\n    access: [$user, 'access'], // U1 - пользователь с id =1\r\n    // AU - все авторизованные пользователи\r\n    // D1 - подразделение с id=1\r\n    // G1 - группа с id=1\r\n    fields: [$user, 'fields'],\r\n    userfield: {\r\n      /**\r\n       * Добавляет пользовательское поле\r\n       */\r\n      add: [$user, $userfield, $add],\r\n      /**\r\n       * Обновляет пользовательское поле\r\n       */\r\n      update: [$user, $userfield, $update],\r\n      /**\r\n       * Удаляет пользовательское поле\r\n       */\r\n      delete: [$user, $userfield, $delete],\r\n      /**\r\n       *  Получает список пользовательских полей\r\n       */\r\n      list: [$user, $userfield, $list],\r\n      file: {\r\n        /**\r\n         *  Получает файл из пользовательского поля\r\n         */\r\n        get: [$user, $userfield, $file, $get]\r\n      }\r\n    }\r\n  },\r\n  tasks: {\r\n    task: {\r\n      /**\r\n       * Создает задачу\r\n       */\r\n      add: [$tasks, $task, $add],\r\n      /**\r\n       * Позволяет принять задачу\r\n       */\r\n      approve: [$tasks, $task, $approve],\r\n      /**\r\n       * Переводит задачу в статус «завершена»\r\n       */\r\n      complete: [$tasks, $task, $complete],\r\n      // counters: {\r\n      //   /**\r\n      //    * Получает счетчики пользователя\r\n      //    */\r\n      //   get: [$tasks, $task, $counters, $get],\r\n      // },\r\n      /**\r\n       * Переводит задачу в статус «отложена»\r\n       */\r\n      defer: [$tasks, $task, $defer],\r\n      /**\r\n       * Метод для делегирования задачи\r\n       */\r\n      delegate: [$tasks, $task, $delegate],\r\n      /**\r\n       * Возвращает информацию о конкретной задаче\r\n       */\r\n      get: [$tasks, $task, $get],\r\n      // /**\r\n      //  * Удаляет задачу\r\n      //  */\r\n      // delete: [$tasks, $task, $delete],\r\n      // /**\r\n      //  * Позволяет отклонить задачу\r\n      //  */\r\n      // disapprove: [$tasks, $task, $disapprove],\r\n      // favorite: {\r\n      //   /**\r\n      //    * Добавляет задачи в \"Избранное\"\r\n      //    */\r\n      //   add: [$tasks, $task, $favorite, $add],\r\n      //   /**\r\n      //    * Удаляет задачи из \"Избранного\"\r\n      //    */\r\n      //   delete: [$tasks, $task, $favorite, $delete],\r\n      // },\r\n      // files: {\r\n      //   /**\r\n      //    * Прикрепляет загруженный на диск файл к задаче\r\n      //    */\r\n      //   attach: [$tasks, $task, $files, $attach],\r\n      // },\r\n      /**\r\n       * Возвращает все доступные поля\r\n       */\r\n      getFields: [$tasks, $task, $getFields],\r\n      /**\r\n       * Метод для проверки доступа к задаче\r\n       */\r\n      getAccess: [$tasks, $task, $getaccess],\r\n      // history: {\r\n      //   /**\r\n      //    * Получает историю задачи\r\n      //    */\r\n      //   list: [$tasks, $task, $history, $list],\r\n      // },\r\n      /**\r\n       * Возвращает массив задач, каждая из которых содержит массив полей\r\n       */\r\n      list: [$tasks, $task, $list],\r\n      // /**\r\n      //  * Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\r\n      //  */\r\n      // pause: [$tasks, $task, $pause],\r\n      // /**\r\n      //  * Возобновляет задачу после ее завершения\r\n      //  */\r\n      // renew: [$tasks, $task, $renew],\r\n      // /**\r\n      //  * Переводит задачу в статус «выполняется»\r\n      //  */\r\n      // start: [$tasks, $task, $start],\r\n      // /**\r\n      //  * Позволяет наблюдать за задачей\r\n      //  */\r\n      // startWatch: [$tasks, $task, 'startwatch'],\r\n      // /**\r\n      //  * Останавливает наблюдение за задачей\r\n      //  */\r\n      // stopwatch: [$tasks, $task, 'stopwatch'],\r\n      /**\r\n       * Обновляет задачу\r\n       */\r\n      update: [$tasks, $task, $update],\r\n      result: {\r\n        /**\r\n         *  Просмотр списка результатов к задаче\r\n         */\r\n        list: [$tasks, $task, $result, $list],\r\n        /**\r\n         * Создание результата задачи из комментария\r\n         */\r\n        addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n        /**\r\n         * Удаление результата задачи по комментарию из которого он был создан\r\n         */\r\n        deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n      }\r\n    }\r\n  },\r\n  task: {\r\n    elapsedItem: {\r\n      // /**\r\n      //  * Возвращает список методов и их описание\r\n      //  */\r\n      // getManifest: [$task, $elapseditem, $getmanifest],\r\n      /**\r\n       * Возвращает список записей о затраченном времени по задаче\r\n       */\r\n      getList: [$task, $elapseditem, $getlist],\r\n      // /**\r\n      //  * Возвращает запись о затраченном времени по ее идентификатору\r\n      //  */\r\n      // get: [$task, $elapseditem, $get],\r\n      /**\r\n       * Добавляет затраченное время к задаче\r\n       */\r\n      add: [$task, $elapseditem, $add],\r\n      /**\r\n       * Удаляет запись о затраченном времени\r\n       */\r\n      delete: [$task, $elapseditem, $delete],\r\n      /**\r\n       * Проверяет разрешено ли действие\r\n       */\r\n      isActionAllowed: [$task, $elapseditem, $isactionallowed],\r\n      /**\r\n       * Изменяет параметры записи о затраченном времени\r\n       */\r\n      update: [$task, $elapseditem, $update],\r\n    },\r\n    commentItem: {\r\n      // /**\r\n      //  * Возвращает список методов и их описание\r\n      //  */\r\n      // getManifest: [$task, $commentitem, $getmanifest],\r\n      /**\r\n       * Возвращает список комментариев к задаче\r\n       */\r\n      getList: [$task, $commentitem, $getlist],\r\n      /**\r\n       * Возвращает комментарий к задаче\r\n       */\r\n      get: [$task, $commentitem, $get],\r\n      /**\r\n       * Создает новый комментарий к задаче\r\n       */\r\n      add: [$task, $commentitem, $add],\r\n      /**\r\n       * Обновляет данные комментария\r\n       */\r\n      update: [$task, $commentitem, $update],\r\n      /**\r\n       * Удаляет комментарий\r\n       */\r\n      delete: [$task, $commentitem, $delete],\r\n      // /**\r\n      //  * Проверяет, разрешено ли действие\r\n      //  */\r\n      // isActionAllowed: [$task, $commentitem, $isactionallowed],\r\n    },\r\n    planner: {\r\n      getList: [$task, $planner, $getlist]\r\n    },\r\n    item: {\r\n      userField: {\r\n        /**\r\n         * Получение всех доступных полей свойства\r\n         */\r\n        getFields: [$task, $item, $userfield, 'getfields'],\r\n        // /**\r\n        //  * Получение всех доступных типов данных\r\n        //  */\r\n        // getTypes: [$task, $item, $userfield, 'gettypes'],\r\n        // /**\r\n        //  * Создание нового свойства\r\n        //  */\r\n        // add: [$task, $item, $userfield, $add],\r\n        // /**\r\n        //  * Получение свойства по идентификатору\r\n        //  */\r\n        // get: [$task, $item, $userfield, $get],\r\n        /**\r\n         * Получение списка свойств\r\n         */\r\n        getList: [$task, $item, $userfield, 'getlist'],\r\n        // /**\r\n        //  * Редактирование параметров свойства\r\n        //  */\r\n        // update: [$task, $item, $userfield, $update],\r\n        // /**\r\n        //  * Удаление свойства\r\n        //  */\r\n        // delete: [$task, $item, $userfield, $delete]\r\n      }\r\n    },\r\n    stages: {\r\n      /**\r\n       * Метод добавляет стадии Канбана / Моего плана\r\n       */\r\n      add: [$task, $stages, $add],\r\n      /**\r\n       * Метод определяет, может ли текущий пользователь перемещать задачи в указанной сущности\r\n       */\r\n      canmovetask: [$task, $stages, 'canmovetask'],\r\n      /**\r\n       * Метод удаляет стадии Канбана / Моего плана\r\n       */\r\n      delete: [$task, $stages, $delete],\r\n      /**\r\n       * Метод получает стадии Канбана / Моего плана\r\n       */\r\n      get: [$task, $stages, $get],\r\n      /**\r\n       * Метод перемещает задачи из одной стадии в другую\r\n       */\r\n      movetask: [$task, $stages, 'movetask'], //\r\n      /**\r\n       * Метод обновляет стадии Канбана / Моего плана.\r\n       */\r\n      update: [$task, $stages, $update]\r\n    }\r\n  },\r\n  timeman: {\r\n    // /**\r\n    //  * Получение настроек рабочего времени пользователя\r\n    //  */\r\n    // settings: [$timeMan, $settings],\r\n    /**\r\n     * Получение информации о текущем рабочем дне пользователя\r\n     */\r\n    status: [$timeMan, $status],\r\n    // /**\r\n    //  * Начать новый рабочий день либо возобновить закрытый или приостановленный\r\n    //  */\r\n    // open: [$timeMan, 'open'],\r\n    // /**\r\n    //  * Закрыть рабочий день\r\n    //  */\r\n    // close: [$timeMan, 'close'],\r\n    // /**\r\n    //  * Приостановить рабочий день\r\n    //  */\r\n    // pause: [$timeMan, $pause],\r\n    // networkrange: {\r\n    //   check: this.baseUrl + 'networkrange.check', // Метод для проверки IP-адреса на вхождение в диапазоны сетевых адресов офисной сети\r\n    //   get: this.baseUrl + 'networkrange.get', // Метод для получения диапазонов сетевых адресов, входящих в офисную сеть\r\n    //   set: this.baseUrl + 'networkrange.set'\t// Метод для установки диапазонов сетевых адресов, входящих в офисную сеть.\t18.5.0\r\n    // },\r\n    // timecontrol: {\r\n    //   report: {\r\n    //     add: this.baseUrl + 'timecontrol.report.add', // Метод для отправки отчета о выявленном отсутствии\r\n    //     get: this.baseUrl + 'timecontrol.reports.get', // Метод для получения отчета о выявленных отсутствиях\r\n    //     settings: {\r\n    //       get: this.baseUrl + 'timecontrol.reports.settings.get' // Метод для получения пользовательских настроек для построения интерфейса отчетов инструмента контроля времени\r\n    //     },\r\n    //     users: {\r\n    //       get: this.baseUrl + 'timecontrol.reports.users.get'\t// Метод для получения списка пользователей, относящихся к указанному подразделению.\t18.5.0\r\n    //     }\r\n    //   },\r\n    //   settings: {\r\n    //     get: this.baseUrl + 'timecontrol.settings.get', // Метод для получения настроек инструмента контроля времени\r\n    //     set: this.baseUrl + 'timecontrol.settings.set'\t// Метод для установки настроек инструмента контроля времени\r\n    //   },\r\n    // },\r\n    // schedule: {\r\n    //   get: this.baseUrl + 'schedule.get'\t// Метод позволяет получить рабочий график по его идентификатору\r\n    // }\r\n  },\r\n  sonet_group: {\r\n    // /**\r\n    //  * Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n    //  */\r\n    // create: [$sonet_group, $create],\r\n    // /**\r\n    //  * Удаляет группу соцсети\r\n    //  */\r\n    // delete: [$sonet_group, $delete],\r\n    // feature: {\r\n    //     access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n    // },\r\n    /**\r\n     * Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n     */\r\n    get: [$sonet_group, $get],\r\n    // /**\r\n    //  * Изменяет владельца группы\r\n    //  */\r\n    // setOwner: [$sonet_group, 'setowner'],\r\n    // /**\r\n    //  * Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n    //  */\r\n    // update: [$sonet_group, $update],\r\n    // user: {\r\n    //     add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n    //     delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n    //     get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n    //     groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n    //     invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n    //     request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n    //     update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n    // },\r\n    // workgroup: {\r\n    //     list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n    //     get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n    // }\r\n  },\r\n  server: {\r\n    time: [$server, $time]\r\n  },\r\n  log: {\r\n    blogpost: {\r\n      /**\r\n       * Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n       */\r\n      add: [$log, $blogpost, $add], //\r\n      // getusers: {\r\n      //   important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n      // },\r\n      /**\r\n       * Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n       */\r\n      get: [$log, $blogpost, $get],\r\n      // /**\r\n      //  * Удаляет сообщение Живой Ленты\r\n      //  */\r\n      // delete: [$log, $blogpost, $delete],\r\n      // /**\r\n      //  * Добавляет получателей в сообщение Живой Ленты\r\n      //  */\r\n      // share: [$log, $blogpost, $share],\r\n      // /**\r\n      //  * Изменяет сообщение Живой Ленты\r\n      //  */\r\n      // update: [$log, $blogpost, $update],\r\n    },\r\n    // blogcomment: {\r\n    //   /**\r\n    //    * Добавляет комментарий к сообщению Живой ленты\r\n    //    */\r\n    //   add: [$log, $blogcomment, $add],\r\n    // }\r\n  },\r\n  lists: {\r\n    // /**\r\n    //  * Метод создаёт список\r\n    //  */\r\n    // add: [$lists, $add],\r\n    // /**\r\n    //  * Метод удаляет список\r\n    //  */\r\n    // delete: [$lists, $delete],\r\n    /**\r\n     * Метод возвращает данные по спискам\r\n     */\r\n    get: [$lists, $get],\r\n    // /**\r\n    //  * Метод обновляет существующий список\r\n    //  */\r\n    // update: [$lists, $update],\r\n    // /**\r\n    //  * Метод возвращает id типа инфоблока\r\n    //  */\r\n    // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n    element: {\r\n      /**\r\n       * Метод создаёт элемент списка\r\n       */\r\n      add: [$lists, $element, $add],\r\n      // /**\r\n      //  * Метод удаляет элемент списка TODO: Реализовать\r\n      //  */\r\n      // delete: [$lists, $element, $delete],\r\n      /**\r\n       * Метод возвращает список элементов или элемент\r\n       */\r\n      get: [$lists, $element, $get],\r\n      // /**\r\n      //  * Метод обновляет элемент списка TODO: Реализовать\r\n      //  */\r\n      // update: [$lists, $element, $update],\r\n      // /**\r\n      //  * Метод возвращает путь к файлу TODO: Реализовать\r\n      //  */\r\n      // getFileUrl: [$lists, $element, $get, $file, $url]\r\n    },\r\n    field: {\r\n      // /**\r\n      //  * Метод создает поле списка\r\n      //  */\r\n      // add: [$lists, $field, $add],\r\n      // /**\r\n      //  * Метод удаляет поле списка\r\n      //  */\r\n      // delete: [$lists, $field, $delete],\r\n      /**\r\n       * Метод возвращает данные поля\r\n       */\r\n      get: [$lists, $field, $get],\r\n      // type: {\r\n      //   /**\r\n      //    * Метод возвращает доступные типа полей для указанного списка\r\n      //    */\r\n      //   get: [$lists, $field, $type, $get],\r\n      // },\r\n      // /**\r\n      //  * Метод обновляет поле списка\r\n      //  */\r\n      // update: [$lists, $field, $update],\r\n    }\r\n  },\r\n  im: {\r\n    chat: {\r\n      add: [$im, $chat, $add],\r\n      // list: [$im, $chat, $user, $list],\r\n      // add: [$im, $chat, $user, $add],\r\n      // delete: [$im, $chat, $user, $delete],\r\n      // updateTitle: [$im, $chat, $updateTitle],\r\n      // updateColor: [$im, $chat, $updateColor],\r\n      // updateAvatar: [$im, $chat, $updateAvatar],\r\n      // setOwner: [$im, $chat, $setOwner],\r\n      // get: [$im, $chat, $get],\r\n      // mute: [$im, $chat, $mute],\r\n    }\r\n  },\r\n  disk: {\r\n    file: {\r\n      // /**\r\n      //  * Возвращает описание полей файла\r\n      //  */\r\n      // getFields: [$disk, $file, $getFields],\r\n      /**\r\n       * Возвращает файл по идентификатору\r\n       */\r\n      get: [$disk, $file, $get], //\r\n      // /**\r\n      //  * Переименовывает файл\r\n      //  */\r\n      // rename: [$disk, $file, $rename],\r\n      // /**\r\n      //  * Копирует файл в указанную папку\r\n      //  */\r\n      // copyTo: [$disk, $file, $copyto],\r\n      // /**\r\n      //  * Перемещает файл в указанную папку\r\n      //  */\r\n      // moveto: [$disk, $file, $moveto],\r\n      // /**\r\n      //  * Уничтожает файл навсегда\r\n      //  */\r\n      // delete: [$disk, $file, $delete],\r\n      /**\r\n       * Перемещает файл в корзину\r\n       */\r\n      markDeleted: [$disk, $file, $markdeleted],\r\n      // /**\r\n      //  * Восстанавливает файл из корзины\r\n      //  */\r\n      // restore: [$disk, $file, $restore],\r\n      // /**\r\n      //  * Загружает новую версию файла\r\n      //  */\r\n      // uploadVersion: [$disk, $file, 'uploadversion'],\r\n      // /**\r\n      //  * Возвращает список версий файла\r\n      //  */\r\n      // getVersions: [$disk, $file, 'getVersions'],\r\n      // /**\r\n      //  * Восстанавливает файл из конкретной версии\r\n      //  */\r\n      // restoreFromVersion: [$disk, $file, 'restoreFromVersion'],\r\n      // /**\r\n      //  * Возвращает публичную ссылку на файл\r\n      //  */\r\n      // getExternalLink: [$disk, $file, 'getexternallink']\r\n    },\r\n    folder: {\r\n      getFields: [$disk, $folder, $getFields],\r\n      get: [$disk, $folder, $get],\r\n      getChildren: [$disk, $folder, $getchildren],\r\n      addSubFolder: [$disk, $folder, 'addsubfolder'],\r\n      copyTo: [$disk, $folder, $copyto],\r\n      moveTo: [$disk, $folder, $moveto],\r\n      rename: [$disk, $folder, $rename],\r\n      deleteTree: [$disk, $folder, 'deletetree'],\r\n      markDeleted: [$disk, $folder, $markdeleted],\r\n      restore: [$disk, $folder, $restore],\r\n      uploadFile: [$disk, $folder, $uploadfile],\r\n      getExternalLink: [$disk, $folder, 'getExternalLink']\r\n    },\r\n    attachedObject: {\r\n      get: [$disk, 'attachedObject', $get]\r\n    }\r\n  },\r\n  department: {\r\n    get: [$department, $get],\r\n    del: [$department, $delete],\r\n    add: [$department, $add],\r\n    update: [$department, $update]\r\n  },\r\n  calendar: {\r\n    event: {\r\n      // /**\r\n      //  * Добавляет новое событие\r\n      //  */\r\n      // add: [$calendar, $event, $add],\r\n      // /**\r\n      //  * Удаляет событие\r\n      //  */\r\n      // delete: [$calendar, $event, $delete],\r\n      /**\r\n       * Возвращает список событий календаря\r\n       */\r\n      get: [$calendar, $event, $get],\r\n      // /**\r\n      //  * Возвращает список будущих событий для текущего пользователя\r\n      //  */\r\n      // getNearest: [$calendar, $event, $get, $nearest],\r\n      // /**\r\n      //  * Редактирует существующее событие\r\n      //  */\r\n      // update: [$calendar, $event, $get, $update],\r\n    }\r\n  },\r\n  bizProc: {\r\n    workflow: {\r\n      // /**\r\n      //  * Возвращает список запущенных бизнес-процессов TODO: реализовать\r\n      //  */\r\n      // instances: {\r\n      //   /**\r\n      //    * Возвращает список запущенных бизнес-процессов. Алиас bizproc.workflow.instances\r\n      //    */\r\n      //   list: [$bizproc, $workflow, $instances, $list]\r\n      // },\r\n      // /**\r\n      //  * Останавливает активный Бизнес-процесс TODO: реализовать\r\n      //  */\r\n      // terminate: {\r\n      //   /**\r\n      //    * Добавляет шаблон Бизнес-процесса // TODO: реализовать\r\n      //    */\r\n      //   add: [$bizproc, $workflow, $template, $add],\r\n      //   /**\r\n      //    * Удаляет шаблон Бизнес-процесса // TODO: реализовать\r\n      //    */\r\n      //   delete: [$bizproc, $workflow, $template, $delete],\r\n      //   /**\r\n      //    * Изменяет шаблон Бизнес-процесса // TODO: реализовать\r\n      //    */\r\n      //   update: [$bizproc, $workflow, $template, $update],\r\n      //   /**\r\n      //    * Возвращает список шаблонов Бизнес-процессов, установленных на сайте\r\n      //    */\r\n      //   list: [$bizproc, $workflow, $template, $list]\r\n      // },\r\n      /**\r\n       * Запускает Бизнес-процесс\r\n       */\r\n      start: [$bizproc, $workflow, $start],\r\n      // /**\r\n      //  * Удаляет запущенный бизнес-процесс TODO: реализовать\r\n      //  */\r\n      // kill: [$bizproc, $workflow, $kill],\r\n    },\r\n    // activity: {\r\n    //   /**\r\n    //    * Добавляет новое действие в бизнес-процесс\r\n    //    */\r\n    //   add: [$bizproc, $activity, $add],\r\n    //   /**\r\n    //    * Удаляет действие\r\n    //    */\r\n    //   delete: [$bizproc, $activity, $delete],\r\n    //   /**\r\n    //    * Возвращает список установленных приложением действий\r\n    //    */\r\n    //   list: [$bizproc, $activity, $list],\r\n    //   /**\r\n    //    * Позволяет обновить поля действия\r\n    //    */\r\n    //   update: [$bizproc, $activity, $update],\r\n    //   /**\r\n    //    * Записывает информацию в лог бизнес-процесса\r\n    //    */\r\n    //   log: [$bizproc, $activity, $log]\r\n    // },\r\n    // task: {\r\n    //   /**\r\n    //    * Осуществляет выполнение заданий БП\r\n    //    */\r\n    //   complete: [$bizproc, $task, $complete],\r\n    //   /**\r\n    //    * Возвращает список заданий бизнес-процессов\r\n    //    */\r\n    //   list: [$bizproc, $task, $list],\r\n    // },\r\n    // robot: {\r\n    //   /**\r\n    //    * Регистрирует нового робота\r\n    //    */\r\n    //   add: [$bizproc, $robot, $add],\r\n    //   /**\r\n    //    * Удаляет зарегистрированного робота\r\n    //    */\r\n    //   delete: [$bizproc, $robot, $delete],\r\n    //   /**\r\n    //    * Список зарегистрированных приложением роботов\r\n    //    */\r\n    //   list: [$bizproc, $robot, $list], //\r\n    //   /**\r\n    //    * Обновляет поля робота\r\n    //    */\r\n    //   update: [$bizproc, $robot, $update] //\r\n    // },\r\n    // event: {\r\n    //   /**\r\n    //    * Возвращает действию выходные параметры, заданные в описании действия\r\n    //    */\r\n    //   send: [$bizproc, $event, $send],\r\n    // }\r\n  },\r\n  socialNetWork: {\r\n    api: {\r\n      contentView: {\r\n        set: [$socialnetwork, $api, 'contentView', $set]\r\n      },\r\n      liveFeed: {\r\n        blogPost: {\r\n          important: {\r\n            vote: [$socialnetwork, $api, 'liveFeed', 'blogPost', 'important', 'vote']\r\n          }\r\n        }\r\n      }\r\n    }\r\n  },\r\n  app: {\r\n    /**\r\n     * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n     */\r\n    info: ['app', 'info']\r\n  }\r\n}","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestUserUserfield {\r\n  protected url = methods.user.userfield\r\n  private readonly http = new HttpBXServices()\r\n\r\n  list() {\r\n    return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n  }\r\n}\r\n","import { iBXRestParamUserGet } from '../typification/rest/user/get'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user'\r\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\r\nimport { BXRestUserUserfield } from './user/userfield'\r\nimport { methods } from '../typification/base/methods'\r\n\r\nexport class BXRestUser {\r\n  private readonly http = new HttpBXServices()\r\n  public readonly userfield = new BXRestUserUserfield()\r\n\r\n  protected url = methods.user\r\n\r\n  admin() {\r\n    return this.http.post<boolean>(this.url.admin)\r\n  }\r\n\r\n  get(params: iBXRestParamUserGet = {}) {\r\n    return this.http.post<iBXRestUserHttp[]>\r\n    (\r\n      this.url.get,\r\n      params\r\n    )\r\n  }\r\n\r\n  current() {\r\n    return this.http.post<iBXRestUserHttp>(this.url.current, {})\r\n  }\r\n\r\n  update(user: iBXRestParamUserGet) {\r\n    return this.http.post<iBXRestUserHttp[]>(\r\n      this.url.update,\r\n      user\r\n    )\r\n  }\r\n\r\n  search(params: iBXRestParamUserSearch) {\r\n    return this.http.post<iBXRestUserHttp[]>(this.url.search, params)\r\n  }\r\n\r\n  access(access: string[]) {\r\n    return this.http.post<boolean>(this.url.access, {ACCESS: access})\r\n  }\r\n\r\n  fields() {\r\n    return this.http.post<iBXRestUserHttpField>(this.url.fields)\r\n  }\r\n}\r\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n  iBXRestHttpListsElement,\r\n  iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestListsElement {\r\n  protected readonly url = methods.lists.element\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get(pram: iBXRestParamListsElementGet) {\r\n    return this.http.post<iBXRestHttpListsElement[]>(\r\n      this.url.get,\r\n      pram\r\n    )\r\n  }\r\n\r\n  add(param: iBXRestParamListsElementAdd) {\r\n    return this.http.post<number>(this.url.add, param)\r\n  }\r\n\r\n}\r\n","import {\r\n  BXRestHttpListsFieldGet,\r\n  iBXRestParamListField\r\n} from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $field, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestListsField {\r\n  protected readonly url = {\r\n    // /**\r\n    //  * Метод создает поле списка\r\n    //  */\r\n    // add: [$lists, $field, $add],\r\n    // /**\r\n    //  * Метод удаляет поле списка\r\n    //  */\r\n    // delete: [$lists, $field, $delete],\r\n    /**\r\n     * Метод возвращает данные поля\r\n     */\r\n    get: [$lists, $field, $get],\r\n    // type: {\r\n    //   /**\r\n    //    * Метод возвращает доступные типа полей для указанного списка\r\n    //    */\r\n    //   get: [$lists, $field, $type, $get],\r\n    // },\r\n    // /**\r\n    //  * Метод обновляет поле списка\r\n    //  */\r\n    // update: [$lists, $field, $update],\r\n  }\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get(param: iBXRestParamListField) {\r\n    return this.http.post<BXRestHttpListsFieldGet>(this.url.get, param)\r\n  }\r\n\r\n}\r\n","import { BXRestListsElement } from './lists/element'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { BXRestListsField } from './lists/field'\r\nimport { $add, $element, $field, $get, $lists } from '../consts/part-name-methods'\r\n\r\nexport class BXRestLists {\r\n  protected url = {\r\n    // /**\r\n    //  * Метод создаёт список\r\n    //  */\r\n    // add: [$lists, $add],\r\n    // /**\r\n    //  * Метод удаляет список\r\n    //  */\r\n    // delete: [$lists, $delete],\r\n    /**\r\n     * Метод возвращает данные по спискам\r\n     */\r\n    get: [$lists, $get],\r\n    // /**\r\n    //  * Метод обновляет существующий список\r\n    //  */\r\n    // update: [$lists, $update],\r\n    // /**\r\n    //  * Метод возвращает id типа инфоблока\r\n    //  */\r\n    // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n    element: {\r\n      /**\r\n       * Метод создаёт элемент списка\r\n       */\r\n      add: [$lists, $element, $add],\r\n      // /**\r\n      //  * Метод удаляет элемент списка TODO: Реализовать\r\n      //  */\r\n      // delete: [$lists, $element, $delete],\r\n      /**\r\n       * Метод возвращает список элементов или элемент\r\n       */\r\n      get: [$lists, $element, $get],\r\n      // /**\r\n      //  * Метод обновляет элемент списка TODO: Реализовать\r\n      //  */\r\n      // update: [$lists, $element, $update],\r\n      // /**\r\n      //  * Метод возвращает путь к файлу TODO: Реализовать\r\n      //  */\r\n      // getFileUrl: [$lists, $element, $get, $file, $url]\r\n    },\r\n    field: {\r\n      // /**\r\n      //  * Метод создает поле списка\r\n      //  */\r\n      // add: [$lists, $field, $add],\r\n      // /**\r\n      //  * Метод удаляет поле списка\r\n      //  */\r\n      // delete: [$lists, $field, $delete],\r\n      /**\r\n       * Метод возвращает данные поля\r\n       */\r\n      get: [$lists, $field, $get],\r\n      // type: {\r\n      //   /**\r\n      //    * Метод возвращает доступные типа полей для указанного списка\r\n      //    */\r\n      //   get: [$lists, $field, $type, $get],\r\n      // },\r\n      // /**\r\n      //  * Метод обновляет поле списка\r\n      //  */\r\n      // update: [$lists, $field, $update],\r\n    }\r\n  }\r\n\r\n  public readonly element = new BXRestListsElement()\r\n  public readonly field = new BXRestListsField()\r\n  private readonly http = new HttpBXServices()\r\n\r\n  // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n  //     return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n  // }\r\n\r\n  get(param: iBXRestParamListGet){\r\n    return this.http.post<iBXRestListItemHttp[]>(this.url.get, param)\r\n  }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { iBXRestTaskElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\n\r\nexport class BXRestTaskElapsedItem {\r\n  protected url = methods.task.elapsedItem\r\n  private readonly http = new HttpBXServices()\r\n\r\n  getList(param: iBXRestParamElapseditemGet = {}) {\r\n    return this.http.post<iBXRestTaskElapsedItemHttp[]>(this.url.getList, param)\r\n  }\r\n\r\n  add(param: iBXRestParamAddElapseditem) {\r\n    return this.http.post<number>(\r\n      this.url.add,\r\n      param\r\n    )\r\n  }\r\n\r\n  update(param: iBXRestParamUpdateElapseditem) {\r\n    return this.http.post<null>\r\n    (\r\n      this.url.update,\r\n      param\r\n    )\r\n  }\r\n\r\n  del(param: iBXRestParamDelElapseditem) {\r\n    return this.http.post<null>(\r\n      this.url.delete,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * idAction:\r\n   * 1 - ACTION_ELAPSED_TIME_ADD\r\n   * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n   * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n   * ITEMID - обязателен в конечной отправке но не обязателен для ACTION_ELAPSED_TIME_ADD,\r\n   * поэтому этом методе можно ставить \"1\" например, так же метод может выдавать ошибки о не доступности задачи\r\n   * поэтому рекомендую воспользоваться аналогичным методом в пространстве имен navvy\r\n   * @param param\r\n   */\r\n  isActionAllowed(param: iIsActionAllowedParam) {\r\n    return this.http.post<boolean>(this.url.isActionAllowed, param)\r\n  }\r\n\r\n}\r\n","import {\r\n  $add,\r\n  $commentitem,\r\n  $delete,\r\n  $get,\r\n  $getlist,\r\n  $getmanifest, $isactionallowed,\r\n  $task,\r\n  $update\r\n} from '../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamTaskCommentItemGet } from '../../typification/rest/task/commentitem/get'\r\nimport { iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { iBXRestCommentTaskAdd } from '../../typification/rest/task/commentitem/add'\r\nimport { iBXRestTaskCommentItemUpdate } from '../../typification/rest/task/commentitem/update'\r\nimport { BXRestTaskCommentItemGetList } from '../../typification/rest/task/commentitem/getlist'\r\nimport { BXRestTaskCommentItemDelete } from '../../typification/rest/task/commentitem/delete'\r\n\r\nexport class BXRestTaskCommentItem {\r\n\r\n  protected url = {\r\n    getManifest: [$task, $commentitem, $getmanifest], // Возвращает список методов и их описание\r\n    getList: [$task, $commentitem, $getlist], // Возвращает список комментариев к задаче\r\n    get: [$task, $commentitem, $get], // Возвращает комментарий к задаче\r\n    add: [$task, $commentitem, $add], // Создает новый комментарий к задаче\r\n    update: [$task, $commentitem, $update], // Обновляет данные комментария\r\n    delete: [$task, $commentitem, $delete], // Удаляет комментарий\r\n    isActionAllowed: [$task, $commentitem, $isactionallowed], // Проверяет, разрешено ли действие\r\n  }\r\n\r\n  private readonly http = new HttpBXServices()\r\n\r\n  add(param: iBXRestCommentTaskAdd) {\r\n    return this.http.post<number>(this.url.add, param)\r\n  }\r\n\r\n  update(param: iBXRestTaskCommentItemUpdate) {\r\n    return this.http.post<boolean>(this.url.update, param)\r\n  }\r\n\r\n  get(param: iBXRestParamTaskCommentItemGet) {\r\n    return this.http.post<iBXRestTaskCommentHtml>(this.url.get, param)\r\n  }\r\n\r\n  getlist(param: BXRestTaskCommentItemGetList) {\r\n    return this.http.post<iBXRestTaskCommentHtml[]>(this.url.getList, param)\r\n  }\r\n\r\n  del(param: BXRestTaskCommentItemDelete) {\r\n    return this.http.post<boolean>(this.url.delete, param)\r\n  }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestTaskPlanner {\r\n  private readonly http = new HttpBXServices()\r\n\r\n  getList(){\r\n    return this.http.post<(string | number)[]>(methods.task.planner.getList)\r\n  }\r\n}\r\n","import {\r\n  iBXRestParamTaskItemUserFieldGetlist,\r\n  iBXRestTaskItemUserFieldGetlistHttp\r\n} from '../../../typification/rest/task/item/userfield/getlist'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { methods } from '../../../typification/base/methods'\r\n\r\nexport class BXRestTaskItemUserField {\r\n  private readonly url = methods.task.item.userField\r\n  private readonly http = new HttpBXServices()\r\n\r\n  getList(param: iBXRestParamTaskItemUserFieldGetlist){\r\n    return this.http.post<iBXRestTaskItemUserFieldGetlistHttp[]>(this.url.getList, param)\r\n  }\r\n\r\n}","import { BXRestTaskItemUserField } from './item/userfield'\r\n\r\nexport class BXRestTaskItem {\r\n  public readonly userField = new BXRestTaskItemUserField()\r\n}","import { BXRestTaskElapsedItem } from './task/elapseditem'\r\nimport { BXRestTaskCommentItem } from './task/commentitem'\r\nimport { BXRestTaskPlanner } from './task/planner'\r\nimport { BXRestTaskItem } from './task/item'\r\n\r\nexport class BXRestTask {\r\n  public readonly elapsedItem = new BXRestTaskElapsedItem()\r\n  public readonly commentItem = new BXRestTaskCommentItem()\r\n  public readonly planner = new BXRestTaskPlanner()\r\n  public readonly item = new BXRestTaskItem()\r\n}\r\n","import { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport {\r\n  iBXParamRestTasksTaskResultAdd,\r\n  iBXRestTasksTaskResultHttp\r\n} from '../../../typification/rest/tasks/task/result/result'\r\nimport { iBXRestParamTasksTaskResultList } from '../../../typification/rest/tasks/result/list'\r\nimport { methods } from '../../../typification/base/methods'\r\n\r\nexport class BXRestTasksTaskResult {\r\n  protected url = methods.tasks.task.result\r\n  private readonly http = new HttpBXServices()\r\n\r\n  deleteFromComment(commentID: number) {\r\n    return this.http.post<null>(this.url.deleteFromComment, {commentId: commentID})\r\n  }\r\n\r\n  addFromComment(param: iBXParamRestTasksTaskResultAdd) {\r\n    return this.http.post<iBXRestTasksTaskResultHttp>(this.url.addFromComment, param)\r\n  }\r\n\r\n  list(param: iBXRestParamTasksTaskResultList) {\r\n    return this.http.post<iBXRestTasksTaskResultHttp[]>(this.url.list, param)\r\n  }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport {\r\n  iBXRestTasksTaskGetHttp,\r\n  iBXRestTasksTaskGetHttpDefault\r\n} from '../../typification/rest/tasks/task/get'\r\nimport {\r\n  iBXRestParamTasksList, iBXRestTasksTaskListHttp } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestParamTasksTaskApprove, iBXRestTasksTaskApproveHttp } from '../../typification/rest/tasks/task/approve'\r\nimport {\r\n  iBXRestParamTasksTaskComplete,\r\n  iBXRestTasksTaskCompleteHttp\r\n} from '../../typification/rest/tasks/task/complete'\r\nimport { iBXRestParamTasksTaskDefer, iBXRestTasksTaskDeferHttp } from '../../typification/rest/tasks/task/defer'\r\nimport { BXRestTasksTaskResult } from './task/result'\r\nimport { iBXRestParamTasksTaskGet } from '../../typification/rest/tasks/task/get'\r\nimport { iBXRestTasksTaskGetFields } from '../../typification/rest/tasks/task/getFields'\r\nimport { iBXRestParamTasksTaskUpdate } from '../../typification/rest/tasks/task/update'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\r\nimport { methods } from '../../typification/base/methods'\r\nimport { iBXRestTasksTaskBaseAnswer } from '../../typification/rest/tasks/task/base'\r\n\r\nexport class BXRestTasksTask {\r\n\r\n  protected url = methods.tasks.task\r\n\r\n  public readonly result = new BXRestTasksTaskResult()\r\n  private readonly http = new HttpBXServices()\r\n\r\n  add<CustomFields extends object = object>(param: iBXRestParamTaskAdd<CustomFields>) {\r\n    return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskGetHttpDefault>>(this.url.add, param)\r\n  }\r\n\r\n  approve(param: iBXRestParamTasksTaskApprove) {\r\n    return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>>(this.url.approve, param)\r\n  }\r\n\r\n  complete(param: iBXRestParamTasksTaskComplete) {\r\n    return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>>(this.url.complete, param)\r\n  }\r\n\r\n  defer(param: iBXRestParamTasksTaskDefer) {\r\n    return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>>(this.url.defer, param)\r\n  }\r\n\r\n  update(param: iBXRestParamTasksTaskUpdate) {\r\n    return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>>(this.url.update, param)\r\n  }\r\n\r\n  get<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksTaskGet<CustomFields>) {\r\n    return this.http.post<iBXRestTasksTaskGetHttp<S, CustomFields>>(this.url.get, param)\r\n  }\r\n\r\n  list<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksList<CustomFields>) {\r\n    return this.http.post<iBXRestTasksTaskListHttp<S, CustomFields>>(this.url.list, param)\r\n  }\r\n\r\n  /*\r\n  listArray(requestArray: RequestApiTaskListBX = {}) {\r\n    return this.list(requestArray).pipe(\r\n      map(v => this.http.mapResult(v)),\r\n      map(v => (v && v.tasks) ? v.tasks : [])\r\n    )\r\n  }\r\n\r\n  listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n    if (!requestArray.select) {\r\n      requestArray.select = this.def.select\r\n      if (cache) {\r\n        return this.storeTask$.pipe(\r\n          take(1),\r\n          mergeMap(tasks => {\r\n            if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n              const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n              let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n              if (filter.length === ids.length) {\r\n                return of(filter)\r\n              }\r\n            }\r\n            return this.getEndListArray(requestArray)\r\n          })\r\n        )\r\n      }\r\n      return this.getEndListArray(requestArray)\r\n    }\r\n    return this.getEndListArray(requestArray)\r\n  }\r\n\r\n  getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n    return this.list(requestArray).pipe(\r\n      mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n        if (items && items.result && typeof items.result.tasks === 'object') {\r\n          const items$ = of(items.result.tasks)\r\n          if (items.next) {\r\n            this.nowLoad$.next({\r\n              total: (items.total) ? items.total : 0,\r\n              next: items.next\r\n            })\r\n            requestArray.start = items.next\r\n            return this.getEndListArray(requestArray).pipe(\r\n              map(vEnd => {\r\n                if (vEnd && items.result.tasks) {\r\n                  return [...items.result.tasks, ...vEnd]\r\n                }\r\n                return (items.result.tasks) ? items.result.tasks : []\r\n              }))\r\n          }\r\n          this.nowLoad$.next({\r\n            total: 0,\r\n            next: 0\r\n          })\r\n          return items$\r\n        } else {\r\n          return of([])\r\n        }\r\n      })\r\n    )\r\n  }\r\n  */\r\n\r\n  getFields() {\r\n    return this.http.post<iBXRestTasksTaskGetFields>(this.url.getFields)\r\n  }\r\n\r\n\r\n  getAccess(param: iBXRestParamTaskGetAccess) {\r\n    return this.http.post<iBXRestTaskGetAccess>(this.url.getAccess, param)\r\n  }\r\n\r\n}\r\n\r\n","import { BXRestTasksTask } from './tasks/task'\r\n\r\nexport class BXRestTasks {\r\n  public readonly task = new BXRestTasksTask()\r\n}\r\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n  iBXRestDiskFileHttp,\r\n  iBXRestParamDiskFileGet,\r\n  iBXRestParamDiskFileMarkDeleted\r\n} from '../../typification/rest/disk/file'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestDiskFile {\r\n  protected url = methods.disk.file\r\n\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get(param: iBXRestParamDiskFileGet) {\r\n    return this.http.post<iBXRestDiskFileHttp>(this.url.get, param)\r\n  }\r\n\r\n  markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n    return this.http.post<iBXRestDiskFileHttp>(\r\n      this.url.markDeleted,\r\n      param\r\n    )\r\n  }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n  iBXRestFolderHttp,\r\n  iBXRestParamFolderDeleteTree,\r\n  iBXRestParamFolderGet,\r\n  iBXRestParamFolderGetChildren,\r\n  iBXRestParamFolderGetExternalLink,\r\n  iBXRestParamFolderMarkDeleted,\r\n  iBXRestParamFolderRestore\r\n} from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestDiskFolderUploadFileParam } from '../../typification/rest/disk/folder/uploadFile'\r\nimport { iBXRestDiskFolderGetFieldsHttp } from '../../typification/rest/disk/folder/getFields'\r\nimport { iBXRestDiskFolderAddSubFolderParam } from '../../typification/rest/disk/folder/addSubFolder'\r\nimport { iBXRestDiskFolderCopyToParam } from '../../typification/rest/disk/folder/copyTo'\r\nimport { iBXRestDiskFolderMoveToParam } from '../../typification/rest/disk/folder/moveTo'\r\nimport { iBXRestDiskFolderRenameParam } from '../../typification/rest/disk/folder/rename'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestDiskFolder {\r\n  protected url = methods.disk.folder\r\n\r\n  private readonly http = new HttpBXServices()\r\n\r\n  /**\r\n   * Возвращает папку по идентификатору\r\n   *\r\n   * @param param\r\n   */\r\n  get(param: iBXRestParamFolderGet) {\r\n    return this.http.post<iBXRestFolderHttp>(this.url.get, param)\r\n  }\r\n\r\n  /**\r\n   * Создает дочернюю папку\r\n   *\r\n   * @param param\r\n   */\r\n  addSubFolder(param: iBXRestDiskFolderAddSubFolderParam){\r\n    return this.http.post<iBXRestFolderHttp>(this.url.addSubFolder, param)\r\n  }\r\n\r\n  /**\r\n   * Копирует папку в указанную папку\r\n   *\r\n   * @param param\r\n   */\r\n  copyTo(param: iBXRestDiskFolderCopyToParam){\r\n    return this.http.post<iBXRestFolderHttp>(this.url.copyTo, param)\r\n  }\r\n\r\n  /**\r\n   * Перемещает папку в указанную папку\r\n   *\r\n   * @param param\r\n   */\r\n  moveTo(param: iBXRestDiskFolderMoveToParam){\r\n    return this.http.post<iBXRestFolderHttp>(this.url.moveTo, param)\r\n  }\r\n\r\n  /**\r\n   * Переименовывает папку\r\n   *\r\n   * @param param\r\n   */\r\n  rename(param: iBXRestDiskFolderRenameParam){\r\n    return this.http.post<iBXRestFolderHttp>(this.url.rename, param)\r\n  }\r\n\r\n  /**\r\n   * Уничтожает папку и всё её дочерние элементы навсегда\r\n   * В ответе 'result': true - успешное уничтожение папки\r\n   *\r\n   * @param param\r\n   */\r\n  deleteTree(param: iBXRestParamFolderDeleteTree){\r\n    return this.http.post<boolean>(\r\n      this.url.deleteTree,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Перемещает папку в корзину\r\n   *\r\n   * @param param\r\n   */\r\n  markDeleted(param: iBXRestParamFolderMarkDeleted){\r\n    return this.http.post<iBXRestFolderHttp>(\r\n      this.url.markDeleted,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Восстанавливает папку из корзины\r\n   *\r\n   * @param param\r\n   */\r\n  restore(param: iBXRestParamFolderRestore){\r\n    return this.http.post<iBXRestFolderHttp>(\r\n      this.url.restore,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Метод возвращает публичную ссылку\r\n   *\r\n   * @param param\r\n   */\r\n  getExternalLink(param: iBXRestParamFolderGetExternalLink){\r\n    return this.http.post<string>(\r\n      this.url.restore,\r\n      param\r\n    )\r\n  }\r\n\r\n\r\n  /**\r\n   * Возвращает описание полей папки\r\n   */\r\n  getFields() {\r\n    return this.http.post<iBXRestDiskFolderGetFieldsHttp>(this.url.getFields)\r\n  }\r\n\r\n  /**\r\n   * Загружает новый файл в указанную папку\r\n   *\r\n   * @param param\r\n   */\r\n  uploadFile(param: iBXRestDiskFolderUploadFileParam) {\r\n    return this.http.post<iBXRestFolderHttp>(\r\n      this.url.uploadFile,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n   *\r\n   * @param param\r\n   */\r\n  getChildren(param: iBXRestParamFolderGetChildren) {\r\n    return this.http.post<(iBXRestFolderHttp | iBXRestDiskFileHttp)[]>(\r\n      this.url.getChildren,\r\n      param\r\n    )\r\n  }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n  iBXRestDiskAttachedObjectHttp,\r\n  iBXRestParamRestDiskAttachedObject\r\n} from '../../typification/rest/disk/AttachedObject'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestDiskAttachedObject {\r\n  protected url = methods.disk.attachedObject\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get(param: iBXRestParamRestDiskAttachedObject) {\r\n    return this.http.post<iBXRestDiskAttachedObjectHttp>(this.url.get, param)\r\n  }\r\n}\r\n","import { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject'\r\n\r\nexport class BXRestDisk {\r\n  public readonly file = new BXRestDiskFile()\r\n  public readonly folder = new BXRestDiskFolder()\r\n  public readonly attachedObject = new BXRestDiskAttachedObject()\r\n}\r\n","export class BXRestBizProcWorkflowInstance {\r\n\r\n  // protected url = methods.bizProc.workflow.instances\r\n\r\n}\r\n","export class BXRestBizProcWorkflowTemplate {\r\n\r\n  // protected url = methods.bizProc.workflow.terminate\r\n\r\n  // constructor(private http: HttpBXServices) {\r\n  // }\r\n\r\n  // list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n  //   return this.http.post(this.url.list, param)\r\n  // }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestParams } from '../../typification/base/params'\r\nimport { iBXRestAnswers } from '../../typification/base/answers'\r\nimport { HttpBXServices } from './HttpBX'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\n\r\nexport class HttpNavvyServices {\r\n  private readonly httpServices = new HttpBXServices()\r\n\r\n  post<T extends keyof iBXRestParams>(\r\n    url: [T],\r\n    params?: iBXRestParams[T],\r\n  ): Observable<iBXRestAnswer<iBXRestAnswers[T]> | undefined>\r\n\r\n  // Перегрузка для пути из двух элементов\r\n  post<T extends keyof iBXRestParams, K1 extends keyof iBXRestParams>(\r\n    url: [T, K1],\r\n    params?: iBXRestParams[T][K1],\r\n  ): Observable<iBXRestAnswer<iBXRestAnswers[T][K1]> | undefined>\r\n\r\n  // Перегрузка для пути из трех элементов\r\n  post<T extends keyof iBXRestParams, K1 extends keyof iBXRestParams[T], K2 extends keyof iBXRestParams[T][K1]>(\r\n    url: [T, K1, K2],\r\n    params?: iBXRestParams[T][K1][K2],\r\n  ): Observable<iBXRestAnswer<iBXRestAnswers[T][K1][K2]> | undefined>\r\n\r\n  // Реализация метода\r\n  post(url: string[], params?: any): Observable<any | undefined>\r\n  {\r\n    if(params === undefined){\r\n      params = {}\r\n    }\r\n    return this.httpServices.post(url, params)\r\n  }\r\n}","import { BXRestBizProcWorkflowInstance } from './workflow/instance'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizProcWorkflowTemplate } from './workflow/template'\r\nimport { HttpNavvyServices } from '../../services/http/httpNavvy'\r\nimport { $bizproc, $start, $workflow } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestBizProcWorkflow {\r\n  public readonly instances = new BXRestBizProcWorkflowInstance()\r\n  public readonly template = new BXRestBizProcWorkflowTemplate()\r\n\r\n  public readonly http = new HttpNavvyServices()\r\n\r\n  /**\r\n   * Запускает Бизнес-процесс\r\n   */\r\n  start(param: iBXRestParamBizprocWorkflowStart)  {\r\n    return this.http.post([$bizproc, $workflow, $start], param)\r\n  }\r\n\r\n}\r\n","export class BXRestBizProcActivity {\r\n  // protected url = methods.bizProc.activity\r\n}\r\n","export class BXRestBizProcTask {\r\n  // protected url = methods.bizProc.task\r\n}\r\n","export class BXRestBizProcRobot {\r\n  // protected url = methods.bizProc.robot\r\n}\r\n","export class BXRestBizProcEvent {\r\n  // protected url = methods.bizProc.event\r\n}\r\n","import { BXRestBizProcWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizProcActivity } from './bizproc/activity'\r\nimport { BXRestBizProcTask } from './bizproc/task'\r\nimport { BXRestBizProcRobot } from './bizproc/robot'\r\nimport { BXRestBizProcEvent } from './bizproc/event'\r\n\r\nexport class BXRestBizProc {\r\n  public readonly workflow = new BXRestBizProcWorkflow()\r\n  public readonly activity = new BXRestBizProcActivity()\r\n  public readonly task = new BXRestBizProcTask()\r\n  public readonly robot = new BXRestBizProcRobot()\r\n  public readonly event = new BXRestBizProcEvent()\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestLogBlogPost {\r\n\r\n  protected url = methods.log.blogpost\r\n\r\n  private readonly http = new HttpBXServices()\r\n\r\n  add(param: iBXRestParamLogBlogPostAdd) {\r\n    return this.http.post<boolean>(this.url.add, param)\r\n  }\r\n\r\n  get(param: iBXRestParamBlogPostGet = {}) {\r\n    return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n  }\r\n\r\n}\r\n","export class BXRestLogBlogComment {\r\n\r\n  // protected url = methods.log.blogcomment\r\n}\r\n","import { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\nexport class BXRestLog {\r\n  public readonly blogPost = new BXRestLogBlogPost()\r\n  public readonly blogComment = new BXRestLogBlogComment()\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\r\n  iBXRestParamSonetGroupGet, iBXRestSonetGroupGetHttp\r\n} from '../typification/rest/sonet_group/get'\r\nimport { methods } from '../typification/base/methods'\r\n\r\nexport class BXRestSonetGroup {\r\n  protected url = methods.sonet_group\r\n  private http = new HttpBXServices()\r\n\r\n  // // TODO: filter и select позже нормально описать\r\n  // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n  //   return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n  //     this.url.get,\r\n  //     {\r\n  //       order: select,\r\n  //       filter: filter\r\n  //     }\r\n  //   )\r\n  // }\r\n\r\n  get(param: iBXRestParamSonetGroupGet = {}) {\r\n    return this.http.post<iBXRestSonetGroupGetHttp[]>(this.url.get, param)\r\n  }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport { methods } from '../typification/base/methods'\r\n\r\nexport class BXRestServer {\r\n  private readonly http = new HttpBXServices()\r\n\r\n  protected url = methods.server\r\n\r\n  time(){\r\n    return this.http.post<string>(this.url.time)\r\n  }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestParamDepartmentGet } from '../typification/rest/department/get'\r\nimport { iBXRestDepartmentHttp } from '../typification/rest/department/department'\r\nimport { iBXRestParamDepartmentAdd } from '../typification/rest/department/add'\r\nimport { iBXRestParamDepartmentDel } from '../typification/rest/department/del'\r\nimport { iBXRestDepartmentUpdate } from '../typification/rest/department/update'\r\nimport { methods } from '../typification/base/methods'\r\n\r\nexport class BXRestDepartment {\r\n  protected url = methods.department\r\n\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get(param: iBXRestParamDepartmentGet = {}) {\r\n    return this.http.post<iBXRestDepartmentHttp[]>(this.url.get, param)\r\n  }\r\n\r\n  add(param: iBXRestParamDepartmentAdd) {\r\n    return this.http.post<number>(this.url.add, param)\r\n  }\r\n\r\n  del(param: iBXRestParamDepartmentDel) {\r\n    return this.http.post<boolean>(this.url.del, param)\r\n  }\r\n\r\n  update(param: iBXRestDepartmentUpdate) {\r\n    return this.http.post<boolean>(this.url.update, param)\r\n  }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestAppInfoHttp } from '../typification/rest/app/info'\r\nimport { methods } from '../typification/base/methods'\r\n\r\nexport class BXRestApp {\r\n  private readonly http = new HttpBXServices()\r\n\r\n  /**\r\n   * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n   */\r\n  info() {\r\n    return this.http.post<iBXRestAppInfoHttp>(methods.app.info)\r\n  }\r\n}\r\n","import { iBXRestParamTimeManStatus, iBXRestTimeManStatusHttp } from '../typification/rest/timeman/status'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { $status, $timeMan } from '../consts/part-name-methods'\r\n\r\nexport class BXRestTimeMan {\r\n  protected readonly url = {\r\n    // /**\r\n    //  * Получение настроек рабочего времени пользователя\r\n    //  */\r\n    // settings: [$timeMan, $settings],\r\n    /**\r\n     * Получение информации о текущем рабочем дне пользователя\r\n     */\r\n    status: [$timeMan, $status],\r\n    // /**\r\n    //  * Начать новый рабочий день либо возобновить закрытый или приостановленный\r\n    //  */\r\n    // open: [$timeMan, 'open'],\r\n    // /**\r\n    //  * Закрыть рабочий день\r\n    //  */\r\n    // close: [$timeMan, 'close'],\r\n    // /**\r\n    //  * Приостановить рабочий день\r\n    //  */\r\n    // pause: [$timeMan, $pause],\r\n    // networkrange: {\r\n    //   check: this.baseUrl + 'networkrange.check', // Метод для проверки IP-адреса на вхождение в диапазоны сетевых адресов офисной сети\r\n    //   get: this.baseUrl + 'networkrange.get', // Метод для получения диапазонов сетевых адресов, входящих в офисную сеть\r\n    //   set: this.baseUrl + 'networkrange.set'\t// Метод для установки диапазонов сетевых адресов, входящих в офисную сеть.\t18.5.0\r\n    // },\r\n    // timecontrol: {\r\n    //   report: {\r\n    //     add: this.baseUrl + 'timecontrol.report.add', // Метод для отправки отчета о выявленном отсутствии\r\n    //     get: this.baseUrl + 'timecontrol.reports.get', // Метод для получения отчета о выявленных отсутствиях\r\n    //     settings: {\r\n    //       get: this.baseUrl + 'timecontrol.reports.settings.get' // Метод для получения пользовательских настроек для построения интерфейса отчетов инструмента контроля времени\r\n    //     },\r\n    //     users: {\r\n    //       get: this.baseUrl + 'timecontrol.reports.users.get'\t// Метод для получения списка пользователей, относящихся к указанному подразделению.\t18.5.0\r\n    //     }\r\n    //   },\r\n    //   settings: {\r\n    //     get: this.baseUrl + 'timecontrol.settings.get', // Метод для получения настроек инструмента контроля времени\r\n    //     set: this.baseUrl + 'timecontrol.settings.set'\t// Метод для установки настроек инструмента контроля времени\r\n    //   },\r\n    // },\r\n    // schedule: {\r\n    //   get: this.baseUrl + 'schedule.get'\t// Метод позволяет получить рабочий график по его идентификатору\r\n    // }\r\n  }\r\n  private readonly http = new HttpBXServices()\r\n\r\n  status(param: iBXRestParamTimeManStatus | undefined = undefined){\r\n    return this.http.post<iBXRestTimeManStatusHttp>(this.url.status, param)\r\n  }\r\n}\r\n\r\n","import {\r\n  iBXRestParamSocialNetWorkApiContentViewSet, iBXRestSocialNetWorkApiContentViewSet\r\n} from '../../../typification/rest/socialnetwork/api/contentview/set'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { methods } from '../../../typification/base/methods'\r\n\r\nexport class BXRestSocialNetWorkApiContentView {\r\n  private url = methods.socialNetWork.api.contentView\r\n\r\n  private http = new HttpBXServices()\r\n\r\n  set(param: iBXRestParamSocialNetWorkApiContentViewSet){\r\n    return this.http.post<iBXRestSocialNetWorkApiContentViewSet>(this.url.set, param)\r\n  }\r\n\r\n}","import { methods } from '../../../../../typification/base/methods'\r\nimport { HttpBXServices } from '../../../../../services/http/HttpBX'\r\nimport {\r\n  iBXRestParamSocialNetWorkApiBlogpostImportantVote, iBXRestSocialNetWorkApiBlogpostImportantVoteHttp\r\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeedBlogPostImportant {\r\n  private url = methods.socialNetWork.api.liveFeed.blogPost.important\r\n  private http = new HttpBXServices()\r\n\r\n  vote(param: iBXRestParamSocialNetWorkApiBlogpostImportantVote) {\r\n    return this.http.post<iBXRestSocialNetWorkApiBlogpostImportantVoteHttp>(this.url.vote, param)\r\n  }\r\n}","import {\r\n  BXRestSocialNetWorkApiLiveFeedBlogPostImportant,\r\n} from './blogpost/important'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeedBlogPost {\r\n  public readonly important = new BXRestSocialNetWorkApiLiveFeedBlogPostImportant()\r\n}","import { BXRestSocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeed {\r\n  public readonly blogPost = new BXRestSocialNetWorkApiLiveFeedBlogPost()\r\n}","import { BXRestSocialNetWorkApiContentView } from './api/contentview'\r\nimport { BXRestSocialNetWorkApiLiveFeed } from './api/livefeed'\r\n\r\nexport class BXRestSocialNetWorkApi {\r\n  public readonly contentView  = new BXRestSocialNetWorkApiContentView()\r\n  public readonly liveFeed  = new BXRestSocialNetWorkApiLiveFeed()\r\n}","import { BXRestSocialNetWorkApi } from './socialnetwork/api'\r\n\r\nexport class BXRestSocialNetWork {\r\n\r\n  // protected url = methods.socialNetWork\r\n  // private http = new HttpBXServices)\r\n  public api = new BXRestSocialNetWorkApi()\r\n\r\n\r\n\r\n}","import { $application, $config, $get, $pull } from '../../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { iBXRestPullApplicationConfigGetHttp } from '../../../typification/rest/pull/application/config/get'\r\n\r\nexport class BXRestPullApplicationConfig {\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get() {\r\n    return this.http.post<iBXRestPullApplicationConfigGetHttp>([$pull, $application, $config, $get])\r\n  }\r\n}","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $config, $get, $pull } from '../../consts/part-name-methods'\r\nimport { iBXRestPullConfigGetHttp } from '../../typification/rest/pull/config/get'\r\nimport { BXRestPullApplicationConfig } from './application/config'\r\n\r\nexport class BXRestPullConfig {\r\n  private readonly http = new HttpBXServices()\r\n  public readonly config = new BXRestPullApplicationConfig()\r\n\r\n  get() {\r\n    return this.http.post<iBXRestPullConfigGetHttp>([$pull, $config, $get])\r\n  }\r\n}","import { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport {\r\n  iBXRestPullChannelPublicGetHttp\r\n} from '../../../typification/rest/pull/channel/get'\r\nimport { $channel, $get, /*$list,*/ $public, $pull } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestPullChannelPublic {\r\n  private readonly http = new HttpBXServices()\r\n\r\n  get() {\r\n    return this.http.post<iBXRestPullChannelPublicGetHttp>([$pull, $channel, $public, $get])\r\n  }\r\n\r\n  /**\r\n   * Пес его знает что за метод такой, судя по коду нужно всю инфу json объектом о пользователе передать,\r\n   * но это не точно\r\n   */\r\n  // list() {\r\n  //   return this.http.post<iBXRestPullChannelPublicGetHttp>([$pull, $channel, $public, $list])\r\n  // }\r\n}","import { BXRestPullConfig } from './pull/config'\r\nimport { BXRestPullChannelPublic } from './pull/channel/public'\r\n\r\nexport class BXRestPull {\r\n  public readonly config = new BXRestPullConfig()\r\n  public readonly channel = {\r\n    public: new BXRestPullChannelPublic()\r\n  }\r\n} ","import { BXRestUser } from '../request/user'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { BXRestTask } from '../request/task'\r\nimport { BXRestTasks } from '../request/tasks'\r\nimport { BXRestDisk } from '../request/disk'\r\nimport { BXRestBizProc } from '../request/bizproc'\r\nimport { BXRestLog } from '../request/log'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\nimport { BXRestServer } from '../request/server'\r\nimport { BXRestDepartment } from '../request/department'\r\nimport { BXRestApp } from '../request/app'\r\nimport { BXRestTimeMan } from '../request/timeman'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestProfileHttp } from '../typification/rest/profile'\r\nimport { iBXRestBatch, iBXRestParamBatch } from '../typification/rest/batch'\r\nimport { BXRestSocialNetWork } from '../request/socialnetwork'\r\nimport { BXRestPull } from '../request/pull'\r\n\r\nexport class BXRest {\r\n  private readonly http = new HttpBXServices()\r\n  public readonly user = new BXRestUser()\r\n  public readonly lists = new BXRestLists()\r\n  public readonly task = new BXRestTask()\r\n  public readonly tasks = new BXRestTasks()\r\n  public readonly disk = new BXRestDisk()\r\n  public readonly bizProc = new BXRestBizProc()\r\n  public readonly log = new BXRestLog()\r\n  public readonly sonet_group = new BXRestSonetGroup()\r\n  public readonly server = new BXRestServer()\r\n  public readonly department = new BXRestDepartment()\r\n  public readonly app = new BXRestApp()\r\n  public readonly timeMan = new BXRestTimeMan()\r\n  public readonly socialNetWork = new BXRestSocialNetWork()\r\n  public readonly pull = new BXRestPull()\r\n\r\n  public profile() {\r\n    return this.http.post<iBXRestProfileHttp>(['profile'])\r\n  }\r\n\r\n  public batch<T>(param: iBXRestParamBatch) {\r\n    return this.http.post<iBXRestBatch<T>>(['batch'], param)\r\n  }\r\n}","import { iBXRestProfile, iBXRestProfileHttp } from '../typification/rest/profile'\r\nimport { toNum } from '../services/base'\r\n\r\nexport class BXRestMap {\r\n  static profile(user: iBXRestProfileHttp | undefined): iBXRestProfile | undefined {\r\n    return (user) ? { ...user, ...{ID: toNum(user.ID)}} as iBXRestProfile : undefined\r\n  }\r\n}","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult, instanceOfiBXRestAnswerSuccess } from '../../../functions/mapResult'\r\nimport { HttpBXServices } from '../../http/HttpBX'\r\nimport { ReturnTypeNavvy } from '../navvy-support'\r\n\r\n/**\r\n * Грядущая повсеместная замена для NavvyPagNavBase\r\n */\r\nexport abstract class NavvyPagBase<T, R, P> {\r\n\r\n  protected readonly http: HttpBXServices\r\n  pageSize = 50 // стандартный размер страницы\r\n\r\n  public constructor(\r\n    protected url: string[],\r\n    protected param: P,\r\n    protected map: ((param: T | undefined) => R | undefined) | undefined\r\n  ) {\r\n    this.http = new HttpBXServices()\r\n  }\r\n\r\n  resVanilla() {\r\n    return this.http.post<T>(this.url, this.param)\r\n  }\r\n\r\n  mapForVanilla(): Observable<iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined> {\r\n    return this.resVanilla()\r\n      .pipe(\r\n        map(v => {\r\n          if (v && instanceOfiBXRestAnswerSuccess(v) && this.map) {\r\n            // Применяем this.map и явно приводим тип результата\r\n            const result = this.map(v.result as T) as ReturnTypeNavvy<T, R>\r\n            return { ...v, ...{result: result} } as iBXRestAnswer<ReturnTypeNavvy<T, R>>\r\n          }\r\n          return v as iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined\r\n        })\r\n      )\r\n  }\r\n\r\n  res() {\r\n    return this.mapAndError(this.resVanilla()).pipe(\r\n      map(v => (v && this.map)\r\n        ? this.map(v)\r\n        : v\r\n      )\r\n    ) as Observable<ReturnTypeNavvy<T, R> | undefined>\r\n  }\r\n\r\n  mapAndError<T>(\r\n    request: Observable<iBXRestAnswer<T> | undefined>\r\n  ) {\r\n    return request.pipe(\r\n      map(v => BXRestMapResult(v)),\r\n      catchError((err: any) => {\r\n        console.error(err)\r\n        throw new Error((err.error) ? err.error : err)\r\n      })\r\n    )\r\n  }\r\n\r\n}\r\n","import { NavvyPagBase } from './extends/navvy-pag-base'\r\n\r\nexport class NavvySimple<T, R, P> extends NavvyPagBase<T, R, P> {\r\n\r\n}\r\n","import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport clone from 'just-clone'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAlternativePagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<T, R, P extends iBXRestAlternativePagination> extends NavvyPagBase<T[], R[], P> {\r\n\r\n  resAll() {\r\n    let save: ReturnTypeNavvy<T, R>[] = []\r\n    return this.resultAllEnd()\r\n      .pipe(\r\n        map(v => {\r\n            if (v) {\r\n              save.push(...v as ReturnTypeNavvy<T, R>[])\r\n            }\r\n            return save\r\n          }\r\n        ),\r\n        last(),\r\n        shareReplay(1)\r\n      )\r\n  }\r\n\r\n  private resultAllEnd() {\r\n    let BXRestClass = new BXRest()\r\n    // return  this.mapForVanillaEnd(this.func, this.param)\r\n    return this.resVanilla().pipe(\r\n      mergeMap(\r\n        items => {\r\n          if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n            if (items.total && items.next) {\r\n              const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n              // Разделяем массив на блоки\r\n              const chunks = []\r\n\r\n              for (let i = 0; i < count.length; i += this.pageSize) {\r\n                chunks.push(count.slice(i, i + this.pageSize))\r\n              }\r\n\r\n              const batchRequests = chunks.map(chunk => {\r\n                return BXRestClass.batch<T[][]>({\r\n                  halt: 1,\r\n                  cmd: chunk.map(i => {\r\n                    const param = clone(this.param)\r\n\r\n                    if (!param.PARAMS) {\r\n                      param.PARAMS = {\r\n                        NAV_PARAMS: {\r\n                          iNumPage: 0,\r\n                          nPageSize: 50\r\n                        }\r\n                      }\r\n                    }\r\n\r\n                    // Устанавливаем start в зависимости от индекса\r\n                    param.PARAMS!.NAV_PARAMS.iNumPage = i + 2 // первая страница уже есть, старт со второй\r\n\r\n                    // Формируем строку запроса\r\n                    return this.http.getNameMethod(this.url)\r\n                      + '?' + qs.stringify(param, {arrayFormat: 'brackets'})\r\n                  })\r\n                })\r\n              })\r\n\r\n              return from(batchRequests).pipe(\r\n                concatMap(request => request), // Выполняет запросы по очереди\r\n                toArray(), // Собирает все результаты в массив\r\n                map(results => {\r\n                  const res = items.result as T[]\r\n                  for (let result of results) {\r\n                    if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n                      res.push(...result.result.result.map(i => i).flat())\r\n                    }\r\n                  }\r\n\r\n                  return (this.map) ?\r\n                    this.map(res)\r\n                    : res\r\n                })\r\n              )\r\n            }\r\n          }\r\n\r\n          return this.mapResultForGetAll(items)\r\n        }\r\n      ),\r\n      catchError(err => {\r\n        // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n        console.error(err)\r\n        return throwError(() => err)\r\n      })\r\n    )\r\n  }\r\n\r\n  private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined) {\r\n    return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n      map(v => (v && this.map) ? this.map(v) : v)\r\n    ) : from([] as ReturnTypeNavvy<T, R>[])\r\n  }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, mergeMap, of, throwError, toArray } from 'rxjs'\r\nimport clone from 'just-clone'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\nexport class NavvyPagNavWithUselessKey<T, R, P extends iBXRestPagination> extends NavvyPagBase<Record<string, T>, R[], P> {\r\n\r\n  save: ReturnTypeNavvy<Record<string, T>, R[]> = []\r\n\r\n  resAll() {\r\n    let BXRestClass = new BXRest()\r\n    return this.resVanilla().pipe(\r\n      mergeMap(\r\n        items => {\r\n          if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n            if (items.total && items.next) {\r\n              const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n              // Разделяем массив на блоки\r\n              const chunks = []\r\n\r\n              for (let i = 0; i < count.length; i += this.pageSize) {\r\n                chunks.push(count.slice(i, i + this.pageSize))\r\n              }\r\n\r\n              const batchRequests = chunks.map(chunk => {\r\n                return BXRestClass.batch<Record<string, T>[]>({\r\n                  halt: 1,\r\n                  cmd: chunk.map(i => {\r\n                    const param = clone(this.param)\r\n                    // Устанавливаем start в зависимости от индекса\r\n                    param.start = (i + 1) * this.pageSize\r\n\r\n                    // Формируем строку запроса\r\n                    return this.http.getNameMethod(this.url)\r\n                      + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n                  })\r\n                }).pipe(\r\n                  map(v => {\r\n                    if (v && instanceOfiBXRestAnswerSuccess(v) && v.result && v.result.result && items.result) {\r\n                      return Object.assign({}, items.result, v.result.result) as Record<string, T>\r\n                    }\r\n\r\n                    throw new Error('wrong batch')\r\n                  })\r\n                )\r\n              })\r\n\r\n              return from(batchRequests).pipe(\r\n                concatMap(request => request), // Выполняет запросы по очереди\r\n                toArray()) // Собирает все результаты в массив\r\n              /*\r\n              return this.getAllTaskElapsedItem(func, param).pipe(\r\n                map(vEnd => {\r\n                  if (vEnd && vEnd.result && items.result) {\r\n                    return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n                  }\r\n                  return items\r\n                })\r\n              )\r\n               */\r\n            } else {\r\n              return of([items.result as Record<string, T>])\r\n            }\r\n          }\r\n          return of(undefined)\r\n          // return from([BXRestMapResult(items)])\r\n          // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n        }\r\n      ),\r\n      map(v => {\r\n        if (v) {\r\n          const mergedObject: Record<string, T> = v.reduce((acc, obj) => {\r\n            return { ...acc, ...obj }\r\n          }, {})\r\n\r\n          if(this.map){\r\n            return this.map(mergedObject)\r\n          }\r\n          this.save.push(...v as ReturnTypeNavvy<Record<string, T>, R[]>)\r\n          return this.save\r\n        }\r\n        return v\r\n      }),\r\n      catchError(err => {\r\n        // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n        console.error(err)\r\n        return throwError(() => err)\r\n      })\r\n    )\r\n  }\r\n}\r\n","import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\nexport class NavvyPagNavTasks<T, R, P extends iBXRestPagination> extends NavvyPagBase<{tasks: T[] | undefined}, R[], P> {\r\n\r\n  save: ReturnTypeNavvy<T, R>[] = []\r\n  resAll() {\r\n    let save: ReturnTypeNavvy<T, R>[] = []\r\n    return this.resultAllEnd()\r\n      .pipe(\r\n        map(v => {\r\n            if (v) {\r\n              save.push(...v as ReturnTypeNavvy<T, R>[])\r\n            }\r\n            return save\r\n          }\r\n        ),\r\n        last(),\r\n        shareReplay(1)\r\n      )\r\n  }\r\n\r\n  private resultAllEnd() {\r\n    let BXRestClass = new BXRest()\r\n    return this.resVanilla().pipe(\r\n      mergeMap(\r\n        items => {\r\n          if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n            this.save = []\r\n            // TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)\r\n            if (items.total && items.total > 50) {\r\n              const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n              // Разделяем массив на блоки\r\n              const chunks = []\r\n\r\n              for (let i = 0; i < count.length; i += this.pageSize) {\r\n                chunks.push(count.slice(i, i + this.pageSize))\r\n              }\r\n\r\n              const batchRequests = chunks.map(chunk => {\r\n                return BXRestClass.batch<{tasks: T[] | undefined}[]>({\r\n                  halt: 1,\r\n                  cmd: chunk.map(i => {\r\n                    const param = clone(this.param)\r\n                    // Устанавливаем start в зависимости от индекса\r\n                    param.start = (i + 1) * this.pageSize\r\n\r\n                    // Формируем строку запроса\r\n                    return this.http.getNameMethod(this.url)\r\n                      + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n                  })\r\n                })\r\n              })\r\n\r\n              return from(batchRequests).pipe(\r\n                concatMap(request => request), // Выполняет запросы по очереди\r\n                toArray(), // Собирает все результаты в массив\r\n                map(results => {\r\n                  if(items.result && items.result.tasks) {\r\n                    const res = items.result.tasks as T[]\r\n\r\n                    for (let result of results) {\r\n                      if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n                        res.push(...result.result.result.filter(i => i).map(i => i.tasks).flat() as T[])\r\n                      }\r\n                    }\r\n\r\n                    return (this.map) ?\r\n                      this.map({tasks: res})\r\n                      : res\r\n                  }\r\n\r\n                  throw new Error('wrong batch')\r\n                })\r\n              )\r\n            }\r\n\r\n            return this.mapResForGetAll(items)\r\n          }\r\n          return this.mapResForGetAll(items)\r\n        }\r\n      ),\r\n      catchError(err => {\r\n        console.error(err)\r\n        return throwError(() => err)\r\n      })\r\n    )\r\n  }\r\n\r\n  private mapResForGetAll(items: iBXRestAnswer<{tasks: T[] | undefined}> | undefined){\r\n    return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n      map(v => (v && this.map) ? this.map(v) : v)\r\n    ) : from([])\r\n  }\r\n}\r\n","import { concatMap, from, mergeMap, toArray} from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { BXRest } from '../../rest/base'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\n\r\n\r\nexport class NavvyPag<T, R, P extends iBXRestPagination> extends NavvyPagBase<T[], R[], P> {\r\n\r\n  save: ReturnTypeNavvy<T, R>[] = []\r\n\r\n  resAll() {\r\n    let BXRestClass = new BXRest()\r\n    return this.resVanilla().pipe(\r\n      mergeMap(\r\n        items => {\r\n          if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n            this.save = []\r\n            // TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)\r\n            if (items.total && items.total > 50) {\r\n              const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n              // Разделяем массив на блоки\r\n              const chunks = []\r\n\r\n              for (let i = 0; i < count.length; i += this.pageSize) {\r\n                chunks.push(count.slice(i, i + this.pageSize))\r\n              }\r\n\r\n              const batchRequests = chunks.map(chunk => {\r\n                return BXRestClass.batch<T[][]>({\r\n                  halt: 1,\r\n                  cmd: chunk.map(i => {\r\n                    const param = clone(this.param)\r\n                    // Устанавливаем start в зависимости от индекса\r\n                    param.start = (i + 1) * this.pageSize\r\n\r\n                    // Формируем строку запроса\r\n                    return this.http.getNameMethod(this.url)\r\n                      + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n                  })\r\n                }).pipe(\r\n                )\r\n              })\r\n\r\n              return from(batchRequests).pipe(\r\n                concatMap(request => request), // Выполняет запросы по очереди\r\n                toArray(), // Собирает все результаты в массив\r\n                map(results => {\r\n                  const res = items.result as T[]\r\n                  for(let result of results){\r\n                    if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n                      res.push(...result.result.result.map(i => i).flat())\r\n                    }\r\n                  }\r\n\r\n                  return (this.map) ?\r\n                    this.map(res)\r\n                    : res\r\n                }),\r\n              )\r\n            }\r\n\r\n            return this.mapResForGetAll(items)\r\n          }\r\n          return this.mapResForGetAll(items)\r\n        }\r\n      ),\r\n      map(v => {\r\n        if (v) {\r\n          this.save.push(... v as ReturnTypeNavvy<T, R>[])\r\n        }\r\n\r\n        return this.save\r\n      })\r\n    )\r\n  }\r\n\r\n  private mapResForGetAll(items: iBXRestAnswer<T[]> | undefined) {\r\n    return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n      map(v => (v && this.map) ? this.map(v) : v)\r\n    ) : from([])\r\n  }\r\n}\r\n","import { NavvySimple } from './navvy/navvy-simple'\r\nimport { NavvyAlterPagNav } from './navvy/navvy-alternative-pagination-navigation'\r\nimport { iBXRestAlternativePagination, iBXRestPagination } from '../typification/rest/base/api-pagination-bx'\r\nimport { NavvyPagNavWithUselessKey } from './navvy/navvy-pag-nav-with-useless-key'\r\nimport { NavvyPagNavTasks } from './navvy/navvy-pag-nav-tasks'\r\nimport { NavvyPag } from './navvy/navvy-pag'\r\n\r\nexport class Navvy {\r\n\r\n  simple<T, R = T, A = undefined>(\r\n    url: string[],\r\n    arg?: A,\r\n    map?: (param: T | undefined) => R | undefined\r\n  ) {\r\n    return new NavvySimple(\r\n      url,\r\n      arg !== undefined ? arg : undefined,\r\n      map\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Новый, пока тестируемый метод для api методов с пагинацией\r\n   *\r\n   * @param url\r\n   * @param arg\r\n   * @param map\r\n   * @constructor\r\n   */\r\n  pagNav<T, R, A extends iBXRestPagination>(\r\n    url: string[],\r\n    arg: A,\r\n    map?: (param: T[] | undefined) => R[] | undefined\r\n  ) {\r\n    return new NavvyPag(url, arg, map)\r\n  }\r\n\r\n  // old PagNav\r\n  // PagNav<T, R, A extends iBXRestPagination>(\r\n  //   func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n  //   arg: A,\r\n  //   map: ((param: T[] | undefined) => R[] | undefined) | undefined) {\r\n  //   return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, map)\r\n  // }\r\n\r\n  // Batch<T, R, A extends iBXRestPagination>(\r\n  //   func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n  //   arg: A,\r\n  //   map: ((param: T[] | undefined) => R[] | undefined) | undefined) {\r\n  //   return new NavvyBatch(this.requestClass, this.mapClass, func, arg, map)\r\n  // }\r\n\r\n  pagNavTasks<T, R, A extends iBXRestPagination>(\r\n    url: string[],\r\n    // func: (param: A) => Observable<iBXRestAnswer<{tasks: T[] | undefined}> | undefined>,\r\n    arg: A,\r\n    map?: (param: { tasks: T[] | undefined } | undefined) => R[] | undefined\r\n  ) {\r\n    return new NavvyPagNavTasks(url, arg, map)\r\n  }\r\n\r\n  pagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n    url: string[],\r\n    // func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n    arg: A,\r\n    map?: (param: Record<string, T> | undefined) => R[] | undefined\r\n  ) {\r\n    return new NavvyPagNavWithUselessKey(url, arg, map)\r\n  }\r\n\r\n  alterPagNav<T, R, A extends iBXRestAlternativePagination>(\r\n    url: string[],\r\n    // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n    arg: A,\r\n    map?: (param: T[] | undefined) => R[] | undefined\r\n  ) {\r\n    return new NavvyAlterPagNav(url, arg, map)\r\n  }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $delete, $file, $get, $list, $update, $user, $userfield } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyUserUserfield {\r\n  private url = {\r\n    /**\r\n     * Добавляет пользовательское поле\r\n     */\r\n    add: [$user, $userfield, $add],\r\n    /**\r\n     * Обновляет пользовательское поле\r\n     */\r\n    update: [$user, $userfield, $update],\r\n    /**\r\n     * Удаляет пользовательское поле\r\n     */\r\n    delete: [$user, $userfield, $delete],\r\n    /**\r\n     *  Получает список пользовательских полей\r\n     */\r\n    list: [$user, $userfield, $list],\r\n    file: {\r\n      /**\r\n       *  Получает файл из пользовательского поля\r\n       */\r\n      get: [$user, $userfield, $file, $get]\r\n    }\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  list() {\r\n    return this.Navvy.simple(this.url.list)\r\n  }\r\n}\r\n","import clone from 'just-clone'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user/user'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../services/base'\r\n\r\nexport class BXRestMapUser {\r\n\r\n  static get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined {\r\n    return (v) ? v.map(i => BXRestMapUser.userHttpToTrace(i)) : undefined\r\n  }\r\n\r\n  static current(v: iBXRestUserHttp | undefined): iBXRestUser | undefined {\r\n    return (v) ? BXRestMapUser.userHttpToTrace(v) : undefined\r\n  }\r\n\r\n  static userHttpToTrace(user: iBXRestUserHttp): iBXRestUser {\r\n    let res: iBXRestUser = Object.assign(\r\n      clone(user), {\r\n        ID: toNum(user.ID),\r\n        IS_ONLINE: toBool(user.IS_ONLINE),\r\n        DATE_REGISTER: toDate(user.DATE_REGISTER),\r\n        PERSONAL_BIRTHDAY: toDate(user.PERSONAL_BIRTHDAY),\r\n      })\r\n    if (user.LAST_LOGIN) {\r\n      res.LAST_LOGIN = toDate(user.LAST_LOGIN)\r\n    }\r\n\r\n    return res\r\n  }\r\n\r\n  static BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n    return Object.assign(clone(user), {\r\n      ID: toStr(user.ID),\r\n      IS_ONLINE: toBXYorN(user.IS_ONLINE),\r\n      DATE_REGISTER: toISOStringWithTimezone(user.DATE_REGISTER),\r\n      PERSONAL_BIRTHDAY: toStr(user.PERSONAL_BIRTHDAY),\r\n      LAST_LOGIN: toStr(user.LAST_LOGIN)\r\n    })\r\n  }\r\n\r\n  static getFIO(user: iBXRestUser): string {\r\n    let res = ''\r\n    if (!user.LAST_NAME) {\r\n      const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n      const NAME = (user.NAME) ? user.NAME : ''\r\n      res = NAME + ' ' + SECOND_NAME\r\n    } else if (!user.NAME) {\r\n      res = user.LAST_NAME\r\n    } else if (!user.SECOND_NAME) {\r\n      res = user.LAST_NAME + ' ' + user.NAME\r\n    } else {\r\n      res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n    }\r\n    return res.trim()\r\n  }\r\n\r\n  static getFI(user: iBXRestUser): string {\r\n    let res = ''\r\n    if (!user.LAST_NAME) {\r\n      const NAME = (user.NAME) ? user.NAME : ''\r\n      res = NAME\r\n    } else if (!user.NAME) {\r\n      res = user.LAST_NAME\r\n    } else {\r\n      res = user.LAST_NAME + ' ' + user.NAME\r\n    }\r\n    return res.trim()\r\n  }\r\n\r\n  static getFIOShort(user: iBXRestUser): string {\r\n    let res = ''\r\n    if (!user.LAST_NAME) {\r\n      const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n      const NAME = (user.NAME) ? user.NAME : ''\r\n      res = NAME + ' ' + SECOND_NAME\r\n    } else if (!user.NAME) {\r\n      res = user.LAST_NAME\r\n    } else if (!user.SECOND_NAME) {\r\n      res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n    } else {\r\n      res =\r\n        user.LAST_NAME + ' ' +\r\n        user.NAME.charAt(0).toUpperCase() + '.' +\r\n        user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n    }\r\n    return res.trim()\r\n  }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { iBXRestParamUserGet } from '../typification/rest/user/get'\r\nimport clone from 'just-clone'\r\nimport { iBXRestParamUserSearch } from '../typification/rest/user/search'\r\nimport { BXRestNavvyUserUserfield } from './user/userfield'\r\nimport { BXRestMapUser } from '../map/user'\r\nimport { $get, $search, $update, $user } from '../consts/part-name-methods'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user/user'\r\n\r\nexport class BXRestNavvyUser {\r\n  def: { params: { ACTIVE: boolean, start: 0 } } = {\r\n    params: {ACTIVE: true, start: 0}\r\n  }\r\n  url = {\r\n    admin: [$user, 'admin'],\r\n    get: [$user, $get],\r\n    current: [$user, 'current'],\r\n    update: [$user, $update],\r\n    search: [$user, $search],\r\n    access: [$user, 'access'], // U1 - пользователь с id =1\r\n    // AU - все авторизованные пользователи\r\n    // D1 - подразделение с id=1\r\n    // G1 - группа с id=1\r\n    fields: [$user, 'fields'],\r\n  }\r\n\r\n  public readonly userField = new BXRestNavvyUserUserfield()\r\n  private readonly Navvy = new Navvy()\r\n\r\n  admin() {\r\n    return this.Navvy.simple<boolean>(\r\n      this.url.admin\r\n    )\r\n  }\r\n\r\n  get(params: iBXRestParamUserGet = {}){\r\n    let copyParams = clone(params)\r\n    this.setDefParam(copyParams)\r\n\r\n    return this.Navvy.pagNav(\r\n      this.url.get,\r\n      copyParams,\r\n      BXRestMapUser.get)\r\n  }\r\n\r\n  current() {\r\n    return this.Navvy.simple<iBXRestUserHttp, iBXRestUser>(\r\n      this.url.current,\r\n      undefined,\r\n      BXRestMapUser.current\r\n    )\r\n  }\r\n\r\n  /*\r\n  update(user: iBXRestUser, fieldUpdate: string[]) {\r\n\r\n      if (fieldUpdate && fieldUpdate.length) {\r\n      let sendData: any = {\r\n        ID: user.ID,\r\n      }\r\n      const userBX = this.BXRestUserMap.BXtoHttp(user)\r\n      for (const field of fieldUpdate) {\r\n        if (userBX[field]) {\r\n          sendData[field] = userBX[field]\r\n        } else {\r\n          return throwError(() => 'One sent field is empty')\r\n        }\r\n      }\r\n      return this.http.post<iBXRestUserHttp[]>(\r\n        this.url.update,\r\n        sendData\r\n      )\r\n    } else {\r\n      return throwError(() => 'All sent field for edit is empty')\r\n    }\r\n    return this.Navvy.simple(\r\n      this.BXRestUser.update(user, fieldUpdate),\r\n      'Не удалось обновить пользователя с ID' + user.ID\r\n    )\r\n  }\r\n  */\r\n  search(params: iBXRestParamUserSearch) {\r\n    return this.Navvy.pagNav(\r\n      this.url.search,\r\n      params,\r\n      BXRestMapUser.get\r\n    )\r\n  }\r\n\r\n  access(params: string[]) {\r\n    return this.Navvy.simple(\r\n      this.url.access,\r\n      params,\r\n    )\r\n  }\r\n\r\n  fields() {\r\n    return this.Navvy.simple(this.url.fields)\r\n  }\r\n\r\n  // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\r\n  //   if (!Object.keys(params).length) {\r\n  //     params = clone(this.def.params)\r\n  //   }\r\n  //\r\n  //   const saveAllUser = compare(params, this.def.params)\r\n  //   return this.user$.pipe(\r\n  //     take(1),\r\n  //     mergeMap(v => {\r\n  //       if (v.load.all) {\r\n  //         if (compare(this.def.params, params)) {\r\n  //           return of(clone(v.data))\r\n  //         }\r\n  //       }\r\n  //\r\n  //       return this.getEndArray(params).pipe(\r\n  //         take(1),\r\n  //         map(v => {\r\n  //           if (v && v.result) {\r\n  //             let cl = clone(v.result)\r\n  //             return this.saveArrUser(cl)\r\n  //           }\r\n  //           return undefined\r\n  //         }),\r\n  //       )\r\n  //     }),\r\n  //     tap(v => {\r\n  //       if (v && v.length && saveAllUser) {\r\n  //         this.store.dispatch(loadAll({load: true}))\r\n  //       }\r\n  //       params.start = this.def.params.start\r\n  //     })\r\n  //   )\r\n  // }\r\n\r\n  // private saveArrUser(users: iBXRestUserHttp[]) {\r\n  //   let result: iBXRestUser [] = []\r\n  //   for (const user of users) {\r\n  //     result.push(this.userMap.HttpToBX(user))\r\n  //   }\r\n  //   this.store.dispatch(saveArr({arr: result}))\r\n  //\r\n  //   return result\r\n  // }\r\n\r\n  // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\r\n  //   return this.get(params).pipe(\r\n  //     mergeMap(items => {\r\n  //       if (items && items.result && typeof items.result === 'object') {\r\n  //         if (items.next) {\r\n  //           params.start = items.next\r\n  //           return this.getEndArray(params).pipe(map(vEnd => {\r\n  //             if (vEnd && items.result && vEnd.result) {\r\n  //               return {result: [...items.result, ...vEnd.result]}\r\n  //             }\r\n  //             return (items) ? items : undefined\r\n  //           }))\r\n  //         }\r\n  //         return of(items)\r\n  //       } else {\r\n  //         return of(undefined)\r\n  //       }\r\n  //     }),\r\n  //   )\r\n  // }\r\n\r\n  private setDefParam(params: iBXRestParamUserGet) {\r\n    if(!params.FILTER) {\r\n      params.FILTER = {}\r\n    }\r\n\r\n    if (!Object.prototype.hasOwnProperty.call(params.FILTER, 'ACTIVE')) {\r\n      params.FILTER.ACTIVE = this.def.params.ACTIVE\r\n    } else if(typeof params.FILTER.ACTIVE !== 'boolean') {\r\n      delete params.FILTER.ACTIVE\r\n    }\r\n\r\n    if (!Object.prototype.hasOwnProperty.call(params, 'start')) {\r\n      params.start = this.def.params.start\r\n    }\r\n\r\n    if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\r\n      delete params.FILTER.UF_DEPARTMENT\r\n    }\r\n  }\r\n\r\n}\r\n\r\n","import {\r\n  iBXRestHttpListsElement,\r\n  iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\nimport { toNum } from '../../services/base'\r\n\r\nexport default class BXRestMapListsElement {\r\n\r\n  static get(items: iBXRestHttpListsElement[] | undefined): iBXRestListsElement[] | undefined {\r\n    return (items)\r\n      ? items.map(item => Object.assign(item, {\r\n        BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n        CREATED_BY: toNum(item.CREATED_BY),\r\n        IBLOCK_ID: toNum(item.IBLOCK_ID),\r\n        ID: toNum(item.ID)\r\n      }))\r\n      : undefined\r\n  }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $add, $element, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyListsElement {\r\n\r\n  url = {\r\n    /**\r\n     * Метод создаёт элемент списка\r\n     */\r\n    add: [$lists, $element, $add],\r\n    // /**\r\n    //  * Метод удаляет элемент списка TODO: Реализовать\r\n    //  */\r\n    // delete: [$lists, $element, $delete],\r\n    /**\r\n     * Метод возвращает список элементов или элемент\r\n     */\r\n    get: [$lists, $element, $get],\r\n    // /**\r\n    //  * Метод обновляет элемент списка TODO: Реализовать\r\n    //  */\r\n    // update: [$lists, $element, $update],\r\n    // /**\r\n    //  * Метод возвращает путь к файлу TODO: Реализовать\r\n    //  */\r\n    // getFileUrl: [$lists, $element, $get, $file, $url]\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamListsElementGet) {\r\n    return this.Navvy.pagNav(\r\n      this.url.get,\r\n      param,\r\n      BXRestListsElementMap.get\r\n    )\r\n  }\r\n\r\n  add(param: iBXRestParamListsElementAdd) {\r\n    return this.Navvy.simple(this.url.add, param)\r\n  }\r\n}\r\n","import { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\nexport class BXRestMapListsField {\r\n  static get(v: Record<string, iBXRestFieldItem> | undefined):iBXRestFieldItem[] | undefined {\r\n    return (v) ? Object.values(v) : undefined\r\n  }\r\n}\r\n","import { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\nimport BXRestMapListsElement from './lists/element'\r\nimport { BXRestMapListsField } from './lists/field'\r\nimport { toNum, toStr } from '../services/base'\r\n\r\nexport class BXRestMapLists {\r\n\r\n  public readonly element = new BXRestMapListsElement()\r\n  public readonly field = new BXRestMapListsField()\r\n\r\n  static get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n    return (value) ? value.map(i => BXRestMapLists.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n  }\r\n\r\n  static iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\r\n  {\r\n    return {\r\n      ACTIVE: itemLists.ACTIVE === 'Y',\r\n      API_CODE: toStr(itemLists.API_CODE),\r\n      BIZPROC: itemLists.BIZPROC === 'Y',\r\n      CANONICAL_PAGE_URL: toStr(itemLists.CANONICAL_PAGE_URL),\r\n      CODE: itemLists.CODE,\r\n      DESCRIPTION: toStr(itemLists.DESCRIPTION),\r\n      DESCRIPTION_TYPE: itemLists.DESCRIPTION_TYPE,\r\n      DETAIL_PAGE_URL: toStr(itemLists.DETAIL_PAGE_URL),\r\n      EDIT_FILE_AFTER: toStr(itemLists.EDIT_FILE_AFTER),\r\n      EDIT_FILE_BEFORE: toStr(itemLists.EDIT_FILE_BEFORE),\r\n      ELEMENTS_NAME: toStr(itemLists.ELEMENTS_NAME),\r\n      ELEMENT_NAME: toStr(itemLists.ELEMENT_NAME),\r\n      EXTERNAL_ID: toStr(itemLists.EXTERNAL_ID),\r\n      IBLOCK_TYPE_ID: toStr(itemLists.IBLOCK_TYPE_ID),\r\n      ID: toNum(itemLists.ID),\r\n      INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n      INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n      LANG_DIR: toStr(itemLists.LANG_DIR),\r\n      LAST_CONV_ELEMENT: toNum(itemLists.LAST_CONV_ELEMENT),\r\n      LID: toStr(itemLists.LID),\r\n      LIST_MODE: toStr(itemLists.LIST_MODE),\r\n      LIST_PAGE_URL: toStr(itemLists.LIST_PAGE_URL),\r\n      NAME: toStr(itemLists.NAME),\r\n      PICTURE: toStr(itemLists.PICTURE),\r\n      PROPERTY_INDEX: toStr(itemLists.PROPERTY_INDEX),\r\n      REST_ON: itemLists.REST_ON === 'Y',\r\n      RIGHTS_MODE: toStr(itemLists.RIGHTS_MODE),\r\n      RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n      RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n      RSS_FILE_DAYS: toStr(itemLists.RSS_FILE_DAYS),\r\n      RSS_FILE_LIMIT: toStr(itemLists.RSS_FILE_LIMIT),\r\n      RSS_TTL: toNum(itemLists.RSS_TTL),\r\n      RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n      SECTIONS_NAME: toStr(itemLists.SECTIONS_NAME),\r\n      SECTION_CHOOSER: toStr(itemLists.SECTION_CHOOSER),\r\n      SECTION_NAME: toStr(itemLists.SECTION_NAME),\r\n      SECTION_PAGE_URL: toStr(itemLists.SECTION_PAGE_URL),\r\n      SECTION_PROPERTY: toStr(itemLists.SECTION_PROPERTY),\r\n      SERVER_NAME: toStr(itemLists.SERVER_NAME),\r\n      SOCNET_GROUP_ID: toStr(itemLists.SOCNET_GROUP_ID),\r\n      SORT: toNum(itemLists.SORT),\r\n      TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n      TMP_ID:  toStr(itemLists.TMP_ID),\r\n      VERSION: toNum(itemLists.VERSION),\r\n      WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n      XML_ID:  toStr(itemLists.XML_ID),\r\n    }\r\n  }\r\n}\r\n","import { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists/field/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\nimport { $field, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport default class BXRestNavvyListsField {\r\n  url = {\r\n    // /**\r\n    //  * Метод создает поле списка\r\n    //  */\r\n    // add: [$lists, $field, $add],\r\n    // /**\r\n    //  * Метод удаляет поле списка\r\n    //  */\r\n    // delete: [$lists, $field, $delete],\r\n    /**\r\n     * Метод возвращает данные поля\r\n     */\r\n    get: [$lists, $field, $get],\r\n    // type: {\r\n    //   /**\r\n    //    * Метод возвращает доступные типа полей для указанного списка\r\n    //    */\r\n    //   get: [$lists, $field, $type, $get],\r\n    // },\r\n    // /**\r\n    //  * Метод обновляет поле списка\r\n    //  */\r\n    // update: [$lists, $field, $update],\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamListField) {\r\n    return this.Navvy.pagNavWithUselessKey<iBXRestFieldItem,iBXRestFieldItem,iBXRestParamListField>(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapListsField.get\r\n    )\r\n  }\r\n}\r\n","import { BXRestNavvyListsElement } from './lists/element'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\nimport { $add, $element, $field, $get, $lists } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLists {\r\n\r\n  url = {\r\n    // /**\r\n    //  * Метод создаёт список\r\n    //  */\r\n    // add: [$lists, $add],\r\n    // /**\r\n    //  * Метод удаляет список\r\n    //  */\r\n    // delete: [$lists, $delete],\r\n    /**\r\n     * Метод возвращает данные по спискам\r\n     */\r\n    get: [$lists, $get],\r\n    // /**\r\n    //  * Метод обновляет существующий список\r\n    //  */\r\n    // update: [$lists, $update],\r\n    // /**\r\n    //  * Метод возвращает id типа инфоблока\r\n    //  */\r\n    // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n    element: {\r\n      /**\r\n       * Метод создаёт элемент списка\r\n       */\r\n      add: [$lists, $element, $add],\r\n      // /**\r\n      //  * Метод удаляет элемент списка TODO: Реализовать\r\n      //  */\r\n      // delete: [$lists, $element, $delete],\r\n      /**\r\n       * Метод возвращает список элементов или элемент\r\n       */\r\n      get: [$lists, $element, $get],\r\n      // /**\r\n      //  * Метод обновляет элемент списка TODO: Реализовать\r\n      //  */\r\n      // update: [$lists, $element, $update],\r\n      // /**\r\n      //  * Метод возвращает путь к файлу TODO: Реализовать\r\n      //  */\r\n      // getFileUrl: [$lists, $element, $get, $file, $url]\r\n    },\r\n    field: {\r\n      // /**\r\n      //  * Метод создает поле списка\r\n      //  */\r\n      // add: [$lists, $field, $add],\r\n      // /**\r\n      //  * Метод удаляет поле списка\r\n      //  */\r\n      // delete: [$lists, $field, $delete],\r\n      /**\r\n       * Метод возвращает данные поля\r\n       */\r\n      get: [$lists, $field, $get],\r\n      // type: {\r\n      //   /**\r\n      //    * Метод возвращает доступные типа полей для указанного списка\r\n      //    */\r\n      //   get: [$lists, $field, $type, $get],\r\n      // },\r\n      // /**\r\n      //  * Метод обновляет поле списка\r\n      //  */\r\n      // update: [$lists, $field, $update],\r\n    }\r\n  }\r\n  public readonly element = new BXRestNavvyListsElement()\r\n  public readonly field = new BXRestNavvyListsField()\r\n\r\n  protected Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamListGet) {\r\n    return this.Navvy.pagNav(this.url.get, param, BXRestMapLists.get)\r\n  }\r\n\r\n  // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n  //     return this.getAll(pram)\r\n  //         .pipe(\r\n  //             map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n  //         )\r\n  // }\r\n\r\n  // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n  //     return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n  // }\r\n}\r\n","import { iBXRestTaskElapsedItem, iBXRestTaskElapsedItemHttp } from '../../typification/rest/task/elapseditem/item'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskElapsedItem {\r\n  static update(p: null | undefined) {\r\n    return (p == null)\r\n  }\r\n\r\n  static getList(v: iBXRestTaskElapsedItemHttp[] | undefined) {\r\n    return (v) ? v.map(i => BXRestMapTaskElapsedItem.ElapsedItemHttpToElapsedItem(i)) : undefined\r\n  }\r\n\r\n  static ElapsedItemHttpToElapsedItem(item: iBXRestTaskElapsedItemHttp): iBXRestTaskElapsedItem {\r\n    return Object.assign(item, {\r\n      ID: toNum(item.ID),\r\n      MINUTES: toNum(item.MINUTES),\r\n      SECONDS: toNum(item.SECONDS),\r\n      TASK_ID: toNum(item.TASK_ID),\r\n      USER_ID: toNum(item.USER_ID),\r\n      SOURCE: toNum(item.SOURCE),\r\n      CREATED_DATE: toDate(item.CREATED_DATE),\r\n      DATE_START: toDate(item.DATE_START),\r\n      DATE_STOP: toDate(item.DATE_STOP),\r\n    })\r\n  }\r\n}\r\n","import { iBXRestTasksTaskResult, iBXRestTasksTaskResultHttp } from '../../../typification/rest/tasks/task/result/result'\r\nimport { toDate } from '../../../services/base'\r\n\r\nexport class BXRestMapTasksTaskResult {\r\n\r\n  static list(item: iBXRestTasksTaskResultHttp[] | undefined){\r\n    return (item) ? item.map(i => BXRestMapTasksTaskResult.iTaskResultHttpToiTaskResult(i)) : undefined\r\n  }\r\n\r\n  static addFromComment(item: iBXRestTasksTaskResultHttp | undefined){\r\n    return (item) ? BXRestMapTasksTaskResult.iTaskResultHttpToiTaskResult(item) : undefined\r\n  }\r\n\r\n  static iTaskResultHttpToiTaskResult(item: iBXRestTasksTaskResultHttp): iBXRestTasksTaskResult {\r\n    return Object.assign(item, {\r\n      createdAt: toDate(item.createdAt),\r\n      updatedAt: toDate(item.updatedAt)\r\n    })\r\n  }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport {\r\n  iBXRestTasksTaskList,\r\n  iBXRestTasksTaskListHttp,\r\n} from '../../typification/rest/tasks/task/list'\r\nimport {\r\n  iBXRestTasksTaskGetHttp, iBXRestTasksTaskGetHttpDefault\r\n} from '../../typification/rest/tasks/task/get'\r\nimport { BXRestMapTasksTaskResult } from './task/result'\r\nimport { iBXRestHttpTask, iBXRestTask, iBXRestTaskHttpTag } from '../../typification/rest/tasks/task'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\r\nimport values from 'just-values'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTasksTask {\r\n  public readonly result = BXRestMapTasksTaskResult\r\n\r\n  static getAccess(v: iBXRestTaskGetAccess | undefined) {\r\n    return (v && v.allowedActions) ? v.allowedActions : undefined\r\n  }\r\n\r\n  static add(item: { task: iBXRestTasksTaskGetHttpDefault } | undefined): iBXRestTask | undefined {\r\n    return (item) ? BXRestMapTasksTask.TaskBXHttpToTaskBX(item.task) : undefined\r\n  }\r\n\r\n  static get<S extends iBXRestTaskFieldsName[], CustomFields>(item: iBXRestTasksTaskGetHttp<S, CustomFields> | undefined) {\r\n    return (item && item.task) ?\r\n      BXRestMapTasksTask.TaskBXHttpToTaskBX(item.task)\r\n      : undefined\r\n  }\r\n\r\n  static list<S extends iBXRestTaskFieldsName[], CustomFields>(item: iBXRestTasksTaskListHttp<S, CustomFields> | undefined) {\r\n    return (item && item.tasks)\r\n      ? item.tasks.map(i => BXRestMapTasksTask.TaskBXHttpToTaskBX<\r\n        CustomFields,\r\n        Partial<iBXRestHttpTask> & Partial<CustomFields>,\r\n        iBXRestTasksTaskList<S, CustomFields>\r\n      >(i))\r\n      : undefined\r\n  }\r\n\r\n  static TaskBXHttpToTaskBX<CustomFields, T extends Partial<iBXRestHttpTask> & Partial<CustomFields>, R>(item: T): R {\r\n    let result: any = {}\r\n    if (item.id) {\r\n      result.id = toNum(item.id)\r\n    }\r\n    if (item.parentId) {\r\n      result.parentId = toNum(item.parentId)\r\n    }\r\n    if (item.priority) {\r\n      result.priority = toNum(item.priority)\r\n    }\r\n    if (item.status) {\r\n      result.status = toNum(item.status)\r\n    }\r\n    if (item.multitask) {\r\n      result.multitask = item.multitask === 'Y'\r\n    }\r\n    if (item.groupId) {\r\n      result.groupId = toNum(item.groupId)\r\n    }\r\n    if (item.stageId) {\r\n      result.stageId = toNum(item.stageId)\r\n    }\r\n    if (item.createdBy) {\r\n      result.createdBy = toNum(item.createdBy)\r\n    }\r\n    if (item.createdDate) {\r\n      result.createdDate = toDate(item.createdDate)\r\n    }\r\n    if (item.responsibleId) {\r\n      result.responsibleId = toNum(item.responsibleId)\r\n    }\r\n    if (item.changedBy) {\r\n      result.changedBy = toNum(item.changedBy)\r\n    }\r\n    if (item.changedDate) {\r\n      result.changedDate = toDate(item.changedDate)\r\n    }\r\n    if (item.statusChangedBy) {\r\n      result.statusChangedBy = toNum(item.statusChangedBy)\r\n    }\r\n    if (item.statusChangedDate) {\r\n      result.statusChangedDate = toDate(item.statusChangedDate)\r\n    }\r\n    if (item.closedBy) {\r\n      result.closedBy = toNum(item.closedBy)\r\n    }\r\n    if (item.closedDate) {\r\n      result.closedDate = toDate(item.closedDate)\r\n    }\r\n    if (item.dateStart) {\r\n      result.dateStart = toDate(item.dateStart)\r\n    }\r\n    if (item.deadline) {\r\n      result.deadline = toDate(item.deadline)\r\n    }\r\n    if (item.startDatePlan) {\r\n      result.startDatePlan = toDate(item.startDatePlan)\r\n    }\r\n    if (item.endDatePlan) {\r\n      result.endDatePlan = toDate(item.endDatePlan)\r\n    }\r\n    if (item.forumTopicId) {\r\n      result.forumTopicId = toNum(item.forumTopicId)\r\n    }\r\n    if (item.forumId) {\r\n      result.forumId = toNum(item.forumId)\r\n    }\r\n    if (item.viewedDate) {\r\n      result.viewedDate = toDate(item.viewedDate)\r\n    }\r\n    if (item.sorting) {\r\n      result.sorting = toNum(item.sorting)\r\n    }\r\n    if (item.durationPlan) {\r\n      result.durationPlan = toNum(item.durationPlan)\r\n    }\r\n    if (item.descriptionInBbcode) {\r\n      result.descriptionInBbcode = item.descriptionInBbcode === 'Y'\r\n    }\r\n    if (item.accomplices) {\r\n      result.accomplices = item.accomplices.map(i => toNum(i))\r\n    }\r\n    if (item.subStatus) {\r\n      result.subStatus = toNum(item.subStatus)\r\n    }\r\n    if (item.creator) {\r\n      result.creator = Object.assign(item.creator, {id: toNum(item.creator.id)})\r\n    }\r\n    if (item.responsible) {\r\n      result.responsible = Object.assign(item.responsible, {id: toNum(item.responsible.id)})\r\n    }\r\n    if (item.accomplicesData) {\r\n      result.accomplicesData =\r\n        Object.values(item.accomplicesData).map(i => Object.assign(i, {id: toNum(i.id)}))\r\n    }\r\n    if (item.allowTimeTracking) {\r\n      result.allowTimeTracking = item.allowTimeTracking === 'Y'\r\n    }\r\n\r\n    if (item.tags) {\r\n      result.tags = values<iBXRestTaskHttpTag>(item.tags).map(i => {\r\n        return {\r\n          id: toNum(i.id),\r\n          title: i.title\r\n        }\r\n      })\r\n    }\r\n\r\n    return Object.assign(item, result)\r\n  }\r\n}\r\n","import { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTasksTaskResult } from '../../../map/tasks/task/result'\r\nimport { iBXRestParamTasksTaskResultList } from '../../../typification/rest/tasks/result/list'\r\nimport {\r\n  iBXParamRestTasksTaskResultAdd, iBXRestTasksTaskResult,\r\n  iBXRestTasksTaskResultHttp\r\n} from '../../../typification/rest/tasks/task/result/result'\r\nimport { $list, $result, $task, $tasks } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTasksTaskResult {\r\n\r\n  url = {\r\n    /**\r\n     *  Просмотр списка результатов к задаче\r\n     */\r\n    list: [$tasks, $task, $result, $list],\r\n    /**\r\n     * Создание результата задачи из комментария\r\n     */\r\n    addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n    /**\r\n     * Удаление результата задачи по комментарию из которого он был создан\r\n     */\r\n    deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  deleteFromComment(commentID: {commentId: number}) {\r\n    return this.Navvy.simple<null, null, {commentId: number}>(\r\n      this.url.deleteFromComment,\r\n      commentID,\r\n    )\r\n  }\r\n\r\n  addFromComment(param: iBXParamRestTasksTaskResultAdd) {\r\n    return this.Navvy.simple<iBXRestTasksTaskResultHttp, iBXRestTasksTaskResult, iBXParamRestTasksTaskResultAdd>(\r\n      this.url.addFromComment,\r\n      param,\r\n      BXRestMapTasksTaskResult.addFromComment\r\n    )\r\n  }\r\n\r\n  list(param: iBXRestParamTasksTaskResultList) {\r\n    return this.Navvy.pagNav<iBXRestTasksTaskResultHttp, iBXRestTasksTaskResult, iBXRestParamTasksTaskResultList>(\r\n      this.url.list,\r\n      param,\r\n      BXRestMapTasksTaskResult.list\r\n    )\r\n  }\r\n}\r\n","import { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport {\r\n  iBXRestParamTasksTaskGet, iBXRestTasksTaskGet, iBXRestTasksTaskGetHttpDefault\r\n} from '../../typification/rest/tasks/task/get'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamTasksList } from '../../typification/rest/tasks/task/list'\r\nimport { BXRestMapTasksTask } from '../../map/tasks/task'\r\nimport { BXRestNavvyTasksTaskResult } from './task/result'\r\nimport camelCase from 'just-camel-case'\r\nimport {\r\n  iBXRestParamTasksTaskUpdateFields,\r\n  iBXRestTasksTaskFieldsCanUpdate\r\n} from '../../typification/rest/tasks/task/update'\r\nimport {\r\n  iBXRestParamTaskGetAccess,\r\n  iBXRestTaskGetAccess,\r\n  iBXRestTaskGetAccessItem\r\n} from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\r\nimport { ToUpperCaseKeys } from '../../typification/base/upper-case-keys'\r\nimport { ObjectToSnake } from 'ts-case-convert/lib/caseConvert'\r\nimport { AllKeyFree } from '../../typification/base/all-key-free'\r\nimport {\r\n  $add,\r\n  $approve,\r\n  $complete,\r\n  $defer,\r\n  $delegate,\r\n  $get, $getaccess,\r\n  $getFields, $list, $result,\r\n  $task,\r\n  $tasks, $update\r\n} from '../../consts/part-name-methods'\r\nimport { iBXRestTasksTaskBaseAnswer } from '../../typification/rest/tasks/task/base'\r\nimport { iBXRestTask } from '../../typification/rest/tasks/task'\r\nimport { iBXRestTasksTaskGetFields } from '../../typification/rest/tasks/task/getFields'\r\nimport { iBXRestTasksTaskDeferHttp } from '../../typification/rest/tasks/task/defer'\r\n\r\nexport class BXRestNavvyTasksTask {\r\n\r\n  url = {\r\n    /**\r\n     * Создает задачу\r\n     */\r\n    add: [$tasks, $task, $add],\r\n    /**\r\n     * Позволяет принять задачу\r\n     */\r\n    approve: [$tasks, $task, $approve],\r\n    /**\r\n     * Переводит задачу в статус «завершена»\r\n     */\r\n    complete: [$tasks, $task, $complete],\r\n    // counters: {\r\n    //   /**\r\n    //    * Получает счетчики пользователя\r\n    //    */\r\n    //   get: [$tasks, $task, $counters, $get],\r\n    // },\r\n    /**\r\n     * Переводит задачу в статус «отложена»\r\n     */\r\n    defer: [$tasks, $task, $defer],\r\n    /**\r\n     * Метод для делегирования задачи\r\n     */\r\n    delegate: [$tasks, $task, $delegate],\r\n    /**\r\n     * Возвращает информацию о конкретной задаче\r\n     */\r\n    get: [$tasks, $task, $get],\r\n    // /**\r\n    //  * Удаляет задачу\r\n    //  */\r\n    // delete: [$tasks, $task, $delete],\r\n    // /**\r\n    //  * Позволяет отклонить задачу\r\n    //  */\r\n    // disapprove: [$tasks, $task, $disapprove],\r\n    // favorite: {\r\n    //   /**\r\n    //    * Добавляет задачи в \"Избранное\"\r\n    //    */\r\n    //   add: [$tasks, $task, $favorite, $add],\r\n    //   /**\r\n    //    * Удаляет задачи из \"Избранного\"\r\n    //    */\r\n    //   delete: [$tasks, $task, $favorite, $delete],\r\n    // },\r\n    // files: {\r\n    //   /**\r\n    //    * Прикрепляет загруженный на диск файл к задаче\r\n    //    */\r\n    //   attach: [$tasks, $task, $files, $attach],\r\n    // },\r\n    /**\r\n     * Возвращает все доступные поля\r\n     */\r\n    getFields: [$tasks, $task, $getFields],\r\n    /**\r\n     * Метод для проверки доступа к задаче\r\n     */\r\n    getAccess: [$tasks, $task, $getaccess],\r\n    // history: {\r\n    //   /**\r\n    //    * Получает историю задачи\r\n    //    */\r\n    //   list: [$tasks, $task, $history, $list],\r\n    // },\r\n    /**\r\n     * Возвращает массив задач, каждая из которых содержит массив полей\r\n     */\r\n    list: [$tasks, $task, $list],\r\n    // /**\r\n    //  * Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\r\n    //  */\r\n    // pause: [$tasks, $task, $pause],\r\n    // /**\r\n    //  * Возобновляет задачу после ее завершения\r\n    //  */\r\n    // renew: [$tasks, $task, $renew],\r\n    // /**\r\n    //  * Переводит задачу в статус «выполняется»\r\n    //  */\r\n    // start: [$tasks, $task, $start],\r\n    // /**\r\n    //  * Позволяет наблюдать за задачей\r\n    //  */\r\n    // startWatch: [$tasks, $task, 'startwatch'],\r\n    // /**\r\n    //  * Останавливает наблюдение за задачей\r\n    //  */\r\n    // stopwatch: [$tasks, $task, 'stopwatch'],\r\n    /**\r\n     * Обновляет задачу\r\n     */\r\n    update: [$tasks, $task, $update],\r\n    result: {\r\n      /**\r\n       *  Просмотр списка результатов к задаче\r\n       */\r\n      list: [$tasks, $task, $result, $list],\r\n      /**\r\n       * Создание результата задачи из комментария\r\n       */\r\n      addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n      /**\r\n       * Удаление результата задачи по комментарию из которого он был создан\r\n       */\r\n      deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n    }\r\n  }\r\n\r\n  public readonly result = new BXRestNavvyTasksTaskResult()\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  add<CustomFields extends object = object>(param: iBXRestParamTaskAdd<CustomFields>) {\r\n    return this.Navvy.simple<\r\n      iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskGetHttpDefault>,\r\n      iBXRestTask,\r\n      iBXRestParamTaskAdd<CustomFields>\r\n    >(\r\n      this.url.add,\r\n      param,\r\n      BXRestMapTasksTask.add\r\n    )\r\n  }\r\n\r\n  // TODO: переписать нормально\r\n  update<CustomFields extends object>(\r\n    task: AllKeyFree<iBXRestTasksTaskGet<iBXRestTaskFieldsName[], CustomFields>>,\r\n    updateFields: (iBXRestTasksTaskFieldsCanUpdate | keyof ToUpperCaseKeys<ObjectToSnake<CustomFields>>)[]\r\n  ) {\r\n\r\n    let sendTask: iBXRestParamTasksTaskUpdateFields & AllKeyFree<CustomFields> = {}\r\n    let taskTS: Record<string, any> = task\r\n    if (updateFields.length) {\r\n      for (let updateField of updateFields) {\r\n        const key = String(updateField)\r\n        if (taskTS[camelCase(key)]) {\r\n          // @ts-ignore\r\n          sendTask[key] = taskTS[camelCase(key)]\r\n        }\r\n      }\r\n      // @ts-ignore\r\n      if (Object.values(sendTask).length && task && task.id) {\r\n        return this.Navvy.simple<\r\n          iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\r\n          iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\r\n          any\r\n        >(this.url.update, {taskId: task.id, fields: sendTask})\r\n      }\r\n    }\r\n\r\n    throw new Error('updateFields empty')\r\n  }\r\n\r\n  get<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksTaskGet<CustomFields>) {\r\n    return this.Navvy.simple(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapTasksTask.get<S, CustomFields>\r\n    )\r\n  }\r\n\r\n  // Возможно можно обойтись без \"S extends iBXRestTaskFieldsName[]\",\r\n  // надо что бы понять то как генерировать интейфейс на лету исходя их входящих данных\r\n  list<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(\r\n    param: iBXRestParamTasksList<CustomFields> = {}\r\n  ) {\r\n    return this.Navvy.pagNavTasks(\r\n      this.url.list,\r\n      param,\r\n      BXRestMapTasksTask.list<S, CustomFields>\r\n    )\r\n  }\r\n\r\n  /*\r\n  listArray(requestArray: RequestApiTaskListBX = {}) {\r\n    return this.list(requestArray).pipe(\r\n      map(v => this.http.mapResult(v)),\r\n      map(v => (v && v.tasks) ? v.tasks : [])\r\n    )\r\n  }\r\n\r\n  listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n    if (!requestArray.select) {\r\n      requestArray.select = this.def.select\r\n      if (cache) {\r\n        return this.storeTask$.pipe(\r\n          take(1),\r\n          mergeMap(tasks => {\r\n            if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n              const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n              let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n              if (filter.length === ids.length) {\r\n                return of(filter)\r\n              }\r\n            }\r\n            return this.getEndListArray(requestArray)\r\n          })\r\n        )\r\n      }\r\n      return this.getEndListArray(requestArray)\r\n    }\r\n    return this.getEndListArray(requestArray)\r\n  }\r\n\r\n  getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n    return this.list(requestArray).pipe(\r\n      mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n        if (items && items.result && typeof items.result.tasks === 'object') {\r\n          const items$ = of(items.result.tasks)\r\n          if (items.next) {\r\n            this.nowLoad$.next({\r\n              total: (items.total) ? items.total : 0,\r\n              next: items.next\r\n            })\r\n            requestArray.start = items.next\r\n            return this.getEndListArray(requestArray).pipe(\r\n              map(vEnd => {\r\n                if (vEnd && items.result.tasks) {\r\n                  return [...items.result.tasks, ...vEnd]\r\n                }\r\n                return (items.result.tasks) ? items.result.tasks : []\r\n              }))\r\n          }\r\n          this.nowLoad$.next({\r\n            total: 0,\r\n            next: 0\r\n          })\r\n          return items$\r\n        } else {\r\n          return of([])\r\n        }\r\n      })\r\n    )\r\n  }\r\n  */\r\n\r\n  getFields() {\r\n    return this.Navvy.simple<iBXRestTasksTaskGetFields>(\r\n      this.url.getFields\r\n    )\r\n  }\r\n\r\n  getAccess(param: iBXRestParamTaskGetAccess) {\r\n    return this.Navvy.simple<iBXRestTaskGetAccess, {\r\n      [key: number]: iBXRestTaskGetAccessItem\r\n    }, iBXRestParamTaskGetAccess>(\r\n      this.url.getAccess,\r\n      param,\r\n      BXRestMapTasksTask.getAccess\r\n    )\r\n  }\r\n\r\n}\r\n","import { BXRestNavvyTasksTask } from './tasks/task'\r\n\r\nexport class BXRestNavvyTasks {\r\n  public readonly task = new BXRestNavvyTasksTask()\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task/elapseditem/get'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem'\r\nimport { $elapseditem, $getlist, $task } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDelegateElapsedItem {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  getList(\r\n    param: iBXRestParamElapseditemGet = {}\r\n  ) {\r\n    if (param) {\r\n      if (!param.TASKID && !param.SELECT) {\r\n        param.SELECT = ['*']\r\n      }\r\n      if (!param.TASKID && !param.PARAMS) {\r\n        param.PARAMS = {\r\n          NAV_PARAMS: {\r\n            nPageSize: 50,\r\n            iNumPage: 1\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return this.Navvy.alterPagNav(\r\n      [$task, $elapseditem, $getlist],\r\n      param,\r\n      BXRestMapTaskElapsedItem.getList\r\n    )\r\n  }\r\n\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task/elapseditem/get'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { iBXRestTaskElapsedItemHttp } from '../../../typification/rest/task/elapseditem/item'\r\nimport { $elapseditem, $getlist, $isactionallowed, $task } from '../../../consts/part-name-methods'\r\nimport { map, take } from 'rxjs/operators'\r\nimport { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { iIsActionAllowedParam } from '../../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { BXRestNavvyUser } from '../../user'\r\nimport { BXRestNavvyTasks } from '../../tasks'\r\nimport { BXRestNavvyDelegateElapsedItem } from '../delegate/elapseditem'\r\nimport { iBXRestUser } from '../../../typification/rest/user/user'\r\nimport { iBXRestParamAddElapseditem } from '../../../typification/rest/task/elapseditem/add'\r\nimport { BXRestNavvyElapsedItem } from '../elapseditem'\r\nimport { iBXRestParamUpdateElapseditem } from '../../../typification/rest/task/elapseditem/update'\r\nimport { iBXRestParamDelElapseditem } from '../../../typification/rest/task/elapseditem/del'\r\n\r\nexport class BXRestNavvyOperationElapsedItem {\r\n\r\n  private readonly http = new HttpBXServices()\r\n  private readonly delegate = new BXRestNavvyDelegateElapsedItem()\r\n  private readonly BXRestNavvyUser = new BXRestNavvyUser()\r\n  private readonly BXRestNavvyTasks = new BXRestNavvyTasks()\r\n  // private readonly BXRestNavvyElapsedItem = new BXRestNavvyElapsedItem()\r\n\r\n  constructor(private BXRestNavvyElapsedItem: BXRestNavvyElapsedItem) {\r\n  }\r\n\r\n  getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n    const param: iBXRestParamElapseditemGet = {\r\n      ORDER: {\r\n        ID: 'DESC'\r\n      },\r\n      FILTER: {\r\n        USER_ID: idsUsers,\r\n        '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru', {\r\n          timeZoneName: 'short'\r\n        }),\r\n        '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru', {\r\n          timeZoneName: 'short'\r\n        }),\r\n      }\r\n    }\r\n    return this.delegate.getList(param)\r\n  }\r\n\r\n  // TODO: Сделать нормально\r\n  getListByIDTask(ids: number[]) {\r\n    // Работает только потому что \"nPageSize: 99999\"\r\n    return this.http.branch<iBXRestParamElapseditemGet, iBXRestTaskElapsedItemHttp>\r\n    (\r\n      ids.map(i => {\r\n        return {\r\n          name: this.http.getNameMethod([$task, $elapseditem, $getlist]),\r\n          param: {\r\n            TASKID: i,\r\n            PARAMS: {\r\n              NAV_PARAMS: {\r\n                nPageSize: 99999,\r\n                iNumPage: 1\r\n              }\r\n            }\r\n          }\r\n        }\r\n      })\r\n    ).pipe(\r\n      map(v => {\r\n        if (v && v.length) {\r\n          const res = this.http.mapBranchResultWithoutKey(v)\r\n          return BXRestMapTaskElapsedItem.getList(res)\r\n        }\r\n        return undefined\r\n      })\r\n    )\r\n  }\r\n\r\n  checkPermissionAddElapsedTimeToTaskArr(tasks: number[], userCurrent: iBXRestUser | undefined = undefined) {\r\n    let request: Record<number, Observable<boolean>> = Object.assign({}, ...tasks.map(i => {\r\n      return {[i]: this.checkPermissionAddElapsedTimeToTask(i, userCurrent)}\r\n    }))\r\n    return forkJoin(request)\r\n      .pipe(\r\n        take(1),\r\n        mergeMap(v => {\r\n          let forForeach = Object.entries(v).map(([key, value]) => {\r\n            return {id: Number(key), value: value}\r\n          })\r\n          if (forForeach.find(i => i.value === undefined) !== undefined) {\r\n            let forForeachHave = forForeach.filter(i => i.value !== undefined)\r\n            let forForeachNotHave = forForeach.filter(i => i.value === undefined) // тут получаем все id не сохраненных у нас прав\r\n            return this.http.branch<iIsActionAllowedParam, boolean>(\r\n              Object.assign({}, ...forForeachNotHave\r\n                .map(i => i.id)\r\n                .map(i => {\r\n                  return {\r\n                    [i]: {\r\n                      name: this.http.getNameMethod([$task, $elapseditem, $isactionallowed]),\r\n                      param: {\r\n                        TASKID: i,\r\n                        ITEMID: 1,\r\n                        ACTIONID: 1\r\n                      }\r\n                    }\r\n                  }\r\n                }))\r\n            ).pipe(\r\n              map(v => {\r\n                if (v && v.length) {\r\n                  const res: Record<number, boolean> = this.http.mapBranchResult(v)\r\n                  forForeachNotHave = Object.entries(res).map(([key, value]) => {\r\n                    return {id: Number(key), value: value}\r\n                  })\r\n                  return Object.assign(forForeachHave, forForeachNotHave)\r\n                }\r\n                return undefined\r\n              })\r\n            )\r\n          }\r\n          return of(forForeach)\r\n        })\r\n      )\r\n  }\r\n\r\n  /**\r\n   * Проверка на возможность добавление записи трека в таску\r\n   *\r\n   * @param idTask\r\n   * @param userCurrent\r\n   */\r\n  checkPermissionAddElapsedTimeToTask(idTask: number, userCurrent: iBXRestUser | undefined = undefined) {\r\n    // let permission = Permission.get()\r\n    // if (permission?.tasks?.length) {\r\n    //   let findTask = permission.tasks.find(i => i.id === idTask)\r\n    //   if (findTask?.permission) {\r\n    //     return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n    //   }\r\n    return ((userCurrent) ? of(userCurrent) : this.BXRestNavvyUser.current().res()).pipe(\r\n      mergeMap(self => {\r\n        if (self) {\r\n          return this.BXRestNavvyTasks.task.getAccess(\r\n            {\r\n              id: idTask,\r\n              users: [self.ID]\r\n            }).res().pipe(\r\n            // tap(v => {\r\n            //   if (v && v[self.ID]) {\r\n            //     Permission.set({\r\n            //       tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n            //     })\r\n            //   }\r\n            // }),\r\n            map(v => {\r\n              return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n            }),\r\n          )\r\n        }\r\n        return of(undefined)\r\n      })\r\n    )\r\n    // }\r\n\r\n    // return of(undefined)\r\n  }\r\n\r\n  /**\r\n   * Проверка на возможность прочтения такски\r\n   *\r\n   * @param idTask\r\n   * @param userCurrent\r\n   */\r\n  checkPermissionReadTask(idTask: number, userCurrent: iBXRestUser | undefined = undefined) {\r\n    // let permission = Permission.get()\r\n    // if (permission?.tasks?.length) {\r\n    //   let findTask = permission.tasks.find(i => i.id === idTask)\r\n    //   if (findTask?.permission) {\r\n    //     return of(findTask.permission.ACCEPT)\r\n    //   }\r\n    //   console.log('idTask', idTask)\r\n    return ((userCurrent) ? of(userCurrent) : this.BXRestNavvyUser.current().res()).pipe(\r\n      mergeMap(self => {\r\n        if (self) {\r\n          return this.BXRestNavvyTasks.task.getAccess(\r\n            {\r\n              id: idTask,\r\n              users: [self.ID]\r\n            }).res().pipe(\r\n            // tap(v => {\r\n            //   if (v && v[self.ID]) {\r\n            //     Permission.set({\r\n            //       tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n            //     })\r\n            //   }\r\n            // }),\r\n            map(v => {\r\n              return (v && v[self.ID]) ? !!v[self.ID] : false // отдельного флага на чтение нет, выходит что если права отдались то и права есть\r\n            }),\r\n          )\r\n        }\r\n        return of(undefined)\r\n      })\r\n    )\r\n    // }\r\n    //\r\n    // return of(undefined)\r\n  }\r\n\r\n  /**\r\n   * Законченный метод добавления записи с предварительной проверкой прав\r\n   *\r\n   * TODO: добавить сохранение предварительно проверенных записей\r\n   * @param param\r\n   */\r\n  add(param: iBXRestParamAddElapseditem) {\r\n    return this.checkPermissionReadTask(param.TASKID).pipe(\r\n      mergeMap(allowedReadTask => {\r\n        if (allowedReadTask) {\r\n          return this.checkPermissionAddElapsedTimeToTask(param.TASKID).pipe(\r\n            mergeMap(allowed => {\r\n              if (allowed) {\r\n                return this.BXRestNavvyElapsedItem.add(param).res()\r\n              } else {\r\n                return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n              }\r\n            }))\r\n        } else {\r\n          return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n        }\r\n      }))\r\n  }\r\n\r\n  /**\r\n   * Законченный метод обновления записи с предварительной проверкой прав\r\n   *\r\n   * TODO: добавить сохранение предварительно проверенных записей\r\n   * @param param\r\n   */\r\n  update(param: iBXRestParamUpdateElapseditem) {\r\n    return this.checkPermissionReadTask(param.TASKID).pipe(\r\n      mergeMap((allowedReadTask) => {\r\n        if (allowedReadTask) {\r\n          return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n            mergeMap(allowed => {\r\n              if (allowed) {\r\n                return this.BXRestNavvyElapsedItem.update(param).res()\r\n              }\r\n              return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n            }))\r\n        }\r\n        return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n      }))\r\n  }\r\n\r\n  // TODO: разобраться что это за ебатня в комментах и вписать нормальной комент если она нужна\r\n  isAllowedModify(idTask: number, idItem: number) {\r\n    // let permission = Permission.get()\r\n    // if (permission?.tasks?.length) {\r\n    //   let findTask = permission.tasks.find(i => i.id === idTask)\r\n    //   if (findTask) {\r\n    //     let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n    //     if (find && find.verified.edit) {\r\n    //       return of(find.edit)\r\n    //     }\r\n    //   }\r\n    // }\r\n\r\n    return this.BXRestNavvyElapsedItem.isActionAllowed({\r\n      TASKID: idTask,\r\n      ITEMID: idItem,\r\n      ACTIONID: 2\r\n    }).res()\r\n    //   .pipe(\r\n    //   tap(v => {\r\n    //     if (v !== undefined) {\r\n    //       Permission.setTaskElapsedItem(idTask,\r\n    //         {\r\n    //           id: idItem,\r\n    //           edit: v,\r\n    //           del: false,\r\n    //           verified: {\r\n    //             edit: true,\r\n    //             del: false,\r\n    //           }\r\n    //         })\r\n    //     }\r\n    //   })\r\n    // )\r\n  }\r\n\r\n  /**\r\n   * isActionAllowed с фиксом на проверку возможности чтения задачи записи\r\n   * (без проверки даёт ошибку)\r\n   *\r\n   * idAction:\r\n   * 1 - ACTION_ELAPSED_TIME_ADD\r\n   * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n   * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n   * @param param\r\n   */\r\n  isActionAllowed(param: iIsActionAllowedParam) {\r\n    return this.checkPermissionReadTask(param.TASKID).pipe(\r\n      mergeMap(canRead => {\r\n        if (canRead) {\r\n          return this.BXRestNavvyElapsedItem.isActionAllowed(param).res()\r\n        }\r\n        return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n      })\r\n    )\r\n  }\r\n\r\n\r\n  /**\r\n   * Полноценный метод удаления\r\n   *\r\n   * @param param\r\n   */\r\n  del(param: iBXRestParamDelElapseditem) {\r\n    return this.checkPermissionReadTask(param.TASKID).pipe(\r\n      mergeMap(allowedReadTask => {\r\n        if (allowedReadTask) {\r\n          return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n            mergeMap(allowed => {\r\n              if (allowed) {\r\n                return this.BXRestNavvyElapsedItem.delete(param).res()\r\n              } else {\r\n                return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n              }\r\n            }))\r\n        } else {\r\n          return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n        }\r\n      })\r\n    )\r\n  }\r\n\r\n  private isAllowedRemove(idTask: number, idItem: number) {\r\n    return this.isActionAllowed(\r\n      {\r\n        TASKID: idTask,\r\n        ITEMID: idItem,\r\n        ACTIONID: 3\r\n      })\r\n  }\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../typification/rest/task/elapseditem/get'\r\nimport { iBXRestParamAddElapseditem } from '../../typification/rest/task/elapseditem/add'\r\nimport { iBXRestParamUpdateElapseditem } from '../../typification/rest/task/elapseditem/update'\r\nimport { iIsActionAllowedParam } from '../../typification/rest/task/elapseditem/isActionAllowedParam'\r\nimport { iBXRestParamDelElapseditem } from '../../typification/rest/task/elapseditem/del'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyOperationElapsedItem } from './operation/elapseditem'\r\nimport { BXRestNavvyDelegateElapsedItem } from './delegate/elapseditem'\r\nimport { $add, $delete, $elapseditem, $getlist, $isactionallowed, $task, $update } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyElapsedItem {\r\n  protected url = {\r\n    // /**\r\n    //  * Возвращает список методов и их описание\r\n    //  */\r\n    // getManifest: [$task, $elapseditem, $getmanifest],\r\n    /**\r\n     * Возвращает список записей о затраченном времени по задаче\r\n     */\r\n    getList: [$task, $elapseditem, $getlist],\r\n    // /**\r\n    //  * Возвращает запись о затраченном времени по ее идентификатору\r\n    //  */\r\n    // get: [$task, $elapseditem, $get],\r\n    /**\r\n     * Добавляет затраченное время к задаче\r\n     */\r\n    add: [$task, $elapseditem, $add],\r\n    /**\r\n     * Удаляет запись о затраченном времени\r\n     */\r\n    delete: [$task, $elapseditem, $delete],\r\n    /**\r\n     * Проверяет разрешено ли действие\r\n     */\r\n    isActionAllowed: [$task, $elapseditem, $isactionallowed],\r\n    /**\r\n     * Изменяет параметры записи о затраченном времени\r\n     */\r\n    update: [$task, $elapseditem, $update],\r\n  }\r\n  private readonly delegate = new BXRestNavvyDelegateElapsedItem()\r\n  public readonly operation = new BXRestNavvyOperationElapsedItem(this)\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  getList(\r\n    param: iBXRestParamElapseditemGet = {}\r\n  ) {\r\n    return this.delegate.getList(param)\r\n  }\r\n\r\n  add(param: iBXRestParamAddElapseditem) {\r\n    return this.Navvy.simple<number, number, iBXRestParamAddElapseditem>(this.url.add, param)\r\n  }\r\n\r\n  /**\r\n   * Обновление записи рабочего времени\r\n   *\r\n   * @param param\r\n   */\r\n  update(param: iBXRestParamUpdateElapseditem) {\r\n    return this.Navvy.simple<null, null, iBXRestParamUpdateElapseditem>(this.url.update, param)\r\n  }\r\n\r\n  /**\r\n   * idAction:\r\n   * 1 - ACTION_ELAPSED_TIME_ADD\r\n   * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n   * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n   * @param param\r\n   */\r\n  isActionAllowed(param: iIsActionAllowedParam) {\r\n    return this.Navvy.simple<boolean, boolean, iIsActionAllowedParam>(this.url.isActionAllowed, param)\r\n  }\r\n\r\n  delete(param: iBXRestParamDelElapseditem) {\r\n    return this.Navvy.simple<null, null, iBXRestParamDelElapseditem>(this.url.delete, param)\r\n  }\r\n\r\n}\r\n","import { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskCommentItem {\r\n\r\n  static getlist(value: iBXRestTaskCommentHtml[] | undefined): iBXRestTaskComment[] | undefined {\r\n    return value ? value.map(i => BXRestMapTaskCommentItem.iCommentTaskHtmlToiCommentTask(i)) : undefined\r\n  }\r\n\r\n  static get(value: iBXRestTaskCommentHtml | undefined): iBXRestTaskComment | undefined {\r\n    return value ? BXRestMapTaskCommentItem.iCommentTaskHtmlToiCommentTask(value) : undefined\r\n  }\r\n\r\n  static iCommentTaskHtmlToiCommentTask(item: iBXRestTaskCommentHtml): iBXRestTaskComment {\r\n    if (item.ATTACHED_OBJECTS) {\r\n      return {\r\n        ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {\r\n          return {\r\n            ATTACHMENT_ID: toNum(i.ATTACHMENT_ID),\r\n            FILE_ID: toNum(i.FILE_ID),\r\n            SIZE: toNum(i.SIZE),\r\n            DOWNLOAD_URL: i.DOWNLOAD_URL,\r\n            NAME: i.NAME,\r\n            VIEW_URL: i.VIEW_URL\r\n          }\r\n        }),\r\n        AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n        ID: toNum(item.ID),\r\n        POST_DATE: toDate(item.POST_DATE),\r\n        AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n        AUTHOR_NAME: item.AUTHOR_NAME,\r\n        POST_MESSAGE: item.POST_MESSAGE,\r\n        POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n      }\r\n    } else {\r\n      return {\r\n        AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n        ID: toNum(item.ID),\r\n        POST_DATE: toDate(item.POST_DATE),\r\n        AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n        AUTHOR_NAME: item.AUTHOR_NAME,\r\n        POST_MESSAGE: item.POST_MESSAGE,\r\n        POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskCommentItem } from '../../map/task/commentitem'\r\nimport { iBXRestParamTaskCommentItemGet } from '../../typification/rest/task/commentitem/get'\r\nimport { iBXRestTaskCommentItemUpdate } from '../../typification/rest/task/commentitem/update'\r\nimport { iBXRestCommentTaskAdd } from '../../typification/rest/task/commentitem/add'\r\nimport {\r\n  BXRestTaskCommentItemGetList,\r\n} from '../../typification/rest/task/commentitem/getlist'\r\nimport { BXRestTaskCommentItemDelete } from '../../typification/rest/task/commentitem/delete'\r\nimport { mergeMap, of } from 'rxjs'\r\nimport { methods } from '../../typification/base/methods'\r\nimport { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\n\r\nexport class BXRestNavvyTaskCommentItem {\r\n  protected url = methods.task.commentItem\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  add(param: iBXRestCommentTaskAdd) {\r\n    return this.Navvy.simple<number, number, iBXRestCommentTaskAdd>(\r\n      this.url.add, param\r\n    )\r\n  }\r\n\r\n  update(param: iBXRestTaskCommentItemUpdate) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestTaskCommentItemUpdate>(\r\n      this.url.update, param\r\n    )\r\n  }\r\n\r\n  get(param: iBXRestParamTaskCommentItemGet) {\r\n    return this.Navvy.simple<iBXRestTaskCommentHtml, iBXRestTaskComment, iBXRestParamTaskCommentItemGet>(\r\n      this.url.get, param,\r\n      BXRestMapTaskCommentItem.get\r\n    )\r\n  }\r\n\r\n  getlist(param: BXRestTaskCommentItemGetList = {\r\n    FILTER: {},\r\n    ORDER: {\r\n      POST_DATE: 'asc'\r\n    }\r\n  }) {\r\n    return this.Navvy.simple(\r\n      this.url.getList, param,\r\n      BXRestMapTaskCommentItem.getlist\r\n    )\r\n  }\r\n\r\n  del(param: BXRestTaskCommentItemDelete) {\r\n    if (param.ITEMID > 0) {\r\n      return this.get(param).res().pipe(\r\n        mergeMap(v => {\r\n          if(v) {\r\n            return this.Navvy.simple<boolean, boolean, BXRestTaskCommentItemDelete>(\r\n              this.url.delete, param\r\n            ).res()\r\n          }\r\n          return of(false)\r\n        })\r\n      )\r\n    } else {\r\n      return of(false)\r\n    }\r\n  }\r\n}\r\n","import { toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskPlaner {\r\n\r\n  static getList(v: (string | number)[] | undefined) {\r\n    return (v) ? v.map(i => toNum(i)) : undefined\r\n  }\r\n\r\n}\r\n","import { BXRestMapTaskPlaner } from '../../map/task/planner'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $getlist, $planner, $task } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTaskPlanner {\r\n\r\n  url = {\r\n    getList: [$task, $planner, $getlist]\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n  \r\n  getList() {\r\n    return this.Navvy.simple<(string | number)[], (string | number)[], undefined>(\r\n      this.url.getList,\r\n      undefined,\r\n      BXRestMapTaskPlaner.getList\r\n    )\r\n  }\r\n}\r\n","import {\r\n  iBXRestTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlistHttp,\r\n} from '../../../typification/rest/task/item/userfield/getlist'\r\nimport { toNum } from '../../../services/base'\r\n\r\nexport class BXRestMapTaskUserField {\r\n\r\n  static getList(value: iBXRestTaskItemUserFieldGetlistHttp[] | undefined): iBXRestTaskItemUserFieldGetlist[] | undefined{\r\n    if(value && value.length){\r\n      return value.map( i => { return {\r\n        ID: toNum(i.ID),\r\n        ENTITY_ID: 'TASKS_TASK',\r\n        FIELD_NAME: i.FIELD_NAME,\r\n        USER_TYPE_ID: i.USER_TYPE_ID,\r\n        XML_ID: i.XML_ID,\r\n        SORT: i.SORT,\r\n        MULTIPLE: i.MULTIPLE === 'Y',\r\n        MANDATORY: i.MULTIPLE === 'Y',\r\n        SHOW_FILTER: i.SHOW_FILTER,\r\n        SHOW_IN_LIST: i.MULTIPLE === 'Y',\r\n        EDIT_IN_LIST: i.MULTIPLE === 'Y',\r\n        IS_SEARCHABLE: i.MULTIPLE === 'Y',\r\n        SETTINGS: i.SETTINGS,\r\n        LIST: i.LIST,\r\n      }})\r\n    }\r\n    return undefined\r\n  }\r\n\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTaskUserField } from '../../../map/task/item/userfield'\r\nimport {\r\n  iBXRestParamTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlistHttp\r\n} from '../../../typification/rest/task/item/userfield/getlist'\r\nimport { $item, $task, $userfield } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTaskItemUserField {\r\n\r\n  protected url = {\r\n    /**\r\n     * Получение всех доступных полей свойства\r\n     */\r\n    getFields: [$task, $item, $userfield, 'getfields'],\r\n    // /**\r\n    //  * Получение всех доступных типов данных\r\n    //  */\r\n    // getTypes: [$task, $item, $userfield, 'gettypes'],\r\n    // /**\r\n    //  * Создание нового свойства\r\n    //  */\r\n    // add: [$task, $item, $userfield, $add],\r\n    // /**\r\n    //  * Получение свойства по идентификатору\r\n    //  */\r\n    // get: [$task, $item, $userfield, $get],\r\n    /**\r\n     * Получение списка свойств\r\n     */\r\n    getList: [$task, $item, $userfield, 'getlist'],\r\n    // /**\r\n    //  * Редактирование параметров свойства\r\n    //  */\r\n    // update: [$task, $item, $userfield, $update],\r\n    // /**\r\n    //  * Удаление свойства\r\n    //  */\r\n    // delete: [$task, $item, $userfield, $delete]\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  getList(param: iBXRestParamTaskItemUserFieldGetlist = {}){\r\n    return this.Navvy.pagNav<iBXRestTaskItemUserFieldGetlistHttp, iBXRestTaskItemUserFieldGetlist, iBXRestParamTaskItemUserFieldGetlist>(\r\n      this.url.getList,\r\n      param,\r\n      BXRestMapTaskUserField.getList\r\n    )\r\n  }\r\n}","import { BXRestNavvyTaskItemUserField } from './item/userfield'\r\n\r\nexport class BXRestNavvyTaskItem {\r\n  public readonly userField = new BXRestNavvyTaskItemUserField()\r\n}","import { BXRestNavvyElapsedItem } from './task/elapseditem'\r\nimport { BXRestNavvyTaskCommentItem } from './task/commentitem'\r\nimport { BXRestNavvyTaskPlanner } from './task/planner'\r\nimport { BXRestNavvyTaskItem } from './task/item'\r\n\r\nexport class BXRestNavvyTask {\r\n  public readonly elapsedItem = new BXRestNavvyElapsedItem()\r\n  public readonly commentItem = new BXRestNavvyTaskCommentItem()\r\n  public readonly planner = new BXRestNavvyTaskPlanner()\r\n  public readonly item = new BXRestNavvyTaskItem()\r\n}\r\n","import { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskFile {\r\n\r\n  static get(v: iBXRestDiskFileHttp | undefined): iBXRestDiskFile | undefined {\r\n    return (v) ? {\r\n      ...v,\r\n      ...{\r\n        ID: toNum(v.ID),\r\n        FILE_ID: toNum(v.ID),\r\n        SIZE: toNum(v.SIZE),\r\n        CREATED_BY: toNum(v.CREATED_BY),\r\n        CREATE_TIME: toDate(v.CREATE_TIME),\r\n        DELETED_BY: toNum(v.DELETED_BY),\r\n        DELETED_TYPE: toNum(v.DELETED_BY),\r\n        DELETE_TIME: v.DELETE_TIME ? toDate(v.CREATE_TIME) : null,\r\n        PARENT_ID: toNum(v.PARENT_ID),\r\n        STORAGE_ID: toNum(v.STORAGE_ID),\r\n        UPDATED_BY: toNum(v.UPDATED_BY),\r\n        UPDATE_TIME: toDate(v.UPDATE_TIME)\r\n      }\r\n    } : undefined\r\n  }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\nimport { iBXRestParamDiskFileGet, iBXRestParamDiskFileMarkDeleted } from '../../typification/rest/disk/file'\r\nimport { $disk, $file, $get, $markdeleted } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDiskFile {\r\n  url = {\r\n    // /**\r\n    //  * Возвращает описание полей файла\r\n    //  */\r\n    // getFields: [$disk, $file, $getFields],\r\n    /**\r\n     * Возвращает файл по идентификатору\r\n     */\r\n    get: [$disk, $file, $get], //\r\n    // /**\r\n    //  * Переименовывает файл\r\n    //  */\r\n    // rename: [$disk, $file, $rename],\r\n    // /**\r\n    //  * Копирует файл в указанную папку\r\n    //  */\r\n    // copyTo: [$disk, $file, $copyto],\r\n    // /**\r\n    //  * Перемещает файл в указанную папку\r\n    //  */\r\n    // moveto: [$disk, $file, $moveto],\r\n    // /**\r\n    //  * Уничтожает файл навсегда\r\n    //  */\r\n    // delete: [$disk, $file, $delete],\r\n    /**\r\n     * Перемещает файл в корзину\r\n     */\r\n    markDeleted: [$disk, $file, $markdeleted],\r\n    // /**\r\n    //  * Восстанавливает файл из корзины\r\n    //  */\r\n    // restore: [$disk, $file, $restore],\r\n    // /**\r\n    //  * Загружает новую версию файла\r\n    //  */\r\n    // uploadVersion: [$disk, $file, 'uploadversion'],\r\n    // /**\r\n    //  * Возвращает список версий файла\r\n    //  */\r\n    // getVersions: [$disk, $file, 'getVersions'],\r\n    // /**\r\n    //  * Восстанавливает файл из конкретной версии\r\n    //  */\r\n    // restoreFromVersion: [$disk, $file, 'restoreFromVersion'],\r\n    // /**\r\n    //  * Возвращает публичную ссылку на файл\r\n    //  */\r\n    // getExternalLink: [$disk, $file, 'getexternallink']\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamDiskFileGet) {\r\n    return this.Navvy.simple(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapDiskFile.get\r\n    )\r\n  }\r\n\r\n  markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n    return this.Navvy.simple(\r\n      this.url.markDeleted,\r\n      param,\r\n      BXRestMapDiskFile.get\r\n    )\r\n  }\r\n}\r\n","import { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileAndFolderMap } from '../../typification/rest/disk/map'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskBase {\r\n\r\n  static separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[]) {\r\n    const result: iBXRestDiskFileAndFolderMap = {file: [], folder: []}\r\n    for (const i of arr) {\r\n      if (BXRestMapDiskBase.instanceOfiFile(i)) {\r\n        result.file.push(\r\n          Object.assign(\r\n            i,\r\n            {\r\n              CREATED_BY: toNum(i.CREATED_BY),\r\n              CREATE_TIME: toDate(i.CREATE_TIME),\r\n              DELETED_BY: toNum(i.DELETED_BY),\r\n              DELETED_TYPE: toNum(i.DELETED_TYPE),\r\n              DELETE_TIME: (i.DELETE_TIME) ? toDate(i.DELETE_TIME) : null,\r\n              ID: toNum(i.ID),\r\n              PARENT_ID: toNum(i.PARENT_ID),\r\n              REAL_OBJECT_ID: toNum(i.REAL_OBJECT_ID),\r\n              STORAGE_ID: toNum(i.STORAGE_ID),\r\n              UPDATED_BY: toNum(i.UPDATED_BY),\r\n              UPDATE_TIME: toDate(i.UPDATE_TIME),\r\n              SIZE: toNum(i.SIZE),\r\n            }\r\n          )\r\n        )\r\n      } else if (BXRestMapDiskBase.instanceOfiFolder(i)) {\r\n        result.folder.push(\r\n          Object.assign(\r\n            i,\r\n            {\r\n              CREATED_BY: toNum(i.CREATED_BY),\r\n              CREATE_TIME: toDate(i.CREATE_TIME),\r\n              DELETED_BY: toNum(i.DELETED_BY),\r\n              DELETED_TYPE: toNum(i.DELETED_TYPE),\r\n              DELETE_TIME: (i.DELETE_TIME) ? toDate(i.DELETE_TIME) : null,\r\n              ID: toNum(i.ID),\r\n              PARENT_ID: toNum(i.PARENT_ID),\r\n              REAL_OBJECT_ID: toNum(i.REAL_OBJECT_ID),\r\n              STORAGE_ID: toNum(i.STORAGE_ID),\r\n              UPDATED_BY: toNum(i.UPDATED_BY),\r\n              UPDATE_TIME: toDate(i.UPDATE_TIME),\r\n            }\r\n          )\r\n        )\r\n      }\r\n    }\r\n    return result\r\n  }\r\n\r\n  static instanceOfiFile(object: any): object is iBXRestDiskFile {\r\n    return object && object.TYPE && object.TYPE === 'file'\r\n  }\r\n\r\n  static instanceOfiFolder(object: any): object is iBXRestFolder {\r\n    return object && object.TYPE && object.TYPE === 'folder'\r\n  }\r\n\r\n\r\n  static FolderHttpToFolder(value: iBXRestFolderHttp | undefined): iBXRestFolder | undefined {\r\n    return (value)\r\n      ? {\r\n        ...value,\r\n        ...{\r\n          CREATED_BY: toNum(value.CREATED_BY),\r\n          CREATE_TIME: toDate(value.CREATE_TIME),\r\n          DELETED_BY: toNum(value.DELETED_BY),\r\n          DELETED_TYPE: toNum(value.DELETED_TYPE),\r\n          DELETE_TIME: toDate(value.CREATE_TIME),\r\n          ID: toNum(value.ID),\r\n          PARENT_ID: toNum(value.PARENT_ID),\r\n          REAL_OBJECT_ID: toNum(value.REAL_OBJECT_ID),\r\n          STORAGE_ID: toNum(value.STORAGE_ID),\r\n          UPDATED_BY: toNum(value.UPDATED_BY),\r\n          UPDATE_TIME: toDate(value.CREATE_TIME)\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n}\r\n","import { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { BXRestMapDiskBase } from './base'\r\n\r\nexport class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n  static getChildren(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[] | undefined){\r\n    return (arr) ? BXRestMapDiskBase.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n  }\r\n}\r\n","import { BXRestMapDiskFolder } from '../../map/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestDiskFolderAddSubFolderParam } from '../../typification/rest/disk/folder/addSubFolder'\r\nimport { iBXRestDiskFolderCopyToParam } from '../../typification/rest/disk/folder/copyTo'\r\nimport { iBXRestDiskFolderMoveToParam } from '../../typification/rest/disk/folder/moveTo'\r\nimport { iBXRestDiskFolderRenameParam } from '../../typification/rest/disk/folder/rename'\r\nimport { iBXRestDiskFolderUploadFileParam } from '../../typification/rest/disk/folder/uploadFile'\r\nimport { iBXRestParamDiskFileGet, iBXRestParamDiskFileMarkDeleted } from '../../typification/rest/disk/file'\r\nimport {\r\n  iBXRestParamFolderDeleteTree, iBXRestParamFolderGetChildren,\r\n  iBXRestParamFolderGetExternalLink,\r\n  iBXRestParamFolderRestore\r\n} from '../../typification/rest/disk/folder'\r\nimport {\r\n  $copyto,\r\n  $disk,\r\n  $folder,\r\n  $get,\r\n  $getchildren,\r\n  $getFields, $markdeleted,\r\n  $moveto,\r\n  $rename, $restore, $uploadfile\r\n} from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDiskFolder {\r\n  protected url = {\r\n    getFields: [$disk, $folder, $getFields],\r\n    get: [$disk, $folder, $get],\r\n    getChildren: [$disk, $folder, $getchildren],\r\n    addSubFolder: [$disk, $folder, 'addsubfolder'],\r\n    copyTo: [$disk, $folder, $copyto],\r\n    moveTo: [$disk, $folder, $moveto],\r\n    rename: [$disk, $folder, $rename],\r\n    deleteTree: [$disk, $folder, 'deletetree'],\r\n    markDeleted: [$disk, $folder, $markdeleted],\r\n    restore: [$disk, $folder, $restore],\r\n    uploadFile: [$disk, $folder, $uploadfile],\r\n    getExternalLink: [$disk, $folder, 'getExternalLink']\r\n  }\r\n  private Navvy = new Navvy()\r\n\r\n  /**\r\n   * Возвращает папку по идентификатору\r\n   *\r\n   * @param param\r\n   */\r\n  get(param: iBXRestParamDiskFileGet) {\r\n    return this.Navvy.simple(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Создает дочернюю папку\r\n   *\r\n   * @param param\r\n   */\r\n  addSubFolder(param: iBXRestDiskFolderAddSubFolderParam) {\r\n    return this.Navvy.simple(\r\n      this.url.addSubFolder,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Копирует папку в указанную папку\r\n   *\r\n   * @param param\r\n   */\r\n  copyTo(param: iBXRestDiskFolderCopyToParam) {\r\n    return this.Navvy.simple(\r\n      this.url.copyTo,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Перемещает папку в указанную папку\r\n   *\r\n   * @param param\r\n   */\r\n  moveTo(param: iBXRestDiskFolderMoveToParam) {\r\n    return this.Navvy.simple(\r\n      this.url.moveTo,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Переименовывает папку\r\n   *\r\n   * @param param\r\n   */\r\n  rename(param: iBXRestDiskFolderRenameParam) {\r\n    return this.Navvy.simple(\r\n      this.url.rename,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Уничтожает папку и всё её дочерние элементы навсегда\r\n   * В ответе 'result': true - успешное уничтожение папки\r\n   *\r\n   * @param param\r\n   */\r\n  deleteTree(param: iBXRestParamFolderDeleteTree) {\r\n    return this.Navvy.simple(\r\n      this.url.deleteTree,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Перемещает папку в корзину\r\n   *\r\n   * @param param\r\n   */\r\n  markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n    return this.Navvy.simple(\r\n      this.url.markDeleted,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Восстанавливает папку из корзины\r\n   *\r\n   * @param param\r\n   */\r\n  restore(param: iBXRestParamFolderRestore) {\r\n    return this.Navvy.simple(\r\n      this.url.restore,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Метод возвращает публичную ссылку\r\n   *\r\n   * @param param\r\n   */\r\n  getExternalLink(param: iBXRestParamFolderGetExternalLink) {\r\n    return this.Navvy.simple(\r\n      this.url.getExternalLink,\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Возвращает описание полей папки\r\n   */\r\n  getFields() {\r\n    return this.Navvy.simple(\r\n      this.url.getFields\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Загружает новый файл в указанную папку\r\n   *\r\n   * @param param\r\n   */\r\n  uploadFile(param: iBXRestDiskFolderUploadFileParam) {\r\n    return this.Navvy.simple(\r\n      this.url.uploadFile,\r\n      param,\r\n      BXRestMapDiskFolder.FolderHttpToFolder\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n   *\r\n   * @param param\r\n   */\r\n  getChildren(param: iBXRestParamFolderGetChildren) {\r\n    return this.Navvy.simple(\r\n      this.url.getChildren,\r\n      param,\r\n      BXRestMapDiskFolder.getChildren\r\n    )\r\n  }\r\n\r\n}\r\n","import { BXRestMapDiskBase } from './base'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\n\r\nexport class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n\r\n  static getChildren(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[] | undefined) {\r\n    return (arr) ? BXRestMapDiskBase.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n  }\r\n\r\n  static addFolder(value: iBXRestFolderHttp | undefined): iBXRestFolder | undefined {\r\n    return (value) ? BXRestMapDiskBase.FolderHttpToFolder(value) : undefined\r\n  }\r\n}\r\n","import {\r\n  $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\n\r\nexport class BXRestDiskStorage {\r\n  protected url = {\r\n    getFields: [$disk, $storage, $getFields],  // Возвращает описание полей хранилища\r\n    get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n    rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n    // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n    getList: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n    getTypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n    addFolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n    getChildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n    // которые находятся непосредственно в корне хранилища\r\n    uploadFile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n    getForApp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n    // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n  }\r\n\r\n  private readonly http = new HttpBXServices()\r\n\r\n  getForApp() {\r\n    return this.http.post<iBXRestFolderInfo>(\r\n      this.url.getForApp, {}\r\n    )\r\n  }\r\n\r\n  getChildren(param: iBXRestParamGetchildren) {\r\n    return this.http.post<(iBXRestFolderHttp | iBXRestDiskFileHttp)[]>(\r\n      this.url.getChildren,\r\n      param\r\n    )\r\n  }\r\n\r\n  // TODO: Сделать нормальное описание параметров\r\n  addFolder(param: {id: number, data: {NAME: string}}) {\r\n    return this.http.post<iBXRestFolderHttp>(this.url.addFolder, param)\r\n  }\r\n\r\n  uploadFile(param: iBXRestParamUploadFile) {\r\n    return this.http.post<iBXRestDiskFile>(this.url.uploadFile, param)\r\n  }\r\n\r\n}\r\n","import { BXRestDiskStorage } from '../../../request/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../../typification/rest/disk/storage/getchildren'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestFolderInfo } from '../../../typification/rest/disk/folder'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\n\r\n/**\r\n * В будущем будет реализовано сохранение на уровне класса navvy, пока оставим так, чтобы не дропать фичу\r\n *\r\n * @deprecated\r\n */\r\nexport class BXRestNavvyOperationDiskStorage {\r\n\r\n  private readonly BXRestDiskStorage = new BXRestDiskStorage()\r\n\r\n  getForApp() {\r\n    let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getForApp.name)\r\n    if (res) {\r\n      return of(res)\r\n    } else {\r\n      return this.BXRestDiskStorage.getForApp().pipe(\r\n        tap(v => {\r\n          if (v) {\r\n            SessionStorage.setItem(this.constructor.name + this.getForApp.name, v)\r\n          }\r\n        }),\r\n        shareReplay(1)\r\n      )\r\n    }\r\n  }\r\n\r\n  /*\r\n  private getforappEnd(){\r\n    console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n    let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n    if(res){\r\n      return of({result: res})\r\n    } else {\r\n      console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n      return this.BXRestDiskStorage.getforapp().pipe(\r\n        tap(v => {\r\n          if(v){\r\n            SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n          }\r\n        })\r\n      )\r\n    }\r\n  }\r\n   */\r\n\r\n  getChildren(param: iBXRestParamGetchildren) {\r\n    return this.BXRestDiskStorage.getChildren(param)\r\n  }\r\n\r\n  // TODO: разобраться что возвращает и что вставлять\r\n  addFolder(param: { id: number, data: { NAME: string } }) {\r\n    return this.BXRestDiskStorage.addFolder(param)\r\n  }\r\n\r\n  uploadFile(param: iBXRestParamUploadFile) {\r\n    return this.BXRestDiskStorage.uploadFile(param)\r\n  }\r\n}\r\n","import { BXRestMapDiskStorage } from '../../map/disk/storage'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\nimport { BXRestNavvyOperationDiskStorage } from './operation/storage'\r\nimport {\r\n  $disk,\r\n  $get,\r\n  $getchildren,\r\n  $getFields,\r\n  $getlist,\r\n  $getTypes,\r\n  $rename,\r\n  $storage, $uploadfile\r\n} from '../../consts/part-name-methods'\r\nimport { iBXRestFolder, iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestDiskFileAndFolderMap } from '../../typification/rest/disk/map'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n  protected url = {\r\n    getFields: [$disk, $storage, $getFields],  // Возвращает описание полей хранилища\r\n    get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n    rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n    // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n    getList: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n    getTypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n    addFolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n    getChildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n    // которые находятся непосредственно в корне хранилища\r\n    uploadFile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n    getForApp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n    // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n  }\r\n\r\n  public operation = new BXRestNavvyOperationDiskStorage()\r\n  private Navvy = new Navvy()\r\n\r\n  getForApp() {\r\n    return this.Navvy.simple<iBXRestFolderInfo>(this.url.getForApp)\r\n  }\r\n\r\n  /*\r\n  private getforappEnd(){\r\n    console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n    let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n    if(res){\r\n      return of({result: res})\r\n    } else {\r\n      console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n      return this.BXRestDiskStorage.getforapp().pipe(\r\n        tap(v => {\r\n          if(v){\r\n            SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n          }\r\n        })\r\n      )\r\n    }\r\n  }\r\n   */\r\n\r\n  getChildren(param: iBXRestParamGetchildren) {\r\n    return this.Navvy.simple<(iBXRestFolderHttp | iBXRestDiskFileHttp)[], iBXRestDiskFileAndFolderMap, iBXRestParamGetchildren>(\r\n      this.url.getChildren,\r\n      param,\r\n      BXRestMapDiskStorage.getChildren\r\n    )\r\n  }\r\n\r\n  addFolder(param: { id: number, data: { NAME: string } }) {\r\n    return this.Navvy.simple<iBXRestFolderHttp, iBXRestFolder, { id: number, data: { NAME: string } }>(\r\n      this.url.addFolder,\r\n      param,\r\n      BXRestMapDiskStorage.addFolder\r\n    )\r\n  }\r\n\r\n  uploadFile(param: iBXRestParamUploadFile) {\r\n    return this.Navvy.simple<iBXRestDiskFileHttp, iBXRestDiskFile, iBXRestParamUploadFile>(\r\n      this.url.uploadFile,\r\n      param,\r\n      BXRestMapDiskFile.get\r\n    )\r\n  }\r\n}\r\n","import { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } from 'rxjs'\r\n\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n  public readonly folder = new BXRestNavvyDiskFolder()\r\n  public readonly disk = new BXRestNavvyDiskFile()\r\n  private readonly storage = new BXRestNavvyDiskStorage()\r\n\r\n  // данные файла в base64\r\n  loadFileInAppFolder(file: {\r\n    name: string,\r\n    val: string\r\n  }) {\r\n    return this.storage.getForApp().res().pipe(\r\n        mergeMap(infoFolder => {\r\n          if (infoFolder) {\r\n            return this.storage.uploadFile(\r\n              {\r\n                id: infoFolder.ID,\r\n                fileContent: [file.name, file.val],\r\n                data: {\r\n                  NAME: file.name\r\n                },\r\n                generateUniqueName: true\r\n              }).res()\r\n          }\r\n          return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\r\n        })\r\n      )\r\n  }\r\n\r\n  getOfCreateRootContentFolderApp(folderName: string) {\r\n    return this.getOfCreateRootFolderApp(folderName).pipe(\r\n      mergeMap(v => {\r\n        if (v) {\r\n          return this.folder.getChildren({id: v.ID}).res()\r\n        }\r\n        return of(undefined)\r\n      })\r\n    )\r\n\r\n  }\r\n\r\n  getRootFoldersApp() {\r\n    // return this.BXDiskFolder$.pipe(\r\n    //   take(1),\r\n    //   mergeMap(\r\n    //     saveData => {\r\n    //       if (saveData.content.root.app) {\r\n    //         return of(saveData.content.root.app)\r\n    //       }\r\n\r\n\r\n    return this.storage.getForApp().res().pipe(\r\n      mergeMap(v => {\r\n        if (v && v.ID) {\r\n          return this.storage.getChildren({id: v.ID}).res()\r\n        }\r\n        return of(undefined)\r\n      })\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Получать или создать папку, если её нет, с определенным именем для приложения\r\n   * @param folderName\r\n   */\r\n  getOfCreateRootFolderApp(folderName: string) {\r\n    return this.getRootFoldersApp().pipe(\r\n      mergeMap(v => {\r\n        if (v) {\r\n          if (v.folder.length) {\r\n            let find = v.folder.find(i => i.NAME === folderName)\r\n            if (find) {\r\n              return of(find)\r\n            }\r\n          }\r\n        }\r\n        return this.storage.getForApp().res().pipe(\r\n          mergeMap(v => {\r\n            if (v && v.ID) {\r\n              return this.storage.addFolder({id: v.ID, data: {NAME: folderName}}).res()\r\n            }\r\n            return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n          })\r\n        )\r\n        }\r\n      ))\r\n  }\r\n\r\n}\r\n","import { BXRestMapDiskBase } from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n  static get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n    return (v) ? BXRestMapDiskAttachedObject.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n  }\r\n\r\n  static iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n    return Object.assign(v, {\r\n      ID: toNum(v.ID),\r\n      OBJECT_ID: toNum(v.OBJECT_ID),\r\n      ENTITY_ID: toNum(v.ENTITY_ID),\r\n      CREATE_TIME: toDate(v.CREATE_TIME),\r\n      CREATED_BY: toNum(v.CREATED_BY),\r\n      SIZE: toNum(v.SIZE)\r\n    })\r\n  }\r\n}\r\n","import { BXRestMapDiskAttachedObject } from '../../map/disk/attachedObject'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamRestDiskAttachedObject } from '../../typification/rest/disk/AttachedObject'\r\nimport { methods } from '../../typification/base/methods'\r\n\r\nexport class BXRestNavvyDiskAttachedObject {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamRestDiskAttachedObject) {\r\n    return this.Navvy.simple(\r\n      methods.disk.attachedObject.get,\r\n      param,\r\n      BXRestMapDiskAttachedObject.get)\r\n  }\r\n}\r\n","import { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\nexport class BXRestNavvyDisk {\r\n  public readonly operation = new BXRestNavvyDiskOperation()\r\n  public readonly file = new BXRestNavvyDiskFile()\r\n  public readonly folder = new BXRestNavvyDiskFolder()\r\n  public readonly attachedObject = new BXRestNavvyDiskAttachedObject()\r\n}\r\n","import { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $bizproc, $start, $workflow } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyBXRestBizProcWorkflow {\r\n  private readonly Navvy = new Navvy()\r\n\r\n  /**\r\n   * Запускает Бизнес-процесс\r\n   */\r\n  start(param: iBXRestParamBizprocWorkflowStart) {\r\n    return this.Navvy.simple([$bizproc, $workflow, $start], param\r\n    )\r\n  }\r\n\r\n}\r\n","import { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBXRestBizProcWorkflow } from './bizproc/workflow'\r\n\r\nexport class BXRestNavvyBizProc {\r\n\r\n  public readonly workflow = new BXRestNavvyBXRestBizProcWorkflow()\r\n  private readonly BXRestNavvyLists = new BXRestNavvyLists()\r\n\r\n  /**\r\n   * Метод по запуску бизнес процессов из ленты\r\n   * TODO: продумать работу с такими методами-исключениями\r\n   *\r\n   * templateIDs - id бизнес процессов которые хотим принудительно запустить\r\n   * @param id\r\n   * @param parametersElement\r\n   * @param parametersBizProc\r\n   * @param templateIDs\r\n   */\r\n  startProcFormNewsFeed(\r\n    id: number,\r\n    parametersElement: Record<string, string>,\r\n    parametersBizProc: Record<string, string>,\r\n    templateIDs: number[] = []\r\n  ) {\r\n    return this.BXRestNavvyLists.element.add(\r\n        {\r\n          IBLOCK_TYPE_ID: 'bitrix_processes',\r\n          IBLOCK_ID: id,\r\n          ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n          // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n          // как ещё уникальнее сделать я просто не знаю\r\n          // это поле обязательно без него не работает\r\n          FIELDS: {\r\n            NAME: parametersElement['NAME'],\r\n            ...parametersElement\r\n          }\r\n        }\r\n      ).res().pipe(\r\n        mergeMap(v => {\r\n          if (v) {\r\n            if (Object.keys(parametersBizProc).length && templateIDs.length) {\r\n              let request: Observable<any | undefined>[] = []\r\n              for (let templateID of templateIDs) {\r\n                request.push(this.workflow.start(\r\n                  {\r\n                    TEMPLATE_ID: templateID,\r\n                    DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n                    PARAMETERS: parametersBizProc\r\n                  }).res())\r\n              }\r\n              return forkJoin(request)\r\n            } else {\r\n              return of(true)\r\n            }\r\n          }\r\n          return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n        })\r\n      )\r\n  }\r\n}\r\n","import { iBXRestBlogPost, iBXRestBlogPostHttp } from '../../typification/rest/log/blogpost/get'\r\nimport { iBXRestBlogPostEssence, iBXRestBlogPostEssenceHttp } from '../../typification/rest/log/blogpost/essence'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class  BXRestMapLogBlogPost {\r\n\r\n  static get(item: iBXRestBlogPostHttp[] | undefined): iBXRestBlogPost[] | undefined {\r\n    return (item) ? item.map(i => BXRestMapLogBlogPost.iBlogPostBXHttpToiBlogPostBX(i)) : undefined\r\n  }\r\n\r\n  static iBlogPostBXHttpToiBlogPostBX(item: iBXRestBlogPostHttp): iBXRestBlogPost {\r\n    return {\r\n      AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n      BLOG_ID: toNum(item.BLOG_ID),\r\n      CATEGORY_ID: toNum(item.CATEGORY_ID),\r\n      DATE_PUBLISH: toDate(item.DATE_PUBLISH),\r\n      ENABLE_COMMENTS: item.ENABLE_COMMENTS === 'Y',\r\n      HAS_COMMENT_IMAGES: item.HAS_COMMENT_IMAGES === 'Y',\r\n      HAS_SOCNET_ALL: item.HAS_SOCNET_ALL === 'Y',\r\n      HAS_IMAGES: item.HAS_IMAGES === 'Y',\r\n      HAS_PROPS: item.HAS_PROPS === 'Y',\r\n      HAS_TAGS: item.HAS_TAGS === 'Y',\r\n      TITLE: item.TITLE,\r\n      ID: toNum(item.ID),\r\n      MICRO: item.MICRO === 'Y',\r\n      PUBLISH_STATUS: item.PUBLISH_STATUS,\r\n      NUM_COMMENTS: toNum(item.NUM_COMMENTS),\r\n      UF_ANSWER_ID: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ANSWER_ID),\r\n      UF_BLOG_POST_DOC: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_DOC),\r\n      UF_BLOG_POST_FILE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_FILE),\r\n      UF_BLOG_POST_F_EDIT: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_F_EDIT),\r\n      UF_BLOG_POST_IMPRTNT: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_IMPRTNT),\r\n      UF_BLOG_POST_URL_PRV: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_URL_PRV),\r\n      UF_BLOG_POST_VOTE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_VOTE),\r\n      UF_CATEGORY_CODE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_CATEGORY_CODE),\r\n      UF_GRATITUDE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_GRATITUDE),\r\n      UF_IMPRTANT_DATE_END: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_IMPRTANT_DATE_END),\r\n      UF_MAIL_MESSAGE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_MAIL_MESSAGE),\r\n      UF_ORIGINAL_ID: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ORIGINAL_ID),\r\n      UF_STATUS: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_STATUS),\r\n      CODE: item.CODE,\r\n      DETAIL_TEXT: item.DETAIL_TEXT,\r\n      FILES: (item.FILES) ? item.FILES.map(i => toNum(i)) : []\r\n    }\r\n  }\r\n\r\n  static iBlogPostEssenceHttpToiBlogPostEssence(item: iBXRestBlogPostEssenceHttp | undefined): iBXRestBlogPostEssence | undefined {\r\n    if(item) {\r\n      return {\r\n        EDIT_IN_LIST: item.EDIT_IN_LIST === 'Y',\r\n        ID: toNum(item.ID),\r\n        IS_SEARCHABLE: item.IS_SEARCHABLE === 'Y',\r\n        MANDATORY: item.MANDATORY === 'Y',\r\n        MULTIPLE: item.MULTIPLE === 'Y',\r\n        SHOW_FILTER: item.SHOW_FILTER === 'Y',\r\n        SHOW_IN_LIST: item.SHOW_IN_LIST === 'Y',\r\n        SORT: toNum(item.SORT),\r\n        EDIT_FORM_LABEL: item.EDIT_FORM_LABEL,\r\n        ENTITY_ID: item.EDIT_FORM_LABEL,\r\n        ENTITY_VALUE_ID: toNum(item.ENTITY_VALUE_ID),\r\n        ERROR_MESSAGE: item.ERROR_MESSAGE,\r\n        FIELD_NAME: item.FIELD_NAME,\r\n        HELP_MESSAGE: item.HELP_MESSAGE,\r\n        LIST_COLUMN_LABEL: item.HELP_MESSAGE,\r\n        LIST_FILTER_LABEL: item.LIST_FILTER_LABEL,\r\n        SETTINGS: item.SETTINGS,\r\n        USER_TYPE: item.USER_TYPE,\r\n        USER_TYPE_ID: item.USER_TYPE_ID,\r\n        VALUE: item.SHOW_IN_LIST === 'Y',\r\n        XML_ID: item.XML_ID // ??\r\n      }\r\n    } else {\r\n      return undefined\r\n    }\r\n  }\r\n}\r\n","import { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\r\nimport { BXRestMapLogBlogPost } from '../../map/log/blogpost'\r\nimport { $add, $blogpost, $get, $log } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLogBlogPost {\r\n  url = {\r\n    /**\r\n     * Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n     */\r\n    add: [$log, $blogpost, $add], //\r\n    // getusers: {\r\n    //   important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n    // },\r\n    /**\r\n     * Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n     */\r\n    get: [$log, $blogpost, $get],\r\n    // /**\r\n    //  * Удаляет сообщение Живой Ленты\r\n    //  */\r\n    // delete: [$log, $blogpost, $delete],\r\n    // /**\r\n    //  * Добавляет получателей в сообщение Живой Ленты\r\n    //  */\r\n    // share: [$log, $blogpost, $share],\r\n    // /**\r\n    //  * Изменяет сообщение Живой Ленты\r\n    //  */\r\n    // update: [$log, $blogpost, $update],\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  add(param: iBXRestParamLogBlogPostAdd) {\r\n    return this.Navvy.simple(this.url.add, param)\r\n  }\r\n\r\n  get(param: iBXRestParamBlogPostGet = {}) {\r\n    return this.Navvy.pagNav(this.url.get, param, BXRestMapLogBlogPost.get)\r\n  }\r\n\r\n}\r\n","import { $add, $blogcomment, $log } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLogBlogComment {\r\n  url = {\r\n    add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n  }\r\n}\r\n","import { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\nexport class BXRestNavvyLog {\r\n  public readonly blogPost = new BXRestNavvyLogBlogPost()\r\n  public readonly blogComment = new BXRestNavvyLogBlogComment()\r\n}\r\n","import { toDate, toNum } from '../../services/base'\r\nimport {\r\n  iBXRestCalendarEventGetAnswer,\r\n  iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/event/get'\r\n\r\nexport class BXRestMapCalendarEvent {\r\n\r\n  static getById(item: iBXRestCalendarEventGetAnswerHttp | undefined | null): iBXRestCalendarEventGetAnswer | undefined {\r\n    return (item) ? BXRestMapCalendarEvent.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item) : undefined\r\n  }\r\n\r\n  static get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined {\r\n    return (item) ? item.map(i => BXRestMapCalendarEvent.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n  }\r\n\r\n  static CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n    return {\r\n      ...item,\r\n      ID: toNum(item.ID),\r\n      MEETING_HOST: toNum(item.MEETING_HOST),\r\n      OWNER_ID: toNum(item.OWNER_ID),\r\n      PARENT_ID: toNum(item.PARENT_ID),\r\n      RECURRENCE_ID: toNum(item.RECURRENCE_ID),\r\n      SECT_ID: toNum(item.SECT_ID),\r\n      SECTION_ID: toNum(item.SECTION_ID),\r\n      TZ_OFFSET_FROM: toNum(item.TZ_OFFSET_FROM),\r\n      TZ_OFFSET_TO: toNum(item.TZ_OFFSET_TO),\r\n      VERSION: toNum(item.VERSION),\r\n      DATE_CREATE: toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss'),\r\n      DATE_FROM: toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss'),\r\n      ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n        ? toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n        : null,\r\n      DATE_TO: toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss'),\r\n      TIMESTAMP_X: toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss'),\r\n      DATE_FROM_TS_UTC: toNum(item.DATE_FROM_TS_UTC),\r\n      DATE_TO_TS_UTC: toNum(item.DATE_TO_TS_UTC),\r\n      DELETED: item.DELETED === 'Y',\r\n      DT_LENGTH: toNum(item.DT_LENGTH),\r\n      DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n      MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n      EXDATE: item.EXDATE.split(';').map(dateStr => toDate(dateStr, 'dd.MM.yyyy')),\r\n      RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n        ...item.RRULE,\r\n        UNTIL: toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n        '~UNTIL': toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n      } : null,\r\n      ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n        return {id: i.id, entryId: toNum(i.entryId), status: i.status}\r\n      }) : []\r\n    }\r\n  }\r\n}\r\n","\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-methods'\r\nimport {\r\n  iBXRestCalendarEventGetByIdParam,\r\n  iBXRestCalendarEventGetParam\r\n} from '../../typification/rest/calendar/event/get'\r\nimport { iBXRestCalendarEventAddParam } from '../../typification/rest/calendar/event/add'\r\nimport { iBXRestCalendarEventUpdateParam } from '../../typification/rest/calendar/event/update'\r\nimport { iBXRestCalendarEventDeleteParam } from '../../typification/rest/calendar/event/delete'\r\nimport { iBXRestCalendarEventGetNearestParam } from '../../typification/rest/calendar/event/get/nearest'\r\n\r\nexport class BXRestNavvyRestCalendarEvent {\r\n\r\n  private url = {\r\n\r\n    /** Добавляет новое событие */\r\n    add: [$calendar, $event, $add],\r\n\r\n    /** Удаляет событие */\r\n    delete: [$calendar, $event, $delete],\r\n\r\n    /** Возвращает список событий календаря */\r\n    get: Object.assign([$calendar, $event, $get], {\r\n\r\n      /** Возвращает список будущих событий для текущего пользователя */\r\n      nearest: [$calendar, $event, $get, $nearest],\r\n    }),\r\n\r\n    /** Метод получает информацию о событии календаря по идентификатору */\r\n    getById: [$calendar, $event, 'getById'],\r\n\r\n    /** Редактирует существующее событие */\r\n    update: [$calendar, $event, $update],\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  /** Добавляет событие в календарь */\r\n  add(param: iBXRestCalendarEventAddParam) {\r\n    return this.Navvy.simple<number, number, iBXRestCalendarEventAddParam>(\r\n      this.url.add,\r\n      param\r\n    )\r\n  }\r\n\r\n  /** Добавляет событие в календарь */\r\n  delete(param: iBXRestCalendarEventDeleteParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestCalendarEventDeleteParam>(\r\n      this.url.delete,\r\n      param\r\n    )\r\n  }\r\n\r\n  // /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */\r\n  // get(param: iBXRestCalendarEventGetParam) {\r\n  //   return this.Navvy.simple(\r\n  //     this.url.get,\r\n  //     param,\r\n  //     BXRestMapCalendarEvent.get\r\n  //   )\r\n  // }\r\n\r\n  get = Object.assign(\r\n    /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */\r\n    (param: iBXRestCalendarEventGetParam) => this.Navvy.simple(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapCalendarEvent.get\r\n    ),\r\n    {\r\n      /** Метод получает список будущих событий */\r\n      nearest: (param: iBXRestCalendarEventGetNearestParam) => this.Navvy.simple(\r\n        this.url.get.nearest,\r\n        param,\r\n        BXRestMapCalendarEvent.get\r\n      ),\r\n    }\r\n  );\r\n\r\n  /** Обновление событие в календарь */\r\n  update(param: iBXRestCalendarEventUpdateParam) {\r\n    return this.Navvy.simple<number, number, iBXRestCalendarEventUpdateParam>(\r\n      this.url.update,\r\n      param\r\n    )\r\n  }\r\n\r\n  /** Метод получает информацию о событии календаря по идентификатору */\r\n  getById(param: iBXRestCalendarEventGetByIdParam) {\r\n    return this.Navvy.simple(\r\n      this.url.getById,\r\n      param,\r\n      BXRestMapCalendarEvent.getById\r\n    )\r\n  }\r\n}\r\n","import { iBXRestCalendarSectionGet, iBXRestCalendarSectionGetHttp } from '../../typification/rest/calendar/section/get'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapCalendarSection {\r\n\r\n  static get(item: iBXRestCalendarSectionGetHttp[] | undefined): iBXRestCalendarSectionGet[] | undefined{\r\n    return (item) ? item.map(i => BXRestMapCalendarSection.CalendarSectionGetHttpToCalendarSectionGetHttp(i)) : undefined\r\n  }\r\n\r\n  static CalendarSectionGetHttpToCalendarSectionGetHttp(item: iBXRestCalendarSectionGetHttp): iBXRestCalendarSectionGet {\r\n    return {\r\n      ...item,\r\n      ID: toNum(item.ID),\r\n      OWNER_ID: toNum(item.OWNER_ID),\r\n      CREATED_BY: toNum(item.CREATED_BY),\r\n      DATE_CREATE: toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss'),\r\n      TIMESTAMP_X: toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss')\r\n    }\r\n  }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $calendar, $delete, $get, $section, $update } from '../../consts/part-name-methods'\r\nimport { iBXRestCalendarSectionGetParam } from '../../typification/rest/calendar/section/get'\r\nimport { BXRestMapCalendarSection } from '../../map/calendar/section'\r\nimport { iBXRestCalendarSectionAddParam } from '../../typification/rest/calendar/section/add'\r\nimport { iBXRestCalendarSectionDeleteParam } from '../../typification/rest/calendar/section/delete'\r\nimport { iBXRestCalendarSectionUpdateParam } from '../../typification/rest/calendar/section/update'\r\n\r\nexport class BXRestNavvyRestCalendarSection {\r\n\r\n  private url = {\r\n\r\n    /** Добавляет новый раздел */\r\n    add: [$calendar, $section, $add],\r\n    /** Удаляет раздел */\r\n    delete: [$calendar, $section, $delete],\r\n\r\n    /** Возвращает описание разделов */\r\n    get: [$calendar, $section, $get],\r\n\r\n    /** Редактирует существующее разделы */\r\n    update: [$calendar, $section, $update],\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  /** Возвращает описание разделов, всегда весь список, паганации в методе нет да и не нужна */\r\n  get(param: iBXRestCalendarSectionGetParam) {\r\n    return this.Navvy.simple(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapCalendarSection.get\r\n    )\r\n  }\r\n\r\n  /** Добавляет новый раздел */\r\n  add(param: iBXRestCalendarSectionAddParam) {\r\n    return this.Navvy.simple<number, number, iBXRestCalendarSectionAddParam>(\r\n      this.url.add,\r\n      param\r\n    )\r\n  }\r\n\r\n  /** Удаляет раздел */\r\n  delete(param: iBXRestCalendarSectionDeleteParam) {\r\n    return this.Navvy.simple<boolean|string, boolean|string, iBXRestCalendarSectionDeleteParam>(\r\n      this.url.delete,\r\n      param\r\n    )\r\n  }\r\n\r\n  /** Редактирует существующее разделы */\r\n  update(param: iBXRestCalendarSectionUpdateParam) {\r\n    return this.Navvy.simple<number, number, iBXRestCalendarSectionUpdateParam>(\r\n      this.url.update,\r\n      param\r\n    )\r\n  }\r\n}\r\n","import {\r\n  iBXRestCalendarUserSettingsGet,\r\n  iBXRestCalendarUserSettingsGetHttp\r\n} from '../../../typification/rest/calendar/user/settings/get'\r\nimport { toNum } from '../../../services/base'\r\n\r\nexport class BXRestMapCalendarUserSettings {\r\n\r\n  static get(item: iBXRestCalendarUserSettingsGetHttp | undefined): iBXRestCalendarUserSettingsGet | undefined {\r\n    return (item) ?\r\n      {\r\n        ...item,\r\n        meetSection: toNum(item.meetSection),\r\n        crmSection: toNum(item.crmSection),\r\n        collapseOffHours: item.collapseOffHours === 'Y',\r\n        showWeekNumbers: item.showWeekNumbers === 'Y',\r\n        showTasks: item.showTasks === 'Y',\r\n        syncTasks: item.syncTasks === 'Y',\r\n        showCompletedTasks: item.showCompletedTasks === 'Y',\r\n        lastUsedSection: (item.lastUsedSection !== 'false') ? toNum(item.lastUsedSection) : false,\r\n        defaultSections: item.defaultSections.map(obj =>\r\n          Object.fromEntries(\r\n            Object.entries(obj).map(([key, value]) => [key, Number(value)])\r\n          )\r\n        ),\r\n        syncPeriodPast: toNum(item.syncPeriodPast),\r\n        syncPeriodFuture: toNum(item.syncPeriodPast),\r\n      }\r\n      : undefined\r\n  }\r\n\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { $calendar, $get, $set, $settings, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestMapCalendarUserSettings } from '../../../map/calendar/user/settings'\r\nimport { iBXRestCalendarUserSettingsSetParam } from '../../../typification/rest/calendar/user/settings/set'\r\n\r\nexport class BXRestNavvyRestCalendarUserSettings {\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  private url = {\r\n    /** получает пользовательские настройки календаря */\r\n    get: [$calendar, $user, $settings, $get],\r\n    /** устанавливает пользовательские настройки календаря для текущего пользователя */\r\n    set: [$calendar, $user, $settings, $set],\r\n  }\r\n\r\n  /** Получает пользовательские настройки календаря */\r\n  get(){\r\n    return this.Navvy.simple(\r\n      this.url.get,\r\n      undefined,\r\n      BXRestMapCalendarUserSettings.get\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Устанавливает пользовательские настройки календаря для текущего пользователя\r\n   *\r\n   * @deprecated Не протестирован\r\n   */\r\n  set(param: iBXRestCalendarUserSettingsSetParam) {\r\n    return this.Navvy.simple(this.url.set, param)\r\n  }\r\n}","import { BXRestNavvyRestCalendarUserSettings } from './user/settings'\r\n\r\nexport class BXRestNavvyRestCalendarUser {\r\n  public readonly settings = new BXRestNavvyRestCalendarUserSettings()\r\n}","import { BXRestNavvyRestCalendarEvent } from './calendar/event'\r\nimport { BXRestNavvyRestCalendarSection } from './calendar/section'\r\nimport { BXRestNavvyRestCalendarUser } from './calendar/user'\r\n\r\nexport class BXRestNavvyCalendar {\r\n\r\n  // TODO: эту дичь расформировать потом по классам\r\n  /*\r\n  url = {\r\n    accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n    meeting: {\r\n      params: {\r\n        set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n      },\r\n      status: {\r\n        get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n        set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n      },\r\n    },\r\n    resource: {\r\n      list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n      add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n      update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n      delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n      booking: {\r\n        list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n      }\r\n    },\r\n    getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n  }\r\n  */\r\n  public readonly event = new BXRestNavvyRestCalendarEvent()\r\n  public readonly section = new BXRestNavvyRestCalendarSection()\r\n  public readonly user = new BXRestNavvyRestCalendarUser()\r\n\r\n}\r\n","import { iBXRestSonetGroupGet, iBXRestSonetGroupGetHttp } from '../typification/rest/sonet_group/get'\r\nimport { toDate, toNum } from '../services/base'\r\n\r\nexport class BXRestMapSonetGroup {\r\n\r\n  static get(items: iBXRestSonetGroupGetHttp[] | undefined): iBXRestSonetGroupGet[] | undefined {\r\n    return (items) ? items.map(i => BXRestMapSonetGroup.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n  }\r\n\r\n  static iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestSonetGroupGetHttp): iBXRestSonetGroupGet {\r\n    return Object.assign(items, {\r\n      ID: toNum(items.ID),\r\n      DATE_CREATE: toDate(items.DATE_CREATE),\r\n      DATE_UPDATE: toDate(items.DATE_UPDATE),\r\n      ACTIVE: items.ACTIVE == 'Y',\r\n      VISIBLE: items.VISIBLE == 'Y',\r\n      OPENED: items.OPENED == 'Y',\r\n      CLOSED: items.CLOSED == 'Y',\r\n      SUBJECT_ID: toNum(items.SUBJECT_ID),\r\n      OWNER_ID: toNum(items.OWNER_ID),\r\n      NUMBER_OF_MEMBERS: toNum(items.OWNER_ID),\r\n      DATE_ACTIVITY: toDate(items.DATE_ACTIVITY),\r\n      PROJECT: items.OPENED == 'Y',\r\n      IS_EXTRANET: items.OPENED == 'Y',\r\n    })\r\n  }\r\n}\r\n","import { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group/get'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { $get, $sonet_group } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvySonetGroup {\r\n\r\n  url = {\r\n    // /**\r\n    //  * Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n    //  */\r\n    // create: [$sonet_group, $create],\r\n    // /**\r\n    //  * Удаляет группу соцсети\r\n    //  */\r\n    // delete: [$sonet_group, $delete],\r\n    // feature: {\r\n    //     access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n    // },\r\n    /**\r\n     * Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n     */\r\n    get: [$sonet_group, $get],\r\n    // /**\r\n    //  * Изменяет владельца группы\r\n    //  */\r\n    // setOwner: [$sonet_group, 'setowner'],\r\n    // /**\r\n    //  * Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n    //  */\r\n    // update: [$sonet_group, $update],\r\n    // user: {\r\n    //     add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n    //     delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n    //     get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n    //     groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n    //     invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n    //     request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n    //     update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n    // },\r\n    // workgroup: {\r\n    //     list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n    //     get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n    // }\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamSonetGroupGet = {}) {\r\n    return this.Navvy.simple(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapSonetGroup.get\r\n    )\r\n  }\r\n}\r\n\r\n\r\n","import { toDate } from '../services/base'\r\n\r\nexport class BXRestMapServer {\r\n  static time(v: string | undefined) {\r\n    return (v) ? toDate(v) : undefined\r\n  }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\nimport { $server, $time } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyServer {\r\n\r\n  url = {\r\n    time: [$server, $time]\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  time() {\r\n    return this.Navvy.simple<string, Date, undefined>(\r\n      this.url.time,\r\n      undefined,\r\n      BXRestMapServer.time\r\n    )\r\n  }\r\n}\r\n","import { iBXRestDepartmentHttp, iBXRestDepartment } from '../typification/rest/department/department'\r\n\r\nexport class BXRestMapDepartment {\r\n  static get(item: iBXRestDepartmentHttp[] | undefined): iBXRestDepartment[] | undefined {\r\n    return (item) ? item.map(dep => {\r\n      if (dep.PARENT) {\r\n        return {\r\n          ID: Number(dep.ID),\r\n          UF_HEAD: Number(dep.UF_HEAD),\r\n          PARENT: Number(dep.PARENT),\r\n          NAME: dep.NAME,\r\n          SORT: dep.SORT,\r\n        }\r\n      } else {\r\n        return {\r\n          ID: Number(dep.ID),\r\n          UF_HEAD: Number(dep.UF_HEAD),\r\n          NAME: dep.NAME,\r\n          SORT: dep.SORT,\r\n        }\r\n      }\r\n    }) : undefined\r\n  }\r\n}\r\n","import { iBXRestParamDepartmentGet } from '../typification/rest/department/get'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapDepartment } from '../map/department'\r\nimport { iBXRestParamDepartmentAdd } from '../typification/rest/department/add'\r\nimport { iBXRestDepartmentUpdate } from '../typification/rest/department/update'\r\nimport { $add, $delete, $department, $get, $update } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDepartment {\r\n\r\n  url = {\r\n    get: [$department, $get],\r\n    del: [$department, $delete],\r\n    add: [$department, $add],\r\n    update: [$department, $update]\r\n  }\r\n  protected Navvy = new Navvy()\r\n\r\n  get(param: iBXRestParamDepartmentGet = {}) {\r\n    return this.Navvy.pagNav(\r\n      this.url.get,\r\n      param,\r\n      BXRestMapDepartment.get)\r\n  }\r\n\r\n  add(param: iBXRestParamDepartmentAdd) {\r\n    return this.Navvy.simple(this.url.add, param)\r\n  }\r\n\r\n  del(id: number) {\r\n    return this.Navvy.simple(this.url.del, {ID: id})\r\n  }\r\n\r\n  update(param: iBXRestDepartmentUpdate) {\r\n    param.NAME = param.NAME.trim()\r\n    return this.Navvy.simple(this.url.update, param)\r\n  }\r\n}\r\n","import { Navvy } from '../../../services/navvy'\r\nimport { $add, $chat, $delete, $im, $list, $user } from '../../../consts/part-name-methods'\r\nimport { iBXRestImChatUserListParam } from '../../../typification/rest/im/chat/user/list'\r\nimport { iBXRestImChatUserDeleteParam } from '../../../typification/rest/im/chat/user/delete'\r\nimport { iBXRestImChatUserAddParam } from '../../../typification/rest/im/chat/user/add'\r\n\r\nexport class BXRestNavvyImChatUser {\r\n  private Navvy = new Navvy()\r\n\r\n  url = {\r\n    add: [$im, $chat, $user, $add],\r\n    list: [$im, $chat, $user, $list],\r\n    delete: [$im, $chat, $user, $delete],\r\n  }\r\n\r\n  list(param: iBXRestImChatUserListParam) {\r\n    return this.Navvy.simple<number[], number[], iBXRestImChatUserListParam>(this.url.list, param)\r\n  }\r\n\r\n  delete(param: iBXRestImChatUserDeleteParam) {\r\n    return this.Navvy.simple<number, number, iBXRestImChatUserDeleteParam>(this.url.delete, param)\r\n  }\r\n\r\n  /**\r\n   * Приглаcить участников в чат\r\n   */\r\n  add(param: iBXRestImChatUserAddParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatUserAddParam>(this.url.add, param)\r\n  }\r\n}","import { iBXRestImChatAddParam } from '../../typification/rest/im/chat/add'\r\nimport { Navvy } from '../../services/navvy'\r\nimport {\r\n  $add,\r\n  $chat,\r\n  $get,\r\n  $im,\r\n  $leave,\r\n  $mute,\r\n  $setOwner,\r\n  $updateAvatar, $updateColor,\r\n  $updateTitle\r\n} from '../../consts/part-name-methods'\r\nimport { iBXRestImChatGetParam } from '../../typification/rest/im/chat/get'\r\nimport { iBXRestImChatSetOwnerParam } from '../../typification/rest/im/chat/setOwner'\r\nimport { iBXRestImChatUpdateAvatarParam } from '../../typification/rest/im/chat/updateAvatar'\r\nimport {\r\n  iBXRestImChatUpdateTitleParam\r\n} from '../../typification/rest/im/chat/updateTitle'\r\nimport { iBXRestImChatLeaveParam } from '../../typification/rest/im/chat/leave'\r\nimport { iBXRestImChatMuteParam } from '../../typification/rest/im/chat/mute'\r\nimport { BXRestNavvyImChatUser } from './chat/user'\r\nimport { iBXRestImChatUpdateColor } from '../../typification/rest/im/chat/updateColor'\r\n\r\nexport class BXRestNavvyImChat {\r\n\r\n  url = {\r\n    add: [$im, $chat, $add],\r\n    get: [$im, $chat, $get],\r\n    setOwner: [$im, $chat, $setOwner],\r\n    updateAvatar: [$im, $chat, $updateAvatar],\r\n    updateColor: [$im, $chat, $updateColor],\r\n    updateTitle: [$im, $chat, $updateTitle],\r\n    leave: [$im, $chat, $leave],\r\n    mute: [$im, $chat, $mute],\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n  public readonly user = new BXRestNavvyImChatUser()\r\n\r\n  /**\r\n   * Создать чат\r\n   *\r\n   * @param param\r\n   */\r\n  add(param: iBXRestImChatAddParam){\r\n    return this.Navvy.simple<number, number, iBXRestImChatAddParam>(this.url.add, param)\r\n  }\r\n\r\n  /**\r\n   * Получить идентификатор чата\r\n   *\r\n   * @param param\r\n   */\r\n  get(param: iBXRestImChatGetParam){\r\n    return this.Navvy.simple<number, number, iBXRestImChatGetParam>(this.url.get, param)\r\n  }\r\n\r\n  /**\r\n   * Сменить владельца чата\r\n   *\r\n   * @param param\r\n   */\r\n  setOwner(param: iBXRestImChatSetOwnerParam){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatSetOwnerParam>(this.url.setOwner, param)\r\n  }\r\n\r\n  /**\r\n   * Изменить аватарку чата\r\n   *\r\n   * @param param\r\n   */\r\n  updateAvatar(param: iBXRestImChatUpdateAvatarParam){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateAvatarParam>(this.url.updateAvatar, param)\r\n  }\r\n\r\n  /**\r\n   * Изменить заголовок чата\r\n   *\r\n   * @param param\r\n   */\r\n  updateTitle(param: iBXRestImChatUpdateTitleParam){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateTitleParam>(this.url.updateTitle, param)\r\n  }\r\n\r\n  /**\r\n   * Покинуть чат\r\n   *\r\n   * @param param\r\n   */\r\n  leave(param: iBXRestImChatLeaveParam){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatLeaveParam>(this.url.leave, param)\r\n  }\r\n\r\n  /**\r\n   * Отключить уведомления от чата\r\n   *\r\n   * @param param\r\n   */\r\n  mute(param: iBXRestImChatMuteParam){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatMuteParam>(this.url.mute, param)\r\n  }\r\n\r\n  /**\r\n   * Изменить цвет чата\r\n   *\r\n   * @param param\r\n   */\r\n  updateColor(param: iBXRestImChatUpdateColor){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateColor>(this.url.updateColor, param)\r\n  }\r\n}\r\n","import { $counters, $get, $im } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestImCounters } from '../../typification/rest/im/counters/get'\r\n\r\nexport class BXRestNavvyImCounters {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get(){\r\n    return this.Navvy.simple<iBXRestImCounters>([$im, $counters, $get])\r\n  }\r\n}","import { toDate } from '../../../services/base'\r\nimport { iBXRestImDialogUserGet, iBXRestImDialogUserGetHttp } from '../../../typification/rest/im/dialog/user/get'\r\n\r\nexport class BXRestMapImDialogUsers {\r\n\r\n  static list(value: iBXRestImDialogUserGetHttp | undefined): iBXRestImDialogUserGet | undefined {\r\n    return (value)\r\n      ? {\r\n        ...value,\r\n        ...{\r\n          last_activity_date: toDate(value.last_activity_date),\r\n          mobile_last_date: value.mobile_last_date ? toDate(value.mobile_last_date) : false,\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n}","import { $dialog, $im, $list, $users } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n  iBXRestImDialogUserGet,\r\n  iBXRestImDialogUserGetHttp,\r\n  iBXRestImDialogUserGetParam\r\n} from '../../../typification/rest/im/dialog/user/get'\r\nimport { BXRestMapImDialogUsers } from '../../../map/im/gialog/users'\r\n\r\nexport class BXRestNavvyImDialogUsers {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  list(param: iBXRestImDialogUserGetParam) {\r\n    return this.Navvy.simple<iBXRestImDialogUserGetHttp, iBXRestImDialogUserGet, iBXRestImDialogUserGetParam>(\r\n      [$im, $dialog, $users, $list],\r\n      param,\r\n      BXRestMapImDialogUsers.list\r\n    )\r\n  }\r\n}","import { iBXRestImDialogGet, iBXRestImDialogGetHttp } from '../../typification/rest/im/dialog/get'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\n\r\nexport class BXRestMapImDialog {\r\n  static get(value: iBXRestImDialogGetHttp | undefined): iBXRestImDialogGet | undefined {\r\n    return (value)\r\n      ? {\r\n        ...value,\r\n        ...{\r\n          id: toNum(value.id),\r\n          owner: toNum(value.owner),\r\n          date_create: toDate(value.date_create),\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n}","import {\r\n  iBXRestImDialogMessagesGet,\r\n  iBXRestImDialogMessagesGetHttp\r\n} from '../../../typification/rest/im/dialog/messages/get'\r\nimport { toDate } from '../../../services/base'\r\n\r\nexport class BXRestMapImDialogMessages {\r\n  static get(value: iBXRestImDialogMessagesGetHttp | undefined): iBXRestImDialogMessagesGet | undefined {\r\n    return (value)\r\n      ? {\r\n        ...value,\r\n        ...{\r\n          messages: value.messages.map(\r\n            mes => (\r\n              {\r\n                ...mes,\r\n                ...{\r\n                  date: toDate(mes.date),\r\n                  params: (mes.params)\r\n                    ? {\r\n                      ...mes,\r\n                      ...{\r\n                        URL_ONLY: mes.params.URL_ONLY === 'Y',\r\n                        IS_EDITED: mes.params.IS_DELETED === 'Y',\r\n                        IS_DELETED: mes.params.IS_DELETED === 'Y',\r\n                      }\r\n                    }\r\n                    : null\r\n                }\r\n              }\r\n            )\r\n          )\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n}","import { $dialog, $get, $im, $messages } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n  iBXRestImDialogMessagesGet, iBXRestImDialogMessagesGetHttp,\r\n  iBXRestImDialogMessagesGetParam\r\n} from '../../../typification/rest/im/dialog/messages/get'\r\nimport { BXRestMapImDialogMessages } from '../../../map/im/gialog/messages'\r\n\r\nexport class BXRestNavvyImDialogMessages {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get(param: iBXRestImDialogMessagesGetParam) {\r\n    return this.Navvy.simple<iBXRestImDialogMessagesGetHttp, iBXRestImDialogMessagesGet, iBXRestImDialogMessagesGetParam>(\r\n      [$im, $dialog, $messages, $get],\r\n      param,\r\n      BXRestMapImDialogMessages.get\r\n    )\r\n  }\r\n}","import { $all, $dialog, $im, $read } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImDialogRead, iBXRestImDialogReadParam } from '../../../typification/rest/im/dialog/read'\r\n\r\n\r\nexport function BXRestNavvyImDialogRead(navvy: Navvy) {\r\n  const readFunc = (param: iBXRestImDialogReadParam) => {\r\n\r\n    /**\r\n     * Установить признак «прочитано» у сообщений\r\n     *\r\n     * @param param\r\n     */\r\n    return navvy.simple<iBXRestImDialogRead, iBXRestImDialogRead, iBXRestImDialogReadParam>(\r\n      [$im, $dialog, $read],\r\n      param\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Установить признак «прочитано» у всех чатов\r\n   */\r\n  readFunc.all = () => {\r\n    return navvy.simple<boolean, boolean>(\r\n      [$im, $dialog, $read, $all]\r\n    )\r\n  }\r\n\r\n  return readFunc\r\n}","import { $dialog, $get, $im, $unread, $writing } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyImDialogUsers } from './dialog/users'\r\nimport {\r\n  iBXRestImDialogGet,\r\n  iBXRestImDialogGetHttp,\r\n  iBXRestImDialogGetParam\r\n} from '../../typification/rest/im/dialog/get'\r\nimport { BXRestMapImDialog } from '../../map/im/dialog'\r\nimport { BXRestNavvyImDialogMessages } from './dialog/messages'\r\nimport { iBXRestImDialogUnReadParam } from '../../typification/rest/im/dialog/unread'\r\nimport { iBXRestImDialogWritingParam } from '../../typification/rest/im/dialog/writing'\r\nimport { BXRestNavvyImDialogRead } from './dialog/read'\r\n\r\nexport class BXRestNavvyImDialog {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  public readonly users = new BXRestNavvyImDialogUsers()\r\n  public readonly messages = new BXRestNavvyImDialogMessages()\r\n  public readonly read = BXRestNavvyImDialogRead(this.Navvy)\r\n\r\n  /**\r\n   * Получить данные о чате\r\n   *\r\n   * @param param\r\n   */\r\n  get(param: iBXRestImDialogGetParam) {\r\n    return this.Navvy.simple<iBXRestImDialogGetHttp, iBXRestImDialogGet, iBXRestImDialogGetParam>(\r\n      [$im, $dialog, $get],\r\n      param,\r\n      BXRestMapImDialog.get\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Установить признак «прочитано» у сообщений\r\n   *\r\n   * @param param\r\n   */\r\n  unread(param: iBXRestImDialogUnReadParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImDialogUnReadParam>(\r\n      [$im, $dialog, $unread],\r\n      param,\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Отправить признак «вам пишут...»\r\n   *\r\n   * @param param\r\n   */\r\n  writing(param: iBXRestImDialogWritingParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImDialogWritingParam>(\r\n      [$im, $dialog, $writing],\r\n      param,\r\n    )\r\n  }\r\n}","export function CatchError(options?: { rethrow?: boolean; defaultValue?: any }) {\r\n  return function (\r\n    target: any,\r\n    propertyKey: string,\r\n    descriptor: PropertyDescriptor\r\n  ) {\r\n    const original = descriptor.value\r\n\r\n    descriptor.value = function (...args: any[]) {\r\n      try {\r\n        return original.apply(this, args)\r\n      } catch (err) {\r\n        const errorInfo = {\r\n          message: `❌ Error in ${target.constructor.name}.${propertyKey}`,\r\n          args,\r\n          error: err instanceof Error ? err.message : String(err),\r\n          stack: err instanceof Error ? err.stack : new Error().stack,\r\n        }\r\n\r\n        console.error(formatError(errorInfo))\r\n\r\n        if (options?.rethrow) throw err\r\n        return options?.defaultValue\r\n      }\r\n    }\r\n\r\n    return descriptor\r\n  }\r\n}\r\n\r\n// Общая функция форматирования\r\nexport function formatError(info: { message: string; args?: any[]; error?: string; stack?: string }): string {\r\n  const stackLines = info.stack?.split('\\n').slice(2).join('\\n')\r\n  return [\r\n    info.message,\r\n    info.args ? `   • args: ${JSON.stringify(info.args)}` : '',\r\n    info.error ? `   • error: ${info.error}` : '',\r\n    `   • stack trace:\\n${stackLines}`,\r\n  ].join('\\n')\r\n}\r\n","import {\r\n  iBXRestImDialogRecentGet, iBXRestImDialogRecentGetChatChatDataHttp, iBXRestImDialogRecentGetChatUserDataBase,\r\n  iBXRestImDialogRecentGetHttp,\r\n} from '../../typification/rest/im/dialog/recent/get'\r\nimport { toDate, toNum } from '../../services/base'\r\nimport {\r\n  iBXRestImDialogRecentList,\r\n  iBXRestImDialogRecentListHttp\r\n} from '../../typification/rest/im/dialog/recent/list'\r\nimport { CatchError } from '../../functions/errorHandler'\r\n\r\nexport class BXRestMapImRecent {\r\n\r\n  @CatchError({ rethrow: true })\r\n  static get(value: iBXRestImDialogRecentGetHttp[] | undefined): iBXRestImDialogRecentGet[] | undefined {\r\n\r\n      return value\r\n        ? value.map(i => ({\r\n          ...i,\r\n          ...{\r\n            date_update: toDate(i.date_update),\r\n            counter: toNum(i.counter),\r\n            user: i.user && i.user.id\r\n              ? {\r\n                ...i.user,\r\n                ...{\r\n                  id: toNum(i.user.id),\r\n                  last_activity_date: i.user.last_activity_date ? toDate(i.user.last_activity_date) : false,\r\n                  mobile_last_date: i.user.mobile_last_date ? toDate(i.user.mobile_last_date) : false,\r\n                  absent: i.user.absent ? toDate(i.user.absent) : false,\r\n                }\r\n              }\r\n              : undefined,\r\n            chat: i.chat && BXRestMapImRecent.isIBXRestImDialogRecentGetChatChatDataHttp(i.chat)\r\n              ? {\r\n                ...i.chat,\r\n                ...{\r\n                  id: toNum(i.chat.id),\r\n                  date_create: toDate(i.chat.date_create)\r\n                }\r\n              }\r\n              : i.chat,\r\n          }\r\n        }))\r\n        : undefined\r\n\r\n  }\r\n\r\n  @CatchError({ rethrow: true })\r\n  static list(value: iBXRestImDialogRecentListHttp | undefined): iBXRestImDialogRecentList | undefined {\r\n    return (value)\r\n      ? {\r\n        ...value, ...{\r\n          items: value.items.map(i => ({\r\n            ...i, ...{\r\n              id: toNum(i.id),\r\n              date_update: toDate(i.date_update),\r\n              lines: (i.lines) ? {...i.lines, ...{date_create: toDate(i.lines.date_create)}} : undefined,\r\n              message: {...i.message, ...{date: toDate(i.message.date)}},\r\n              chat: (i.chat) ? {...i.chat, ...{date_create: toDate(i.chat.date_create)}} : undefined,\r\n              user: (i.user)\r\n                ? {\r\n                  ...i.user,\r\n                  ...{\r\n                    birthday: (i.user.birthday) ? toDate(i.user.birthday) : false,\r\n                    last_activity_date: (i.user.last_activity_date) ? toDate(i.user.last_activity_date) : undefined,\r\n                    mobile_last_date: (i.user.mobile_last_date) ? toDate(i.user.mobile_last_date) : false,\r\n                  }\r\n                }\r\n                : undefined,\r\n            }\r\n          }))\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n\r\n  static isIBXRestImDialogRecentGetChatChatDataHttp(item: iBXRestImDialogRecentGetChatChatDataHttp | iBXRestImDialogRecentGetChatUserDataBase): item is iBXRestImDialogRecentGetChatChatDataHttp {\r\n    return 'id' in item\r\n  }\r\n}","import { Navvy } from '../../services/navvy'\r\nimport { $get, $hide, $im, $list, $pin, $recent, $unread } from '../../consts/part-name-methods'\r\nimport {\r\n  iBXRestImDialogRecentUnreadParam\r\n} from '../../typification/rest/im/dialog/recent/unread'\r\nimport {\r\n  iBXRestImDialogRecentGet,\r\n  iBXRestImDialogRecentGetHttp,\r\n  iBXRestImDialogRecentGetParam\r\n} from '../../typification/rest/im/dialog/recent/get'\r\nimport { BXRestMapImRecent } from '../../map/im/recent'\r\nimport {\r\n  iBXRestImDialogRecentList, iBXRestImDialogRecentListHttp,\r\n  iBXRestImDialogRecentListParam\r\n} from '../../typification/rest/im/dialog/recent/list'\r\n\r\nexport class BXRestNavvyImRecent {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  url = {\r\n    get: [$im, $recent, $get],\r\n    list: [$im, $recent, $list],\r\n    hide: [$im, $recent, $hide],\r\n    pin: [$im, $recent, $pin],\r\n    unread: [$im, $recent, $unread],\r\n  }\r\n\r\n  /**\r\n   * Получить сокращенный список последних чатов\r\n   */\r\n  get(param: iBXRestImDialogRecentGetParam) {\r\n    return this.Navvy.simple<iBXRestImDialogRecentGetHttp[], iBXRestImDialogRecentGet[], iBXRestImDialogRecentGetParam>\r\n    (\r\n      this.url.get,\r\n      param,\r\n      BXRestMapImRecent.get\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Получить список чатов\r\n   */\r\n  list(param: iBXRestImDialogRecentListParam) {\r\n    return this.Navvy.simple<iBXRestImDialogRecentListHttp, iBXRestImDialogRecentList, iBXRestImDialogRecentListParam>(\r\n      this.url.list,\r\n      param,\r\n      BXRestMapImRecent.list\r\n    )\r\n  }\r\n\r\n  /**\r\n   * Удалить чат из списка последних\r\n   */\r\n  hide(param: iBXRestImDialogRecentUnreadParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.unread, param)\r\n  }\r\n\r\n  /**\r\n   * Закрепить чат вверху списка\r\n   */\r\n  pin(param: iBXRestImDialogRecentUnreadParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.pin, param)\r\n  }\r\n\r\n  /**\r\n   * Установить или снять признак «прочитано» у чата\r\n   */\r\n  unread(param: iBXRestImDialogRecentUnreadParam) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.unread, param)\r\n  }\r\n}","import { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../typification/rest/im/user/get'\r\nimport { toDate } from '../../services/base'\r\n\r\nexport class BXRestMapImUser {\r\n\r\n  static get(value: iBXRestImUserGetHttp | undefined): iBXRestImUserGet | undefined {\r\n    return (value)\r\n      ? {\r\n        ...value,\r\n        ...{\r\n          last_activity_date: toDate(value.last_activity_date),\r\n          mobile_last_date: value.mobile_last_date ? toDate(value.mobile_last_date) : false,\r\n          desktop_last_date: value.desktop_last_date ? toDate(value.desktop_last_date) : false,\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n}\r\n","import { Navvy } from '../../../../services/navvy'\r\nimport { $end, $idle, $im, $start, $status, $user } from '../../../../consts/part-name-methods'\r\nimport { iBXRestImUserStatusIdleStartParam } from '../../../../typification/rest/im/user/status/idle'\r\n\r\nexport class BXRestNavvyImUserStatusIdle {\r\n  private Navvy = new Navvy()\r\n\r\n  start(param: iBXRestImUserStatusIdleStartParam){\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImUserStatusIdleStartParam>(\r\n      [$im, $user, $status, $idle, $start],\r\n      param\r\n    )\r\n  }\r\n\r\n  end() {\r\n    return this.Navvy.simple<boolean, boolean>([$im, $user, $status, $idle, $end])\r\n  }\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImUserStatusGet } from '../../../typification/rest/im/user/status/get'\r\nimport { $get, $im, $set, $status, $user } from '../../../consts/part-name-methods'\r\nimport { iBXRestImUserStatusSet } from '../../../typification/rest/im/user/status/set'\r\nimport { BXRestNavvyImUserStatusIdle } from './status/idle'\r\n\r\nexport class BXRestNavvyImUserStatus {\r\n  private Navvy = new Navvy()\r\n\r\n  public readonly idle = new BXRestNavvyImUserStatusIdle()\r\n\r\n  /**\r\n   * Получить информацию об установленном статусе пользователя\r\n   */\r\n  get(){\r\n    return this.Navvy.simple<iBXRestImUserStatusGet>([$im, $user, $status, $get])\r\n  }\r\n\r\n  /**\r\n   * Установить статус пользователя\r\n   */\r\n  set(param: iBXRestImUserStatusSet) {\r\n    return this.Navvy.simple<boolean, boolean, iBXRestImUserStatusSet>([$im, $user, $status, $set], param)\r\n  }\r\n\r\n}","import { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../../typification/rest/im/user/get'\r\nimport { BXRestMapImUser } from '../user'\r\n\r\nexport class BXRestMapImUserList {\r\n  /** Получить данные о пользователях */\r\n  static get(value: (iBXRestImUserGetHttp | null)[] | undefined): (iBXRestImUserGet | undefined)[] | undefined {\r\n    return value ?\r\n      value.map(i =>\r\n        (i) ? BXRestMapImUser.get(i) : undefined\r\n      )\r\n      : undefined\r\n  }\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImUserListGetParam } from '../../../typification/rest/im/user/list/get'\r\nimport { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../../typification/rest/im/user/get'\r\nimport { $get, $im, $list, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestMapImUserList } from '../../../map/im/user/list'\r\n\r\nexport class BXRestNavvyImUserList {\r\n  private Navvy = new Navvy()\r\n\r\n  /** Получить данные о пользователях */\r\n  get(param: iBXRestImUserListGetParam) {\r\n    return this.Navvy.simple<(iBXRestImUserGetHttp | null)[], (iBXRestImUserGet | undefined)[], iBXRestImUserListGetParam>(\r\n      [$im, $user, $list, $get],\r\n      param,\r\n      BXRestMapImUserList.get\r\n    )\r\n  }\r\n}","import { Navvy } from '../../services/navvy'\r\nimport { $dialog, $get, $im } from '../../consts/part-name-methods'\r\nimport { iBXRestImUserGet, iBXRestImUserGetHttp, iBXRestImUserGetParam } from '../../typification/rest/im/user/get'\r\nimport { BXRestMapImUser } from '../../map/im/user'\r\nimport { BXRestNavvyImUserStatus } from './user/status'\r\nimport { BXRestNavvyImUserList } from './user/list'\r\n\r\nexport class BXRestNavvyImUser {\r\n  private Navvy = new Navvy()\r\n\r\n  public readonly list = new BXRestNavvyImUserList()\r\n  public readonly status = new BXRestNavvyImUserStatus()\r\n  /**\r\n   * Получить данные о пользователе\r\n   *\r\n   * @param param\r\n   */\r\n  get(param: iBXRestImUserGetParam) {\r\n    return this.Navvy.simple<iBXRestImUserGetHttp, iBXRestImUserGet, iBXRestImUserGetParam>(\r\n      [$im, $dialog, $get],\r\n      param,\r\n      BXRestMapImUser.get\r\n    )\r\n  }\r\n}","import { BXRestNavvyImChat } from './im/chat'\r\nimport { BXRestNavvyImCounters } from './im/counters'\r\nimport { BXRestNavvyImDialog } from './im/dialog'\r\nimport { BXRestNavvyImRecent } from './im/recent'\r\nimport { BXRestNavvyImUser } from './im/user'\r\n\r\nexport class BXRestNavvyIm {\r\n  public readonly chat = new BXRestNavvyImChat()\r\n  public readonly counters = new BXRestNavvyImCounters()\r\n  public readonly dialog = new BXRestNavvyImDialog()\r\n  public readonly recent = new BXRestNavvyImRecent()\r\n  public readonly user = new BXRestNavvyImUser()\r\n}\r\n","import { iBXRestAppInfo, iBXRestAppInfoHttp } from '../typification/rest/app/info'\r\nimport { toNum } from '../services/base'\r\n\r\nexport class BXRestMapApp {\r\n  static info(value: iBXRestAppInfoHttp | undefined): iBXRestAppInfo | undefined {\r\n    return (value)\r\n      ? {... value, ... {ID: toNum(value.ID), PAYMENT_EXPIRED: value.PAYMENT_EXPIRED === 'Y'}}\r\n      : undefined\r\n  }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { BXRestMapApp } from '../map/app'\r\n\r\nexport class BXRestNavvyApp {\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  /**\r\n   * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n   */\r\n  info(){\r\n    return this.Navvy.simple(\r\n      ['app', 'info'],\r\n      BXRestMapApp.info\r\n    )\r\n  }\r\n}\r\n","import { iBXRestTimeManStatus, iBXRestTimeManStatusHttp } from '../typification/rest/timeman/status'\r\n\r\nexport class BXRestMapTimeMan {\r\n  static status(status: iBXRestTimeManStatusHttp | undefined): iBXRestTimeManStatus | undefined {\r\n    if (status) {\r\n        const duration = status.DURATION.split(':')\r\n        const time_leaks = status.TIME_LEAKS.split(':')\r\n        return {\r\n          STATUS: status.STATUS,\r\n          TIME_START: (status.TIME_START) ? new Date(status.TIME_START) : undefined,\r\n          TIME_FINISH: (status.TIME_FINISH) ? new Date(status.TIME_FINISH) : undefined,\r\n          DURATION: (duration.length && duration.length == 3)\r\n            ? Number(duration[0]) * 60 * 60 + Number(duration[1]) * 60 + Number(duration[2]) : 0,\r\n          TIME_LEAKS: (time_leaks.length && time_leaks.length == 3)\r\n            ? Number(time_leaks[0]) * 60 * 60 + Number(time_leaks[1]) * 60 + Number(time_leaks[2]) : 0,\r\n          ACTIVE: status.ACTIVE,\r\n          IP_OPEN: status.IP_CLOSE,\r\n          IP_CLOSE: status.IP_CLOSE,\r\n          LAT_OPEN: status.LAT_OPEN,\r\n          LON_OPEN: status.LON_OPEN,\r\n          LAT_CLOSE: status.LAT_CLOSE,\r\n          LON_CLOSE: status.LON_CLOSE,\r\n          TZ_OFFSET: status.TZ_OFFSET\r\n        }\r\n    }\r\n\r\n    return undefined\r\n  }\r\n}","import { iBXRestParamTimeManStatus } from '../typification/rest/timeman/status'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapTimeMan } from '../map/timeman'\r\nimport { $status, $timeMan } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTimeMan {\r\n  protected readonly url = {\r\n    // /**\r\n    //  * Получение настроек рабочего времени пользователя\r\n    //  */\r\n    // settings: [$timeMan, $settings],\r\n    /**\r\n     * Получение информации о текущем рабочем дне пользователя\r\n     */\r\n    status: [$timeMan, $status],\r\n    // /**\r\n    //  * Начать новый рабочий день либо возобновить закрытый или приостановленный\r\n    //  */\r\n    // open: [$timeMan, 'open'],\r\n    // /**\r\n    //  * Закрыть рабочий день\r\n    //  */\r\n    // close: [$timeMan, 'close'],\r\n    // /**\r\n    //  * Приостановить рабочий день\r\n    //  */\r\n    // pause: [$timeMan, $pause],\r\n    // networkrange: {\r\n    //   check: this.baseUrl + 'networkrange.check', // Метод для проверки IP-адреса на вхождение в диапазоны сетевых адресов офисной сети\r\n    //   get: this.baseUrl + 'networkrange.get', // Метод для получения диапазонов сетевых адресов, входящих в офисную сеть\r\n    //   set: this.baseUrl + 'networkrange.set'\t// Метод для установки диапазонов сетевых адресов, входящих в офисную сеть.\t18.5.0\r\n    // },\r\n    // timecontrol: {\r\n    //   report: {\r\n    //     add: this.baseUrl + 'timecontrol.report.add', // Метод для отправки отчета о выявленном отсутствии\r\n    //     get: this.baseUrl + 'timecontrol.reports.get', // Метод для получения отчета о выявленных отсутствиях\r\n    //     settings: {\r\n    //       get: this.baseUrl + 'timecontrol.reports.settings.get' // Метод для получения пользовательских настроек для построения интерфейса отчетов инструмента контроля времени\r\n    //     },\r\n    //     users: {\r\n    //       get: this.baseUrl + 'timecontrol.reports.users.get'\t// Метод для получения списка пользователей, относящихся к указанному подразделению.\t18.5.0\r\n    //     }\r\n    //   },\r\n    //   settings: {\r\n    //     get: this.baseUrl + 'timecontrol.settings.get', // Метод для получения настроек инструмента контроля времени\r\n    //     set: this.baseUrl + 'timecontrol.settings.set'\t// Метод для установки настроек инструмента контроля времени\r\n    //   },\r\n    // },\r\n    // schedule: {\r\n    //   get: this.baseUrl + 'schedule.get'\t// Метод позволяет получить рабочий график по его идентификатору\r\n    // }\r\n  }\r\n\r\n  protected Navvy = new Navvy()\r\n\r\n  status(param: iBXRestParamTimeManStatus | undefined = undefined){\r\n    return this.Navvy.simple(\r\n      this.url.status,\r\n      param,\r\n      BXRestMapTimeMan.status\r\n    )\r\n  }\r\n}\r\n\r\n","import {\r\n  iBXRestParamSocialNetWorkApiContentViewSet\r\n} from '../../../typification/rest/socialnetwork/api/contentview/set'\r\n\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { methods } from '../../../typification/base/methods'\r\n\r\nexport class BXRestNavvySocialNetWorkApiContentView {\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  set(param: iBXRestParamSocialNetWorkApiContentViewSet){\r\n    return this.Navvy.simple(methods.socialNetWork.api.contentView.set, param)\r\n  }\r\n}","import {\r\n  iBXRestSocialNetWorkApiBlogpostImportantVote,\r\n  iBXRestSocialNetWorkApiBlogpostImportantVoteHttp\r\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\r\nimport { toBool } from '../../../../../services/base'\r\n\r\nexport class BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant {\r\n\r\n  static vote(item: iBXRestSocialNetWorkApiBlogpostImportantVoteHttp | undefined): iBXRestSocialNetWorkApiBlogpostImportantVote | undefined {\r\n    return (item) ? {\r\n      success: toBool(item.success)\r\n    } : undefined\r\n  }\r\n}","import { Navvy } from '../../../../../services/navvy'\r\nimport {\r\n  iBXRestParamSocialNetWorkApiBlogpostImportantVote\r\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\r\nimport {\r\n  BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant\r\n} from '../../../../../map/socialnetwork/api/livefeed/blogpost/important'\r\nimport { $api, $socialnetwork } from '../../../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant {\r\n  public url = {\r\n    vote: [$socialnetwork, $api, 'liveFeed', 'blogPost', 'important', 'vote']\r\n  }\r\n\r\n  private readonly Navvy = new Navvy()\r\n\r\n  vote(param: iBXRestParamSocialNetWorkApiBlogpostImportantVote) {\r\n    return this.Navvy.simple(\r\n      this.url.vote, param,\r\n      BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant.vote\r\n    )\r\n  }\r\n}","import {\r\n  BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant,\r\n} from './blogpost/important'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeedBlogPost {\r\n  public readonly important = new BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant()\r\n}","import { BXRestNavvySocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost'\r\n// import { Navvy } from '../../../services/navvy'\r\n// import { BXRestSocialNetWorkApiLiveFeed } from '../../../request/socialnetwork/api/livefeed'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeed {\r\n  // private readonly contentView = new BXRestSocialNetWorkApiLiveFeed)\r\n  // private readonly Navvy = new Navvy(this.contentView, null)\r\n\r\n  public readonly blogPost = new BXRestNavvySocialNetWorkApiLiveFeedBlogPost()\r\n}","import { BXRestNavvySocialNetWorkApiContentView } from './api/contentview'\r\nimport { BXRestNavvySocialNetWorkApiLiveFeed } from './api/livefeed'\r\n\r\nexport class BXRestNavvySocialNetWorkApi {\r\n  public contentView = new BXRestNavvySocialNetWorkApiContentView()\r\n  public liveFeed = new BXRestNavvySocialNetWorkApiLiveFeed()\r\n}","import { BXRestNavvySocialNetWorkApi } from './socialnetwork/api'\r\n\r\nexport class BXRestNavvySocialNetWork {\r\n  public api = new BXRestNavvySocialNetWorkApi()\r\n\r\n}","import {\r\n  iBXRestPullApplicationConfigGet,\r\n  iBXRestPullApplicationConfigGetHttp\r\n} from '../../../typification/rest/pull/application/config/get'\r\nimport { toDate } from '../../../services/base'\r\nimport { iBXRestPullConfigPublicChannelsGet } from '../../../typification/rest/pull/config/get'\r\n\r\nexport class BXRestMapPullApplicationConfig {\r\n  static get(value: iBXRestPullApplicationConfigGetHttp | undefined): iBXRestPullApplicationConfigGet | undefined {\r\n    return value ?\r\n      {\r\n        ...value,\r\n        ...{\r\n          channels:\r\n            {\r\n              shared: {\r\n                ...value.channels.shared, ...{\r\n                  start: toDate(value.channels.shared.start),\r\n                  end: toDate(value.channels.shared.end),\r\n                }\r\n              },\r\n              private: {\r\n                ...value.channels.private, ...{\r\n                  start: toDate(value.channels.private.start),\r\n                  end: toDate(value.channels.private.end),\r\n                }\r\n              }\r\n            },\r\n          publicChannels: Object.fromEntries(Object.entries(value.publicChannels).map(([key, val]) => (\r\n            [key,\r\n              {\r\n                ...val,\r\n                start: toDate(val.start),\r\n                end: toDate(val.end)\r\n              } as iBXRestPullConfigPublicChannelsGet\r\n            ]))) as Record<string, iBXRestPullConfigPublicChannelsGet>,\r\n        }\r\n      }\r\n      : undefined\r\n  }\r\n}","import {\r\n  iBXRestPullConfigGet,\r\n  iBXRestPullConfigGetHttp, iBXRestPullConfigPublicChannelsGet\r\n} from '../typification/rest/pull/config/get'\r\nimport { toDate } from '../services/base'\r\nimport { BXRestMapPullApplicationConfig } from './pull/application/config'\r\n\r\nexport class BXRestMapPull {\r\n  static get(value: iBXRestPullConfigGetHttp | undefined): iBXRestPullConfigGet | undefined {\r\n    console.log('Object.entries(value.publicChannels)', value)\r\n    if(value?.publicChannels) {\r\n\r\n      console.log('Object.entries(value.publicChannels)',       value.publicChannels, Object.entries(value.publicChannels), Object.fromEntries(Object.entries(value.publicChannels).map(([key, val]) => (\r\n        [key,\r\n          {\r\n            ...val,\r\n            start: toDate(val.start), end: toDate(val.end)\r\n          } as iBXRestPullConfigPublicChannelsGet\r\n        ]))) as Record<string, iBXRestPullConfigPublicChannelsGet>,)\r\n    }\r\n    return value ? {... BXRestMapPullApplicationConfig.get(value), ...{serverTime: toDate(value.serverTime)}} as iBXRestPullConfigGet : undefined\r\n  }\r\n}","import { iBXRestPullChannelPublicGet, iBXRestPullChannelPublicGetHttp } from '../../typification/rest/pull/channel/get'\r\nimport { toDate } from '../../services/base'\r\n\r\nexport class BXRestMapPullChannelPublic {\r\n\r\n  static get(value: iBXRestPullChannelPublicGetHttp | undefined): iBXRestPullChannelPublicGet | undefined {\r\n    return value ? {\r\n      ...value,\r\n      start: toDate(value.start),\r\n      end: toDate(value.end)\r\n    }\r\n    :  undefined\r\n  }\r\n}","import { $config, $get, $pull } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestPullConfigGet, iBXRestPullConfigGetHttp } from '../../typification/rest/pull'\r\nimport { BXRestMapPull } from '../../map/pull'\r\nimport { BXRestMapPullChannelPublic } from '../../map/channel/public'\r\n\r\nexport class BXRestNavvyPullConfig {\r\n  url = {\r\n    /**\r\n     * Получает информацию для подключения в веб сокету\r\n     */\r\n    get: [$pull, $config, $get]\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n  public static public = new BXRestMapPullChannelPublic()\r\n\r\n  get() {\r\n    return this.Navvy.simple<iBXRestPullConfigGetHttp, iBXRestPullConfigGet>(\r\n      this.url.get,\r\n      undefined,\r\n      BXRestMapPull.get\r\n    )\r\n  }\r\n}","import { $add, $blogpost, $channel, $get, $log, $public, $pull } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n  iBXRestPullChannelPublicGet,\r\n  iBXRestPullChannelPublicGetHttp\r\n} from '../../../typification/rest/pull/channel/get'\r\nimport { BXRestMapPullChannelPublic } from '../../../map/channel/public'\r\n\r\nexport class BXRestNavvyPullChannelPublic {\r\n  url = {\r\n    get: [$log, $blogpost, $add]\r\n  }\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get() {\r\n    return this.Navvy.simple<iBXRestPullChannelPublicGetHttp,\r\n      iBXRestPullChannelPublicGet>([$pull, $channel, $public, $get], undefined, BXRestMapPullChannelPublic.get)\r\n  }\r\n}","import { $application, $config, $get, $pull } from '../../../consts/part-name-methods'\r\nimport {\r\n  iBXRestPullApplicationConfigGet,\r\n  iBXRestPullApplicationConfigGetHttp\r\n} from '../../../typification/rest/pull/application/config/get'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapPullApplicationConfig } from '../../../map/pull/application/config'\r\n\r\nexport class BXRestNavvyPullApplicationConfig {\r\n\r\n  private Navvy = new Navvy()\r\n\r\n  get() {\r\n    return this.Navvy.simple<iBXRestPullApplicationConfigGetHttp, iBXRestPullApplicationConfigGet>(\r\n      [$pull, $application, $config, $get],\r\n      undefined,\r\n      BXRestMapPullApplicationConfig.get\r\n    )\r\n  }\r\n}","import { BXRestNavvyPullConfig } from './pull/config'\r\nimport { BXRestNavvyPullChannelPublic } from './pull/channel/public'\r\nimport { BXRestNavvyPullApplicationConfig } from './pull/application/config'\r\n\r\nexport class BXRestNavvyPull {\r\n  public readonly config = new BXRestNavvyPullConfig()\r\n  public readonly channel = {\r\n    public: new BXRestNavvyPullChannelPublic()\r\n  }\r\n  public readonly application = {\r\n    config: new BXRestNavvyPullApplicationConfig(),\r\n  }\r\n} ","import { BXRestMap } from '../map/rest'\r\nimport { Navvy } from '../services/navvy'\r\n\r\nimport { BXRestNavvyUser } from '../request-navvy/user'\r\nimport { BXRestNavvyLists } from '../request-navvy/lists'\r\nimport { BXRestNavvyTask } from '../request-navvy/task'\r\nimport { BXRestNavvyTasks } from '../request-navvy/tasks'\r\nimport { BXRestNavvyDisk } from '../request-navvy/disk'\r\nimport { BXRestNavvyBizProc } from '../request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from '../request-navvy/log'\r\nimport { BXRestNavvyCalendar } from '../request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from '../request-navvy/sonet_group'\r\nimport { BXRestNavvyServer } from '../request-navvy/server'\r\nimport { BXRestNavvyDepartment } from '../request-navvy/department'\r\nimport { BXRestNavvyIm } from '../request-navvy/im'\r\nimport { BXRestNavvyApp } from '../request-navvy/app'\r\nimport { BXRestNavvyTimeMan } from '../request-navvy/timeman'\r\nimport { BXRestNavvySocialNetWork } from '../request-navvy/socialnetwork'\r\nimport { BXRestNavvyPull } from '../request-navvy/pull'\r\n\r\nexport class BXRestNavvy {\r\n  public readonly user = new BXRestNavvyUser()\r\n  public readonly lists = new BXRestNavvyLists()\r\n  public readonly task = new BXRestNavvyTask()\r\n  public readonly tasks = new BXRestNavvyTasks()\r\n  public readonly disk = new BXRestNavvyDisk()\r\n  public readonly bizProc = new BXRestNavvyBizProc()\r\n  public readonly log = new BXRestNavvyLog()\r\n  public readonly calendar = new BXRestNavvyCalendar()\r\n  public readonly sonet_group = new BXRestNavvySonetGroup()\r\n  public readonly server = new BXRestNavvyServer()\r\n  public readonly department = new BXRestNavvyDepartment()\r\n  public readonly im = new BXRestNavvyIm()\r\n  public readonly app = new BXRestNavvyApp()\r\n  public readonly timeMan = new BXRestNavvyTimeMan()\r\n  public readonly socialNetWork = new BXRestNavvySocialNetWork()\r\n  public readonly pull = new BXRestNavvyPull()\r\n  public readonly Navvy = new Navvy()\r\n\r\n  public profile() {\r\n    return this.Navvy.simple(['profile'], BXRestMap.profile)\r\n  }\r\n\r\n  // public batch<T, C, M>(param: iBXRestNavvyParamBatch<T, C, M>) {\r\n  //   const modifiedObject = Object.fromEntries(\r\n  //     Object.entries(param.cmd).map(([key, value]) => {\r\n  //       let modifiedValue = value.resultVanilla.arguments\r\n  //       return [key, modifiedValue]\r\n  //     })\r\n  //   )\r\n  //\r\n  //   return this.BXRest.batch({\r\n  //     halt: param.halt,\r\n  //     cmd: modifiedObject\r\n  //   })\r\n  // }\r\n}","import { BXRestMapCalendarUserSettings } from './user/settings'\r\n\r\nexport class BXRestMapCalendarUser {\r\n  public readonly settings = new BXRestMapCalendarUserSettings()\r\n}","import { BXRestMapCalendarEvent } from './calendar/event'\r\nimport { BXRestMapCalendarSection } from './calendar/section'\r\nimport { BXRestMapCalendarUser } from './calendar/user'\r\n\r\nexport class BXRestMapCalendar {\r\n  public readonly event = new BXRestMapCalendarEvent()\r\n  public readonly section = new BXRestMapCalendarSection()\r\n  public readonly user = new BXRestMapCalendarUser()\r\n}\r\n","import { BXRestMapLogBlogPost } from './log/blogpost'\r\n\r\nexport class BXRestMapLog {\r\n  public readonly blogpost = new BXRestMapLogBlogPost()\r\n}\r\n","import { iBXRestTaskStage, iBXRestTaskStageHttp } from '../../typification/rest/task/stages/stage'\r\nimport { toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskStage {\r\n\r\n  static get(value: iBXRestTaskStageHttp[] | undefined) : iBXRestTaskStage[] | undefined{\r\n    return (value) ? value.map(i => Object.assign(i,\r\n        {\r\n          SORT: toNum(i.SORT),\r\n          ID: toNum(i.ID),\r\n          ENTITY_ID: toNum(i.ENTITY_ID)\r\n        }\r\n      )\r\n    ) as iBXRestTaskStage[] : undefined\r\n  }\r\n\r\n}\r\n","import { BXRestMapTaskCommentItem } from './task/commentitem'\r\nimport { BXRestMapTaskElapsedItem } from './task/elapseditem'\r\nimport { BXRestMapTaskStage } from './task/stages'\r\n\r\nexport class BXRestMapTask {\r\n  public readonly commentItem = new BXRestMapTaskCommentItem()\r\n  public readonly elapsedItem = new BXRestMapTaskElapsedItem()\r\n  public readonly stages = new BXRestMapTaskStage()\r\n}\r\n","import { BXRestMapTasksTask } from './tasks/task'\r\n\r\nexport class BXRestMapTasks {\r\n  public readonly task = new BXRestMapTasksTask()\r\n}\r\n","import { BXRestMapLists } from '../map/lists'\r\nimport { BXRestMapUser } from '../map/user'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { BXRestMapServer } from '../map/server'\r\nimport { BXRestDisk } from '../request/disk'\r\nimport { BXRestMapCalendar } from '../map/calendar'\r\nimport { BXRestMapLog } from '../map/log'\r\nimport { BXRestMapTask } from '../map/task'\r\nimport { BXRestMapTasks } from '../map/tasks'\r\n\r\nexport class BXRestMap {\r\n  public get user() {\r\n    return BXRestMapUser;\r\n  }\r\n\r\n  public get sonet_group() {\r\n    return BXRestMapSonetGroup;\r\n  }\r\n\r\n  public get server() {\r\n    return BXRestMapServer;\r\n  }\r\n\r\n  public get lists() {\r\n    return BXRestMapLists;\r\n  }\r\n\r\n  public get disk() {\r\n    return BXRestDisk;\r\n  }\r\n\r\n  public get calendar() {\r\n    return BXRestMapCalendar;\r\n  }\r\n\r\n  public get log() {\r\n    return BXRestMapLog;\r\n  }\r\n\r\n  public get task() {\r\n    return BXRestMapTask;\r\n  }\r\n\r\n  public get tasks() {\r\n    return BXRestMapTasks;\r\n  }\r\n}","/**\r\n * Public API Surface of bx-rest\r\n */\r\nexport { BXRestSettings } from './settings'\r\nexport { BXRestMapResult } from './functions/mapResult'\r\n/**\r\n * @deprecated\r\n * Используйте BXRestNavvy\r\n */\r\nexport { BXRest } from './rest/base'\r\nexport { BXRestNavvy } from './rest/navvy'\r\nexport { BXRestMap } from './rest/map'\r\nexport { Navvy } from './services/navvy'\r\nexport { HttpBXServices as BXRestRequest } from './services/http/HttpBX'\r\nexport { instanceOfiBXRestAnswerSuccess as isBXRestAnswerSuccess } from './functions/mapResult'\r\nexport { HttpNavvyServices } from './services/http/httpNavvy'\r\nexport * as partNameMethods from './consts/part-name-methods'\r\nexport * as BXBaseServices from './services/base'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Cookies","LocalStorage","BXRestListsElementMap","mergeMap","BXRestMap"],"mappings":";;;;;;;;;;;AAEO,MAAM,wBAAwB,GAAoB;AACvD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,GAAG,EAAE,MAAM;AACZ,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,eAAe,EAAE,MAAM;AACxB,KAAA;CACF,CAAA;AAEY,MAAA,cAAc,GAAG;AAC5B,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE;AACJ,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,GAAG,EAAE,MAAM;AACZ,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,eAAe,EAAE,MAAM;AACxB,SAAA;AACiB,KAAA;AAEpB,IAAA,MAAM,CAAC,WAAqC,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,EAAE,CAAA;KAC7C;;;ACxBG,SAAU,eAAe,CAAI,CAA+B,EAAA;IAChE,IAAI,CAAC,KAAK,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5C,OAAO,CAAC,CAAC,MAAM,CAAA;KAChB;AACD,IAAA,OAAO,SAAS,CAAA;AAClB,CAAC;AACK,SAAU,8BAA8B,CAAI,MAAW,EAAA;IAC3D,OAAO,QAAQ,IAAI,MAAM,CAAA;AAC3B;;ACbc,MAAO,eAAe,CAAA;IAElC,OAAO,GAAG,CAAC,IAAY,EAAA;AACrB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,eAAe,CAAC,CAAA;AACzE,QAAA,IAAI,OAAO;AACT,YAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;;AAEjB,YAAA,OAAO,EAAE,CAAA;KACZ;IAED,OAAO,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,GAAG,GAAG,CAAC,EAAA;QAC7C,IAAI,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAA;QACrC,IAAG,GAAG,EAAE;AACN,YAAA,MAAM,IAAI,WAAW,GAAG,GAAG,CAAA;SAC5B;QACD,MAAM,IAAI,yBAAyB,CAAA;AACnC,QAAA,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;KACzB;IAED,OAAO,MAAM,CAAC,IAAY,EAAE,KAAU,EAAE,GAAG,GAAG,CAAC,EAAA;AAC7C,QAAA,IAAI,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QACrD,IAAG,GAAG,EAAE;AACN,YAAA,MAAM,IAAI,WAAW,GAAG,GAAG,CAAA;SAC5B;QACD,MAAM,IAAI,yBAAyB,CAAA;AACnC,QAAA,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;KACzB;IAED,OAAO,MAAM,CAAI,IAAY,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,eAAe,CAAC,CAAA;QACzE,IAAI,OAAO,EAAE;YACX,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAM,CAAA;SACnC;AAED,QAAA,OAAO,KAAK,CAAA;KACb;AACF;;ACjCD;;;;;AAKG;SACa,KAAK,CAAC,GAAQ,EAAE,UAAU,GAAG,KAAK,EAAA;IAChD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;QACrC,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAA,8BAAA,CAAgC,CAAC,CAAA;SACvE;AACD,QAAA,OAAO,EAAE,CAAA;KACV;AACD,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC;AAED;;AAEG;AACG,SAAU,KAAK,CAAC,GAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAA;AAC7D,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AAE1B,IAAA,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAEjC,QAAA,IAAI,UAAU;AAAE,YAAA,MAAM,KAAK,CAAA;;QAG3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC/B,QAAA,OAAO,QAAQ,CAAA;KAChB;AAED,IAAA,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;AAEG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;AACnC,IAAA,WAAA,CAA4B,KAAU,EAAA;AACpC,QAAA,MAAM,SAAS,GAAG,OAAO,KAAK,CAAA;QAC9B,MAAM,cAAc,GAClB,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAChE,QAAA,MAAM,OAAO,GAAG,CAAA,iCAAA,EAAoC,cAAc,CAAW,QAAA,EAAA,SAAS,GAAG,CAAA;QACzF,KAAK,CAAC,OAAO,CAAC,CAAA;QALY,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;AAMpC,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;;AAGxB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;;YAEzC,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SAChE;KACF;IAEQ,QAAQ,GAAA;QACf,OAAO;AACL,YAAA,CAAA,GAAA,EAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAE,CAAA;AAClC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,KAAK,CAAA,CAAE,GAAG,EAAE;AACnD,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACb;AACF,CAAA;AAED;;AAEG;AACG,SAAU,MAAM,CAAC,GAA2B,EAAE,MAAe,EAAE,GAAqB,EAAE,UAAU,GAAG,IAAI,EAAA;AAC3G,IAAA,IAAI,GAAG,YAAY,IAAI,EAAE;AACvB,QAAA,OAAO,GAAG,CAAA;KACX;AAAM,SAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAClC,IAAI,MAAM,EAAE;YACV,IAAI,GAAG,EAAE;AACP,gBAAA,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;aACxD;YACD,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;SACnD;aAAM;AACL,YAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;SACrB;KACF;AAAM,SAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAClC,QAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;KACrB;IAED,IAAI,UAAU,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAC/C,QAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;KACrC;IAED,OAAO,IAAI,IAAI,EAAE,CAAA;AACnB,CAAC;AAED;;;;;AAKG;SACa,uBAAuB,CAAC,IAAU,EAAE,UAAU,GAAG,IAAI,EAAA;AACnE,IAAA,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;AAC3B,QAAA,IAAI,UAAU;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;AACzE,QAAA,OAAO,EAAE,CAAA;KACV;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;AAC1C,IAAA,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;IACtC,MAAM,GAAG,GAAG,CAAC,CAAS,KAAK,CAAG,EAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACxE,OAAO,IAAI,CAAC,WAAW,EAAE;QACvB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC9B,QAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACzB,QAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC1B,QAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5B,QAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5B,QAAA,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;AACzB,QAAA,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;AAKG;SACa,MAAM,CAAC,GAAQ,EAAE,UAAU,GAAG,IAAI,EAAA;IAChD,QAAQ,OAAO,GAAG;AAChB,QAAA,KAAK,QAAQ;AACX,YAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;YACvB,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;gBAC9B,OAAO,GAAG,KAAK,GAAG,CAAA;aACnB;iBAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;gBAC5C,OAAO,GAAG,KAAK,MAAM,CAAA;aACtB;iBAAM;AACL,gBAAA,IAAI,UAAU;AAAE,oBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;AAChF,gBAAA,OAAO,KAAK,CAAA;aACb;AACH,QAAA;AACE,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;KACtB;AACH,CAAC;AAED;;;;AAIG;AACG,SAAU,QAAQ,CAAC,GAAY,EAAA;IACnC,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AACxB,CAAC;SAEe,eAAe,CAAC,GAAW,EAAE,SAAS,GAAG,KAAK,EAAA;IAC5D,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;KACrC;SAAM;QACL,OAAO,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;KAClD;AACH,CAAC;AAED;;;;AAIG;AACG,SAAU,OAAO,CAAC,GAAW,EAAA;AACjC,IAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;AAC5C,IAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;AAC3C,IAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;AAC1C,IAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;AACzC,IAAA,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;AAIG;AACG,SAAU,aAAa,CAAC,IAAU,EAAA;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC/B,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAA;QACtD,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;AACzC,KAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;AAIG;AACI,eAAe,oBAAoB,CAAC,IAAU,EAAA;AAInD,IAAA,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;AACxC,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO;AACL,YAAA,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAChB,YAAA,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;SACd,CAAA;KACF;AACD,IAAA,OAAO,SAAS,CAAA;AAClB,CAAC;SAEe,kBAAkB,CAAC,GAAW,EAAE,MAA0B,EAAE,EAAA;AAC1E,IAAA,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACzD,QAAA,GAAG,GAAG,UAAU,GAAG,GAAG,CAAA;KACvB;IAED,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,QAAA,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAC7C,YAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;SAChB;AAED,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;KAChB;AAED,IAAA,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAC7C,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;KAChB;AAED,IAAA,OAAO,GAAG,CAAA;AACZ;;;;;;;;;;;;;;;;;;MC/Na,oBAAoB,CAAA;IAE/B,OAAO,GAAG,CAAC,IAAY,EAAA;AACrB,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;KAClC;IAED,OAAO,MAAM,CAAI,IAAY,EAAA;QAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5C,QAAA,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAM,GAAG,IAAI,CAAA;KACvD;AAED,IAAA,OAAO,GAAG,CAAC,IAAY,EAAE,KAAa,EAAA;AACpC,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAClC;AAED,IAAA,OAAO,MAAM,CAAC,IAAY,EAAE,KAAU,EAAA;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,QAAA,IAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAC;AAChC,YAAA,YAAY,CAAC,OAAO,CAClB,IAAI,EACJ,IAAI,CAAC,SAAS,CACZ,MAAM,CAAC,MAAM,CACX,GAAG,EACH,KAAK,CACN,CACF,CACF,CAAA;SACF;aAAM;AACL,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;SAClD;KACF;IAED,OAAO,GAAG,CAAC,IAAY,EAAA;AACrB,QAAA,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;KAC9B;AAEF;;MCpCY,cAAc,CAAA;AAEzB,IAAA,OAAO,OAAO,CAAC,IAAY,EAAE,KAAU,EAAA;AACrC,QAAA,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;KACpD;IAED,OAAO,OAAO,CAAI,IAAY,EAAA;QAC5B,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxC,IAAG,GAAG,EAAC;AACL,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAA;SAC5B;AACD,QAAA,OAAO,SAAS,CAAA;KACjB;AACF;;ACHa,MAAO,kBAAkB,CAAA;AAUrC,IAAA,WAAA,GAAA;QARA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEhB,QAAA,IAAA,CAAA,SAAS,GAAG;YACV,QAAQ,EAAE,IAAI,YAAY,EAAE;SAC7B,CAAA;AAEgB,QAAA,IAAA,CAAA,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAA;AAIrD,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAc,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AAC3E,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE;;YAE5D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAmB,KAAI;gBACzD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;oBAClC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;wBAClC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AACxC,4BAAA,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;yBAChD;wBAED,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACjC,4BAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;AAC9B,4BAAA,MAAM,IAAI,GAAG;AACX,gCAAA,YAAY,EAAE,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,GAAG,SAAS;AACnE,gCAAA,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,GAAG,SAAS;AAC5E,gCAAA,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS;AACjD,gCAAA,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,SAAS;AACpD,gCAAA,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,GAAG,SAAS;AAC7D,gCAAA,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS;AAC1D,gCAAA,aAAa,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,GAAG,SAAS;AACtE,gCAAA,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS;AAC9C,gCAAA,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,GAAG,SAAS;AAC5E,gCAAA,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS;AACjD,gCAAA,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,SAAS;AACpD,gCAAA,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS;6BAC5C,CAAA;AAED,4BAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;gCACjD,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gCACnD,IAAI,CAAC,YAAY,EAAE,CAAA;6BACpB;yBACF;qBACF;iBACF;AACH,aAAC,CAAC,CAAA;SACH;AAAM,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;SACrB;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;KAEzB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;KACtC;IAED,OAAO,GAAA;QACL,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG;AACpC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAOA,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC5B,YAAA;AACE,gBAAA,IAAK,MAAc,CAAC,EAAE,IAAK,MAAc,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE;AAC5D,oBAAA,OAAQ,MAAc,CAAC,EAAE,CAAC,aAAa,EAAE,CAAA;iBAC1C;AAAM,qBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE;AAClC,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;oBAC5B,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA;iBACxB;qBAAM;AACL,oBAAA,OAAOA,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;iBAC3B;SACJ;KACF;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACzC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAA;SACtC;aAAM;AACL,YAAA,OAAO,MAAM,CAAA;SACd;KACF;IAED,SAAS,GAAA;AACP,QAAA,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzE,IAAI,KAAK,EAAE;AACT,YAAAC,oBAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACjC,YAAA,OAAO,KAAK,CAAA;SACb;AAAM,aAAA,IAAIA,oBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrC,YAAA,OAAOA,oBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;SAClC;AACD,QAAA,OAAO,EAAE,CAAA;KACV;IAED,aAAa,GAAA;QACX,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM;AACvC,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;AACvB,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAOA,oBAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzD,YAAA;AACE,gBAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAA;SAClE;KACF;IAED,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAA;KACnD;IAED,UAAU,GAAA;QACR,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,KAAK,EAAE;AACxH,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe;AAC1C,cAAE,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAA;QAEjD,IAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAC;AAChD,YAAA,OAAO,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAA;SAC/E;AAED,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEhE,QAAA,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC,CAAA;KACjE;AACF;;MClIY,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,WAAW,GAAuB;AAChC,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF,CAAA;KA6EF;AA3EC,IAAA,iBAAiB,CACf,GAAQ,EACR,cAAA,GAA2B,IAAI,QAAQ,EAAE,EACzC,OAAA,GAAoB,EAAE,EACtB,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAA;AAE3B,QAAA,IAAI,GAAG,YAAY,IAAI,EAAE;AACvB,YAAA,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;AAC9B,kBAAE,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;kBAC/C,KAAK,CAAA;AACT,YAAA,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC/B,YAAA,OAAO,cAAc,CAAA;SACtB;AAAM,aAAA,IAAI,GAAG,YAAY,IAAI,EAAE;AAC9B,YAAA,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,iBAAiB,EAAE,GAAG,KAAK,GAAG,CAAC,CAAA;YAC7E,IAAI,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,iBAAiB,EAAE,GAAG,KAAK,GAAG,CAAC,CAAA;YACjF,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;AAC9B,kBAAE,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;kBAC/C,KAAK,CAAA;YACT,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;AACzF,YAAA,OAAO,cAAc,CAAA;SACtB;aAAM;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;gBACrB,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,gBAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,oBAAA,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AACtB,oBAAA,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;0BACxB,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;0BAC5D,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;iBAC5B;qBAAM;oBACL,MAAM,GAAG,GAAG,CAAA;iBACb;AACD,gBAAA,QAAQ,OAAO,GAAG,CAAC,GAAG,CAAC;AACrB,oBAAA,KAAK,QAAQ;wBACX,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;wBACpC,MAAK;AACP,oBAAA,KAAK,QAAQ,CAAC;AACd,oBAAA,KAAK,QAAQ,CAAC;AACd,oBAAA,KAAK,QAAQ,CAAC;AACd,oBAAA,KAAK,SAAS;AACZ,wBAAA,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;wBAC5C,MAAK;AACP,oBAAA,KAAK,QAAQ;AACX,wBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjB,wBAAA,cAAc,GAAG,IAAI,CAAC,iBAAiB,CACrC,GAAG,CAAC,GAAG,CAAC,EACR,cAAc,EACd,OAAO,EACP,QAAQ,CACT,CAAA;wBACD,OAAO,CAAC,GAAG,EAAE,CAAA;wBACb,MAAK;AACP,oBAAA,KAAK,UAAU,CAAC;AAChB,oBAAA,KAAK,WAAW,CAAC;AACjB,oBAAA;AACE,wBAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAA;iBACnF;aACF;SACF;AACD,QAAA,OAAO,cAAc,CAAA;KACtB;IAED,oBAAoB,CAAC,GAAU,EAAE,SAAiB,EAAA;QAChD,MAAM,GAAG,GAAG,EAAE,CAAA;AACd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;AAC9C,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;AACzC,YAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAChB;AACD,QAAA,OAAO,GAAG,CAAA;KACX;AAED,IAAA,uBAAuB,CAAC,GAAW,EAAA;QACjC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;KACnC;AACF;;AClFK,MAAgB,QAAS,SAAQ,QAAQ,CAAA;AAY9C;;ACPK,MAAO,YAAa,SAAQ,QAAQ,CAAA;AAKxC,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAA;AAHO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAIhD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;KACpC;IAEQ,QAAQ,CACf,GAAW,EACX,MAAA,GAAc,EAAE,EAChB,QAAA,GAA+B,IAAI,CAAC,WAAW,EAAA;QAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;QACzC,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;YACjC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;AAE7C,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CACnC,SAAS,CAAC,CAAC,OAAO,KAAI;gBACpB,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;iBACzD;gBAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAA;AACjD,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAE9E,OAAO,IAAI,CACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAI,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,CAC5E,CAAA;aACF,CAAC,CACH,CAAA;SACF;aAAM;YACL,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;SAClE;KACF;;AAGQ,IAAA,OAAO,CAAI,GAAW,EAAE,MAAA,GAAc,EAAE,EAAA;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;QACzC,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;YACjC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;AAE7C,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CACnC,SAAS,CAAC,CAAC,OAAO,KAAI;gBACpB,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;iBACzD;gBAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAA;gBACjD,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC/D,gBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,CAAI,CAAA,EAAA,WAAW,EAAE,CAAA;gBAE5C,OAAO,IAAI,CACT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,CACtE,CAAA;aACF,CAAC,CACH,CAAA;SACF;aAAM;YACL,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAA;SACjE;KACF;AACF;;AC5DK,MAAO,cAAe,SAAQ,YAAY,CAAA;AAE9C;;;;AAIG;AACH,IAAA,MAAM,CAAO,KAAyD,EAAA;AAEpE,QAAA,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAS,IAAI,CAAC,YAAY,CAAI,KAAK,CAAC,CAAC,CAAA;AACtE,QAAA,MAAM,IAAI,GAAG,EAAE,CAAA;AACf,QAAA,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9D,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAA;SAChE;QAED,OAAO,QAAQ,CACb,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAG;AACf,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACjC,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;AAClC,oBAAA,OAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAA;AACvB,iBAAC,CAAC,CAAC;AACJ,aAAA,CAAC,CAAA;SACH,CAAC,CACqC,CAAA;KAC1C;AAED,IAAA,YAAY,CAAI,KAAyD,EAAA;AACvE,QAAA,IAAI,GAAG,GAA2B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACzD,CAAC,GAAG,EAAE,GAAG,KAAI;AACX,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;AACb,YAAA,OAAO,GAAG,CAAA;SACX,EACD,EAA4B,CAC7B,CAAA;AACD,QAAA,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AAC1E,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAC,WAAW,EAAE,UAAU,EAAC,CAAC,CAAA;aAC7F;SACF;AACD,QAAA,OAAO,GAAG,CAAA;KACX;AAED,IAAA,eAAe,CAAI,GAA6B,EAAA;AAC9C,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IACnC,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CACxF,CAAA;KACzB;AAED,IAAA,yBAAyB,CAAI,GAA6B,EAAA;AACxD,QAAA,OAAO,OAAO,CAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAC9C,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,MAAM,CAAC;AAC5E,cAAE,CAAC,CAAC,MAAM,CAAC,MAAM;AACjB,cAAE,SAAS,CAAC,CAAC,CAChB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,IAAI,CAAI,IAAc,EAAE,MAAA,GAAc,EAAE,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAmB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;KACzE;AAED;;;;;AAKG;AACH,IAAA,GAAG,CAAI,IAAc,EAAE,MAAA,GAAc,EAAE,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAmB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;KACxE;AAEQ,IAAA,QAAQ,CAAI,GAAW,EAAE,MAAA,GAAc,EAAE,EAAA;AAChD,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAA;QACvD,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACtD,gBAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;aACjD;YACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;SAC9C;AAED,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CACnC,SAAS,CAAC,CAAC,OAAO,KAAI;YACpB,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;aACzD;YAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAA;;YAGjD,OAAO,IAAI,CACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAI,OAAO,EAAE,WAAW,EAC7C;AACE,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACF,aAAA,CACF,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,CACpC,CAAA;SACF,CAAC,CACH,CAAA;KACF;;AAGQ,IAAA,OAAO,CAAI,GAAW,EAAE,MAAA,GAAc,EAAE,EAAA;AAC/C,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,GAAG,EAAE,CAAA;SACZ;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;AACvC,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;SAC9C;AAED,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,MAAM,EAAE,WAAW;;SAEpB,CAAA;AAED,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CACnC,SAAS,CAAC,CAAC,OAAO,KAAI;YACpB,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;aACzD;AAED,YAAA,OAAO,IAAI,CACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,OAAO,EACnE;AACE,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACF,aAAA,CACF,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,CACpC,CAAA;SACF,CAAC,CACH,CAAA;KACF;AAED,IAAA,aAAa,CAAC,GAAa,EAAA;AACzB,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACrB;AAEF;;ACpKM,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,cAAc,GAAG,eAAe,CAAA;AACtC,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,WAAW,GAAG,YAAY,CAAA;AAChC,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,CAAA;AACvC,MAAM,UAAU,GAAG,WAAW,CAAA;AAC9B,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,WAAW,GAAG,YAAY,CAAA;AAChC,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,gBAAgB,GAAG,iBAAiB,CAAA;AAC1C,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,WAAW,GAAG,YAAY,CAAA;AAChC,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,cAAc,GAAG,eAAe,CAAA;AACtC,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,UAAU,GAAG,WAAW,CAAA;AAC9B,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,GAAG,GAAG,IAAI,CAAA;AAChB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,UAAU,GAAG,WAAW,CAAA;AAC9B,MAAM,UAAU,GAAG,YAAY,CAAA;AAC/B,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,GAAG,GAAG,IAAI,CAAA;AAChB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,aAAa,GAAG,cAAc,CAAA;AACpC,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,UAAU,GAAG,WAAW,CAAA;AAC9B,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,MAAM,GAAG,OAAO,CAAA;AACtB,MAAM,OAAO,GAAG,QAAQ,CAAA;AACxB,MAAM,KAAK,GAAG,MAAM,CAAA;AACpB,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,IAAI,GAAG,KAAK,CAAA;AAClB,MAAM,KAAK,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvG3B;;;AAGG;AACI,MAAM,OAAO,GAAqD;AACvE,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACvB,QAAA,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;AAC3B,QAAA,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;AAC3B,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACxB,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACxB,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;AAIzB,QAAA,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;AACzB,QAAA,SAAS,EAAE;AACT;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;AAC9B;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;AACpC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;AACpC;;AAEG;AACH,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE;AACJ;;AAEG;gBACH,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE;AACJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;AAC1B;;AAEG;AACH,YAAA,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;AAClC;;AAEG;AACH,YAAA,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;;;;;;;AAOpC;;AAEG;AACH,YAAA,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AAC9B;;AAEG;AACH,YAAA,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;AACpC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AAyB1B;;AAEG;AACH,YAAA,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;AACtC;;AAEG;AACH,YAAA,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;;;;;;;AAOtC;;AAEG;AACH,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;AAqB5B;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;AAChC,YAAA,MAAM,EAAE;AACN;;AAEG;gBACH,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;AACrC;;AAEG;gBACH,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC;AAC1D;;AAEG;gBACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC;AACjE,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,WAAW,EAAE;;;;;AAKX;;AAEG;AACH,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC;;;;;AAKxC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC;AAChC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACtC;;AAEG;AACH,YAAA,eAAe,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC;AACxD;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACvC,SAAA;AACD,QAAA,WAAW,EAAE;;;;;AAKX;;AAEG;AACH,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC;AACxC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC;AAChC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC;AAChC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACtC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;;;;;AAKvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,SAAS,EAAE;AACT;;AAEG;gBACH,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC;;;;;;;;;;;;;AAalD;;AAEG;gBACH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;;;;;;;;;AAS/C,aAAA;AACF,SAAA;AACD,QAAA,MAAM,EAAE;AACN;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAC3B;;AAEG;AACH,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC;AAC5C;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAC3B;;AAEG;YACH,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;AACtC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAClC,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;;;;;AAKP;;AAEG;AACH,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqC5B,KAAA;AACD,IAAA,WAAW,EAAE;;;;;;;;;;;;AAYX;;AAEG;AACH,QAAA,GAAG,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;AAsB1B,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;AACvB,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,QAAQ,EAAE;AACR;;AAEG;YACH,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;;;AAI5B;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;;;;;;;;;;;;AAa7B,SAAA;;;;;;;AAOF,KAAA;AACD,IAAA,KAAK,EAAE;;;;;;;;;AASL;;AAEG;AACH,QAAA,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;;;;;;;;;AASnB,QAAA,OAAO,EAAE;AACP;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;AAK7B;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;;;;;AAS9B,SAAA;AACD,QAAA,KAAK,EAAE;;;;;;;;;AASL;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;;;;;;;;;;;AAW5B,SAAA;AACF,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,IAAI,EAAE;AACJ,YAAA,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;;;;;;;;;;AAUxB,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE;;;;;AAKJ;;AAEG;YACH,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;AAiBzB;;AAEG;AACH,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;AAqB1C,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;AACvC,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAC3B,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;AAC3C,YAAA,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC;AAC9C,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC,YAAA,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;AAC1C,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;AAC3C,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;AACnC,YAAA,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;AACzC,YAAA,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC;AACrD,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC;AACrC,SAAA;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;AACxB,QAAA,GAAG,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;AAC3B,QAAA,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;AACxB,QAAA,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;AAC/B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;;;;;;;;;AASL;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;;;;;;;;;AAS/B,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BR;;AAEG;AACH,YAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;;;;;AAKrC,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDF,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,GAAG,EAAE;AACH,YAAA,WAAW,EAAE;gBACX,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC;AACjD,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC;AAC1E,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,GAAG,EAAE;AACH;;AAEG;AACH,QAAA,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AACtB,KAAA;CACF;;MCjsBY,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAA;AACrB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAK7C;IAHC,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAC7D;AACF;;MCJY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAA;AAE3C,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAA;KAoC7B;IAlCC,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KAC/C;IAED,GAAG,CAAC,SAA8B,EAAE,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAEnB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,MAAM,CACP,CAAA;KACF;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;KAC7D;AAED,IAAA,MAAM,CAAC,IAAyB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,IAAI,CACL,CAAA;KACF;AAED,IAAA,MAAM,CAAC,MAA8B,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAClE;AAED,IAAA,MAAM,CAAC,MAAgB,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,CAAA;KAClE;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAC7D;AACF;;MCvCY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;AAC7B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAa7C;AAXC,IAAA,GAAG,CAAC,IAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,IAAI,CACL,CAAA;KACF;AAED,IAAA,GAAG,CAAC,KAAkC,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACnD;AAEF;;MChBY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;;;;;AASvB;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;;;;;;;;;;;SAW5B,CAAA;AACgB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAM7C;AAJC,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACpE;AAEF;;MChCY,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;;;;;AASd;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;;;;;;;;;AASnB,YAAA,OAAO,EAAE;AACP;;AAEG;AACH,gBAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;AAK7B;;AAEG;AACH,gBAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;;;;;AAS9B,aAAA;AACD,YAAA,KAAK,EAAE;;;;;;;;;AASL;;AAEG;AACH,gBAAA,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;;;;;;;;;;;AAW5B,aAAA;SACF,CAAA;AAEe,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAA;AAC7B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAS7C;;;;AAHC,IAAA,GAAG,CAAC,KAA0B,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAClE;AACF;;MC7EY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAA;AACvB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KA0C7C;IAxCC,OAAO,CAAC,QAAoC,EAAE,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KAC7E;AAED,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,CACN,CAAA;KACF;AAED,IAAA,MAAM,CAAC,KAAoC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAEnB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,CACN,CAAA;KACF;AAED,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,CACN,CAAA;KACF;AAED;;;;;;;;;AASG;AACH,IAAA,eAAe,CAAC,KAA4B,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;KAChE;AAEF;;MCpCY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAG;YACd,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC;YAChD,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC;YACxC,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC;YAChC,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC;YAChC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;YACtC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;YACtC,eAAe,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC;SACzD,CAAA;AAEgB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAqB7C;AAnBC,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACnD;AAED,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACvD;AAED,IAAA,GAAG,CAAC,KAAqC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACnE;AAED,IAAA,OAAO,CAAC,KAAmC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KACzE;AAED,IAAA,GAAG,CAAC,KAAkC,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACvD;AACF;;MChDY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAK7C;IAHC,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KACzE;AACF;;MCFY,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;QACmB,IAAG,CAAA,GAAA,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;AACjC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAM7C;AAJC,IAAA,OAAO,CAAC,KAA2C,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KACtF;AAEF;;MCbY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAA;KAC1D;AAAA;;MCCY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACzC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAA;AACjC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAC5C;AAAA;;MCFY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;QACY,IAAG,CAAA,GAAA,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;AACxB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAa7C;AAXC,IAAA,iBAAiB,CAAC,SAAiB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAA;KAChF;AAED,IAAA,cAAc,CAAC,KAAqC,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;KAClF;AAED,IAAA,IAAI,CAAC,KAAsC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAC1E;AACF;;MCAY,eAAe,CAAA;AAA5B,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;AAElB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACnC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAsG7C;AApGC,IAAA,GAAG,CAAuC,KAAwC,EAAA;AAChF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6D,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACvG;AAED,IAAA,OAAO,CAAC,KAAmC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KACxG;AAED,IAAA,QAAQ,CAAC,KAAoC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;KAC1G;AAED,IAAA,KAAK,CAAC,KAAiC,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;KACpG;AAED,IAAA,MAAM,CAAC,KAAkC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACrG;AAED,IAAA,GAAG,CAA0E,KAA6C,EAAA;AACxH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACrF;AAED,IAAA,IAAI,CAA0E,KAA0C,EAAA;AACtH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KACvF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE;IAEF,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;KACrE;AAGD,IAAA,SAAS,CAAC,KAAgC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KACvE;AAEF;;MChIY,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;KAC7C;AAAA;;MCIY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA;AAEhB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAY7C;AAVC,IAAA,GAAG,CAAC,KAA8B,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAChE;AAED,IAAA,WAAW,CAAC,KAAsC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,CACN,CAAA;KACF;AACF;;MCJY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;AAElB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KA+H7C;AA7HC;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC9D;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,KAAyC,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;KACvE;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACjE;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACjE;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACjE;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAC,KAAmC,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,KAAK,CACN,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAoC,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,CACN,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAgC,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,KAAK,CACN,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,eAAe,CAAC,KAAwC,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,KAAK,CACN,CAAA;KACF;AAGD;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;KAC1E;AAED;;;;AAIG;AACH,IAAA,UAAU,CAAC,KAAuC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,KAAK,CACN,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAoC,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,CACN,CAAA;KACF;AACF;;MC9IY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAA;AAC1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAK7C;AAHC,IAAA,GAAG,CAAC,KAAyC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC1E;AACF;;MCVY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;AAC/B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAA;KAChE;AAAA;;MCRY,6BAA6B,CAAA;AAIzC;;MCJY,6BAA6B,CAAA;AAUzC;;MCJY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,cAAc,EAAE,CAAA;KA2BrD;;IAPC,IAAI,CAAC,GAAa,EAAE,MAAY,EAAA;AAE9B,QAAA,IAAG,MAAM,KAAK,SAAS,EAAC;YACtB,MAAM,GAAG,EAAE,CAAA;SACZ;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;KAC3C;AACF;;MC5BY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,6BAA6B,EAAE,CAAA;AAC/C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,6BAA6B,EAAE,CAAA;AAE9C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAA;KAS/C;AAPC;;AAEG;AACH,IAAA,KAAK,CAAC,KAAuC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;KAC5D;AAEF;;MCnBY,qBAAqB,CAAA;AAEjC;;MCFY,iBAAiB,CAAA;AAE7B;;MCFY,kBAAkB,CAAA;AAE9B;;MCFY,kBAAkB,CAAA;AAE9B;;MCIY,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACtC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAChC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAA;KACjD;AAAA;;MCPY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;AAEnB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAU7C;AARC,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACpD;IAED,GAAG,CAAC,QAAiC,EAAE,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAClE;AAEF;;MCnBY,oBAAoB,CAAA;AAGhC;;MCAY,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,oBAAoB,EAAE,CAAA;KACzD;AAAA;;MCAY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,WAAW,CAAA;AAC3B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAgBpC;;;;;;;;;;;IAHC,GAAG,CAAC,QAAmC,EAAE,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACvE;AACF;;MCrBY,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAElC,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,MAAM,CAAA;KAK/B;IAHC,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAC7C;AACF;;MCHY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,UAAU,CAAA;AAEjB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAiB7C;IAfC,GAAG,CAAC,QAAmC,EAAE,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACpE;AAED,IAAA,GAAG,CAAC,KAAgC,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACnD;AAED,IAAA,GAAG,CAAC,KAAgC,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACpD;AAED,IAAA,MAAM,CAAC,KAA8B,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACvD;AACF;;MCxBY,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAQ7C;AANC;;AAEG;IACH,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAC5D;AACF;;MCTY,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;AAKvB;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAqC5B,CAAA;AACgB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAK7C;IAHC,MAAM,CAAC,QAA+C,SAAS,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACxE;AACF;;MClDY,iCAAiC,CAAA;AAA9C,IAAA,WAAA,GAAA;QACU,IAAG,CAAA,GAAA,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAA;AAE3C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAMpC;AAJC,IAAA,GAAG,CAAC,KAAiD,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAClF;AAEF;;MCTY,+CAA+C,CAAA;AAA5D,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;AAC3D,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAKpC;AAHC,IAAA,IAAI,CAAC,KAAwD,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAC9F;AACF;;MCTY,sCAAsC,CAAA;AAAnD,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,+CAA+C,EAAE,CAAA;KAClF;AAAA;;MCJY,8BAA8B,CAAA;AAA3C,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,sCAAsC,EAAE,CAAA;KACxE;AAAA;;MCDY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,WAAW,GAAI,IAAI,iCAAiC,EAAE,CAAA;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAI,IAAI,8BAA8B,EAAE,CAAA;KACjE;AAAA;;MCJY,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;;;AAIS,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,sBAAsB,EAAE,CAAA;KAI1C;AAAA;;MCNY,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAK7C;IAHC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsC,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;KACjG;AACF;;MCLY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAA;KAK3D;IAHC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;KACxE;AACF;;MCNY,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAM5C;;;AAGG;;;;KAIJ;IAXC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;KACzF;AASF;;MCjBY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG;YACxB,MAAM,EAAE,IAAI,uBAAuB,EAAE;SACtC,CAAA;KACF;AAAA;;MCUY,MAAM,CAAA;AAAnB,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAA;AACvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,WAAW,EAAE,CAAA;AACzB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAA;AACvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,WAAW,EAAE,CAAA;AACzB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAA;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;AAC7B,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,SAAS,EAAE,CAAA;AACrB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,gBAAgB,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAA;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAA;AACnC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,SAAS,EAAE,CAAA;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;AAC7B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAA;AACzC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAA;KASxC;IAPQ,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqB,CAAC,SAAS,CAAC,CAAC,CAAA;KACvD;AAEM,IAAA,KAAK,CAAI,KAAwB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;KACzD;AACF;;wBCvCY,SAAS,CAAA;IACpB,OAAO,OAAO,CAAC,IAAoC,EAAA;QACjD,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,EAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC,EAAmB,GAAG,SAAS,CAAA;KAClF;AACF;;ACAD;;AAEG;MACmB,YAAY,CAAA;AAKhC,IAAA,WAAA,CACY,GAAa,EACb,KAAQ,EACR,GAA0D,EAAA;QAF1D,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;QACb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAG;QACR,IAAG,CAAA,GAAA,GAAH,GAAG,CAAuD;AALtE,QAAA,IAAA,CAAA,QAAQ,GAAG,EAAE,CAAA;AAOX,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KACjC;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC/C;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,EAAE;AACrB,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAG;YACN,IAAI,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;;gBAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAW,CAA0B,CAAA;gBAC/D,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAC,MAAM,EAAE,MAAM,EAAC,EAA0C,CAAA;aAC7E;AACD,YAAA,OAAO,CAAqD,CAAA;SAC7D,CAAC,CACH,CAAA;KACJ;IAED,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAC7C,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG;AACrB,cAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,cAAE,CAAC,CACJ,CAC+C,CAAA;KACnD;AAED,IAAA,WAAW,CACT,OAAiD,EAAA;QAEjD,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,EAC5B,UAAU,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;SAC/C,CAAC,CACH,CAAA;KACF;AAEF;;AC5DK,MAAO,WAAqB,SAAQ,YAAqB,CAAA;AAE9D;;ACOD;;;;;AAKG;AACG,MAAO,gBAA+D,SAAQ,YAAyB,CAAA;IAE3G,MAAM,GAAA;QACJ,IAAI,IAAI,GAA4B,EAAE,CAAA;QACtC,OAAO,IAAI,CAAC,YAAY,EAAE;AACvB,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAG;YACJ,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAC,CAAA;aAC3C;AACD,YAAA,OAAO,IAAI,CAAA;SACZ,CACF,EACD,IAAI,EAAE,EACN,WAAW,CAAC,CAAC,CAAC,CACf,CAAA;KACJ;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,WAAW,GAAG,IAAI,MAAM,EAAE,CAAA;;QAE9B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAC3B,QAAQ,CACN,KAAK,IAAG;AACN,YAAA,IAAI,KAAK,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE;gBAClD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;;oBAGxE,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpD,wBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;qBAC/C;oBAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;wBACvC,OAAO,WAAW,CAAC,KAAK,CAAQ;AAC9B,4BAAA,IAAI,EAAE,CAAC;AACP,4BAAA,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAG;gCACjB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAE/B,gCAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oCACjB,KAAK,CAAC,MAAM,GAAG;AACb,wCAAA,UAAU,EAAE;AACV,4CAAA,QAAQ,EAAE,CAAC;AACX,4CAAA,SAAS,EAAE,EAAE;AACd,yCAAA;qCACF,CAAA;iCACF;;AAGD,gCAAA,KAAK,CAAC,MAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;;gCAGzC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,sCAAA,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAC,WAAW,EAAE,UAAU,EAAC,CAAC,CAAA;AAC1D,6BAAC,CAAC;AACH,yBAAA,CAAC,CAAA;AACJ,qBAAC,CAAC,CAAA;AAEF,oBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC;oBAC7B,OAAO,EAAE;oBACT,GAAG,CAAC,OAAO,IAAG;AACZ,wBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAa,CAAA;AAC/B,wBAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,4BAAA,IAAI,MAAM,IAAI,8BAA8B,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gCAC7F,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;6BACrD;yBACF;AAED,wBAAA,OAAO,CAAC,IAAI,CAAC,GAAG;AACd,4BAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;8BACX,GAAG,CAAA;qBACR,CAAC,CACH,CAAA;iBACF;aACF;AAED,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;AACvC,SAAC,CACF,EACD,UAAU,CAAC,GAAG,IAAG;;AAEf,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,YAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;SAC7B,CAAC,CACH,CAAA;KACF;AAEO,IAAA,kBAAkB,CAAC,KAAqC,EAAA;QAC9D,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACxE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAC5C,GAAG,IAAI,CAAC,EAA6B,CAAC,CAAA;KACxC;AACF;;ACtGK,MAAO,yBAA6D,SAAQ,YAAuC,CAAA;AAAzH,IAAA,WAAA,GAAA;;QAEE,IAAI,CAAA,IAAA,GAA4C,EAAE,CAAA;KAoFnD;IAlFC,MAAM,GAAA;AACJ,QAAA,IAAI,WAAW,GAAG,IAAI,MAAM,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAC3B,QAAQ,CACN,KAAK,IAAG;AACN,YAAA,IAAI,KAAK,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE;gBAClD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;;oBAGxE,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpD,wBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;qBAC/C;oBAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;wBACvC,OAAO,WAAW,CAAC,KAAK,CAAsB;AAC5C,4BAAA,IAAI,EAAE,CAAC;AACP,4BAAA,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAG;gCACjB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAE/B,gCAAA,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;;gCAGrC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,sCAAA,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;AAC5D,6BAAC,CAAC;AACH,yBAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,IAAG;4BACN,IAAI,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACzF,gCAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAsB,CAAA;6BAC7E;AAED,4BAAA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;yBAC/B,CAAC,CACH,CAAA;AACH,qBAAC,CAAC,CAAA;AAEF,oBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,CAAA;AACZ;;;;;;;;;AASG;iBACJ;qBAAM;oBACL,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAA2B,CAAC,CAAC,CAAA;iBAC/C;aACF;AACD,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;;;AAGtB,SAAC,CACF,EACD,GAAG,CAAC,CAAC,IAAG;YACN,IAAI,CAAC,EAAE;gBACL,MAAM,YAAY,GAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC5D,oBAAA,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;iBAC1B,EAAE,EAAE,CAAC,CAAA;AAEN,gBAAA,IAAG,IAAI,CAAC,GAAG,EAAC;AACV,oBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;iBAC9B;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4C,CAAC,CAAA;gBAC/D,OAAO,IAAI,CAAC,IAAI,CAAA;aACjB;AACD,YAAA,OAAO,CAAC,CAAA;AACV,SAAC,CAAC,EACF,UAAU,CAAC,GAAG,IAAG;;AAEf,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,YAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;SAC7B,CAAC,CACH,CAAA;KACF;AACF;;ACrFK,MAAO,gBAAoD,SAAQ,YAA8C,CAAA;AAAvH,IAAA,WAAA,GAAA;;QAEE,IAAI,CAAA,IAAA,GAA4B,EAAE,CAAA;KA0FnC;IAzFC,MAAM,GAAA;QACJ,IAAI,IAAI,GAA4B,EAAE,CAAA;QACtC,OAAO,IAAI,CAAC,YAAY,EAAE;AACvB,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAG;YACJ,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAC,CAAA;aAC3C;AACD,YAAA,OAAO,IAAI,CAAA;SACZ,CACF,EACD,IAAI,EAAE,EACN,WAAW,CAAC,CAAC,CAAC,CACf,CAAA;KACJ;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,WAAW,GAAG,IAAI,MAAM,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAC3B,QAAQ,CACN,KAAK,IAAG;AACN,YAAA,IAAI,KAAK,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE;AAClD,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;;gBAEd,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;;oBAGxE,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpD,wBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;qBAC/C;oBAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;wBACvC,OAAO,WAAW,CAAC,KAAK,CAA6B;AACnD,4BAAA,IAAI,EAAE,CAAC;AACP,4BAAA,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAG;gCACjB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAE/B,gCAAA,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;;gCAGrC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,sCAAA,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;AAC5D,6BAAC,CAAC;AACH,yBAAA,CAAC,CAAA;AACJ,qBAAC,CAAC,CAAA;AAEF,oBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC;oBAC7B,OAAO,EAAE;oBACT,GAAG,CAAC,OAAO,IAAG;wBACZ,IAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AACrC,4BAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAY,CAAA;AAErC,4BAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,gCAAA,IAAI,MAAM,IAAI,8BAA8B,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7F,oCAAA,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAS,CAAC,CAAA;iCACjF;6BACF;AAED,4BAAA,OAAO,CAAC,IAAI,CAAC,GAAG;gCACd,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC;kCACpB,GAAG,CAAA;yBACR;AAED,wBAAA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;qBAC/B,CAAC,CACH,CAAA;iBACF;AAED,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;aACnC;AACD,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACpC,SAAC,CACF,EACD,UAAU,CAAC,GAAG,IAAG;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,YAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;SAC7B,CAAC,CACH,CAAA;KACF;AAEO,IAAA,eAAe,CAAC,KAA0D,EAAA;QAChF,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACxE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAC5C,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;KACb;AACF;;AC3FK,MAAO,QAA4C,SAAQ,YAAyB,CAAA;AAA1F,IAAA,WAAA,GAAA;;QAEE,IAAI,CAAA,IAAA,GAA4B,EAAE,CAAA;KA0EnC;IAxEC,MAAM,GAAA;AACJ,QAAA,IAAI,WAAW,GAAG,IAAI,MAAM,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAC3B,QAAQ,CACN,KAAK,IAAG;AACN,YAAA,IAAI,KAAK,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE;AAClD,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;;gBAEd,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;;oBAGxE,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpD,wBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;qBAC/C;oBAED,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;wBACvC,OAAO,WAAW,CAAC,KAAK,CAAQ;AAC9B,4BAAA,IAAI,EAAE,CAAC;AACP,4BAAA,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAG;gCACjB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAE/B,gCAAA,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;;gCAGrC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,sCAAA,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;AAC5D,6BAAC,CAAC;yBACH,CAAC,CAAC,IAAI,EACN,CAAA;AACH,qBAAC,CAAC,CAAA;AAEF,oBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC;oBAC7B,OAAO,EAAE;oBACT,GAAG,CAAC,OAAO,IAAG;AACZ,wBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAa,CAAA;AAC/B,wBAAA,KAAI,IAAI,MAAM,IAAI,OAAO,EAAC;AACxB,4BAAA,IAAI,MAAM,IAAI,8BAA8B,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gCAC7F,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;6BACrD;yBACF;AAED,wBAAA,OAAO,CAAC,IAAI,CAAC,GAAG;AACd,4BAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;8BACX,GAAG,CAAA;qBACR,CAAC,CACH,CAAA;iBACF;AAED,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;aACnC;AACD,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AACpC,SAAC,CACF,EACD,GAAG,CAAC,CAAC,IAAG;YACN,IAAI,CAAC,EAAE;gBACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CAA4B,CAAC,CAAA;aACjD;YAED,OAAO,IAAI,CAAC,IAAI,CAAA;SACjB,CAAC,CACH,CAAA;KACF;AAEO,IAAA,eAAe,CAAC,KAAqC,EAAA;QAC3D,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACxE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAC5C,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;KACb;AACF;;MCjFY,KAAK,CAAA;AAEhB,IAAA,MAAM,CACJ,GAAa,EACb,GAAO,EACP,GAA6C,EAAA;AAE7C,QAAA,OAAO,IAAI,WAAW,CACpB,GAAG,EACH,GAAG,KAAK,SAAS,GAAG,GAAG,GAAG,SAAS,EACnC,GAAG,CACJ,CAAA;KACF;AAED;;;;;;;AAOG;AACH,IAAA,MAAM,CACJ,GAAa,EACb,GAAM,EACN,GAAiD,EAAA;QAEjD,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KACnC;;;;;;;;;;;;;;AAiBD,IAAA,WAAW,CACT,GAAa;;AAEb,IAAA,GAAM,EACN,GAAwE,EAAA;QAExE,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAC3C;AAED,IAAA,oBAAoB,CAClB,GAAa;;AAEb,IAAA,GAAM,EACN,GAA+D,EAAA;QAE/D,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KACpD;AAED,IAAA,WAAW,CACT,GAAa;;AAEb,IAAA,GAAM,EACN,GAAiD,EAAA;QAEjD,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAC3C;AACF;;MC3EY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,GAAG,GAAG;AACZ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;AAC9B;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;AACpC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;AACpC;;AAEG;AACH,YAAA,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE;AACJ;;AAEG;gBACH,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,aAAA;SACF,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAKrC;IAHC,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KACxC;AACF;;MC9BY,aAAa,CAAA;IAExB,OAAO,GAAG,CAAC,CAAgC,EAAA;QACzC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACtE;IAED,OAAO,OAAO,CAAC,CAA8B,EAAA;AAC3C,QAAA,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAC1D;IAED,OAAO,eAAe,CAAC,IAAqB,EAAA;QAC1C,IAAI,GAAG,GAAgB,MAAM,CAAC,MAAM,CAClC,KAAK,CAAC,IAAI,CAAC,EAAE;AACX,YAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,YAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,YAAA,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AACzC,YAAA,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAClD,SAAA,CAAC,CAAA;AACJ,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SACzC;AAED,QAAA,OAAO,GAAG,CAAA;KACX;IAED,OAAO,QAAQ,CAAC,IAAiB,EAAA;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,YAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,YAAA,aAAa,EAAE,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,YAAA,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAChD,YAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,SAAA,CAAC,CAAA;KACH;IAED,OAAO,MAAM,CAAC,IAAiB,EAAA;QAC7B,IAAI,GAAG,GAAG,EAAE,CAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;AAC9D,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;AACzC,YAAA,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,CAAA;SAC/B;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACrB,YAAA,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;SACrB;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5B,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;SACvC;aAAM;AACL,YAAA,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAA;SAChE;AACD,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;KAClB;IAED,OAAO,KAAK,CAAC,IAAiB,EAAA;QAC5B,IAAI,GAAG,GAAG,EAAE,CAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;YACzC,GAAG,GAAG,IAAI,CAAA;SACX;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACrB,YAAA,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;SACrB;aAAM;YACL,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;SACvC;AACD,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;KAClB;IAED,OAAO,WAAW,CAAC,IAAiB,EAAA;QAClC,IAAI,GAAG,GAAG,EAAE,CAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;AAC9D,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;AACzC,YAAA,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,CAAA;SAC/B;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACrB,YAAA,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;SACrB;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5B,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAA;SACrE;aAAM;YACL,GAAG;gBACD,IAAI,CAAC,SAAS,GAAG,GAAG;oBACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG;AACvC,oBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAA;SACjD;AACD,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;KAClB;AACF;;MC7EY,eAAe,CAAA;AAA5B,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAA8C;YAC/C,MAAM,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC;SACjC,CAAA;AACD,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACvB,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AAClB,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;AAC3B,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACxB,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACxB,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;AAIzB,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;SAC1B,CAAA;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,wBAAwB,EAAE,CAAA;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KA+JrC;IA7JC,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CACf,CAAA;KACF;IAED,GAAG,CAAC,SAA8B,EAAE,EAAA;AAClC,QAAA,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;AAE5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,UAAU,EACV,aAAa,CAAC,GAAG,CAAC,CAAA;KACrB;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,SAAS,EACT,aAAa,CAAC,OAAO,CACtB,CAAA;KACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BE;AACF,IAAA,MAAM,CAAC,MAA8B,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,MAAM,EACN,aAAa,CAAC,GAAG,CAClB,CAAA;KACF;AAED,IAAA,MAAM,CAAC,MAAgB,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,MAAM,CACP,CAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEO,IAAA,WAAW,CAAC,MAA2B,EAAA;AAC7C,QAAA,IAAG,CAAC,MAAM,CAAC,MAAM,EAAE;AACjB,YAAA,MAAM,CAAC,MAAM,GAAG,EAAE,CAAA;SACnB;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AAClE,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;SAC9C;aAAM,IAAG,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;AACnD,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA;SAC5B;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAC1D,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAA;SACrC;AAED,QAAA,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE;AACtE,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAA;SACnC;KACF;AAEF;;ACpLa,MAAO,qBAAqB,CAAA;IAExC,OAAO,GAAG,CAAC,KAA4C,EAAA;QACrD,OAAO,CAAC,KAAK;AACX,cAAE,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AACtC,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,GAAG;AACvC,gBAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,gBAAA,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,gBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACnB,aAAA,CAAC,CAAC;cACD,SAAS,CAAA;KACd;AAEF;;MCbY,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;AAK7B;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;;;;;SAS9B,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAa5B;AAXC,IAAA,GAAG,CAAC,KAAkC,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACLC,qBAAqB,CAAC,GAAG,CAC1B,CAAA;KACF;AAED,IAAA,GAAG,CAAC,KAAkC,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC9C;AACF;;MC1CY,mBAAmB,CAAA;IAC9B,OAAO,GAAG,CAAC,CAA+C,EAAA;AACxD,QAAA,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAC1C;AACF;;MCDY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AAEkB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACrC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,mBAAmB,EAAE,CAAA;KAyDlD;IAvDC,OAAO,GAAG,CAAC,KAAwC,EAAA;QACjD,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACpG;IAED,OAAO,oCAAoC,CAAC,SAA8B,EAAA;QAExE,OAAO;AACL,YAAA,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,GAAG;AAChC,YAAA,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,YAAA,OAAO,EAAE,SAAS,CAAC,OAAO,KAAK,GAAG;AAClC,YAAA,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACvD,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,YAAA,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;YACzC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;AAC5C,YAAA,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;AACjD,YAAA,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;AACjD,YAAA,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACnD,YAAA,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;AAC7C,YAAA,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;AAC3C,YAAA,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;AACzC,YAAA,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;AAC/C,YAAA,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;AACvB,YAAA,aAAa,EAAE,SAAS,CAAC,aAAa,KAAK,GAAG;AAC9C,YAAA,aAAa,EAAE,SAAS,CAAC,aAAa,KAAK,GAAG;AAC9C,YAAA,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,YAAA,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;AACrD,YAAA,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;AACzB,YAAA,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;AACrC,YAAA,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;AAC7C,YAAA,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,YAAA,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;AAC/C,YAAA,OAAO,EAAE,SAAS,CAAC,OAAO,KAAK,GAAG;AAClC,YAAA,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;AACzC,YAAA,UAAU,EAAE,SAAS,CAAC,UAAU,KAAK,GAAG;AACxC,YAAA,eAAe,EAAE,SAAS,CAAC,eAAe,KAAK,GAAG;AAClD,YAAA,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;AAC7C,YAAA,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;AAC/C,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,YAAA,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,KAAK,GAAG;AACtD,YAAA,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;AAC7C,YAAA,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;AACjD,YAAA,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;AAC3C,YAAA,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACnD,YAAA,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACnD,YAAA,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;AACzC,YAAA,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;AACjD,YAAA,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,YAAA,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AAC5C,YAAA,MAAM,EAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAChC,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,YAAA,QAAQ,EAAE,SAAS,CAAC,QAAQ,KAAK,GAAG;AACpC,YAAA,MAAM,EAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;SACjC,CAAA;KACF;AACF;;AC5Da,MAAO,qBAAqB,CAAA;AAA1C,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;;;;;AASJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;;;;;;;;;;;SAW5B,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAS5B;AAPC,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CACpC,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,mBAAmB,CAAC,GAAG,CACxB,CAAA;KACF;AACF;;MCjCY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;;;;;AASJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;;;;;;;;;AASnB,YAAA,OAAO,EAAE;AACP;;AAEG;AACH,gBAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;AAK7B;;AAEG;AACH,gBAAA,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;;;;;;;;;AAS9B,aAAA;AACD,YAAA,KAAK,EAAE;;;;;;;;;AASL;;AAEG;AACH,gBAAA,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;;;;;;;;;;;AAW5B,aAAA;SACF,CAAA;AACe,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAA;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAA;AAEzC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;;;;;;;;;;KAgB9B;AAdC,IAAA,GAAG,CAAC,KAA0B,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;KAClE;AAYF;;MC7FY,wBAAwB,CAAA;IACnC,OAAO,MAAM,CAAC,CAAmB,EAAA;AAC/B,QAAA,QAAQ,CAAC,IAAI,IAAI,EAAC;KACnB;IAED,OAAO,OAAO,CAAC,CAA2C,EAAA;QACxD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,wBAAwB,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAC9F;IAED,OAAO,4BAA4B,CAAC,IAAgC,EAAA;AAClE,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AACzB,YAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,YAAA,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,YAAA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,YAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,SAAA,CAAC,CAAA;KACH;AACF;;MCtBY,wBAAwB,CAAA;IAEnC,OAAO,IAAI,CAAC,IAA8C,EAAA;QACxD,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,wBAAwB,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACpG;IAED,OAAO,cAAc,CAAC,IAA4C,EAAA;AAChE,QAAA,OAAO,CAAC,IAAI,IAAI,wBAAwB,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;KACxF;IAED,OAAO,4BAA4B,CAAC,IAAgC,EAAA;AAClE,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AACzB,YAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,YAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,SAAA,CAAC,CAAA;KACH;AACF;;MCLY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACkB,IAAM,CAAA,MAAA,GAAG,wBAAwB,CAAA;KAyIlD;IAvIC,OAAO,SAAS,CAAC,CAAmC,EAAA;AAClD,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,GAAG,SAAS,CAAA;KAC9D;IAED,OAAO,GAAG,CAAC,IAA0D,EAAA;AACnE,QAAA,OAAO,CAAC,IAAI,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;KAC7E;IAED,OAAO,GAAG,CAAkD,IAA0D,EAAA;QACpH,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AACvB,YAAA,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;cAC9C,SAAS,CAAA;KACd;IAED,OAAO,IAAI,CAAkD,IAA2D,EAAA;AACtH,QAAA,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;AACxB,cAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,kBAAkB,CAIzD,CAAC,CAAC,CAAC;cACH,SAAS,CAAA;KACd;IAED,OAAO,kBAAkB,CAA8E,IAAO,EAAA;QAC5G,IAAI,MAAM,GAAQ,EAAE,CAAA;AACpB,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAC3B;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACvC;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACvC;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACnC;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,GAAG,CAAA;SAC1C;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACrC;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACrC;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACzC;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SAC9C;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SACjD;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACzC;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SAC9C;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;SACrD;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;SAC1D;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACvC;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAC5C;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SAC1C;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACxC;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAClD;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SAC9C;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;SAC/C;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACrC;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAC5C;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACrC;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;SAC/C;AACD,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,KAAK,GAAG,CAAA;SAC9D;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SACzD;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACzC;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;SAC3E;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;SACvF;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,MAAM,CAAC,eAAe;AACpB,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA;SACpF;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,KAAK,GAAG,CAAA;SAC1D;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,MAAM,CAAC,IAAI,GAAG,MAAM,CAAqB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;gBAC1D,OAAO;AACL,oBAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACf,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAA;AACH,aAAC,CAAC,CAAA;SACH;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KACnC;AACF;;MC/IY,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ;;AAEG;YACH,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;AACrC;;AAEG;YACH,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC;AAC1D;;AAEG;YACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC;SACjE,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAwB5B;AAtBC,IAAA,iBAAiB,CAAC,SAA8B,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAC1B,SAAS,CACV,CAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAqC,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,cAAc,EACvB,KAAK,EACL,wBAAwB,CAAC,cAAc,CACxC,CAAA;KACF;AAED,IAAA,IAAI,CAAC,KAAsC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EACb,KAAK,EACL,wBAAwB,CAAC,IAAI,CAC9B,CAAA;KACF;AACF;;MCZY,oBAAoB,CAAA;AAAjC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;AAC1B;;AAEG;AACH,YAAA,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;AAClC;;AAEG;AACH,YAAA,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;;;;;;;AAOpC;;AAEG;AACH,YAAA,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AAC9B;;AAEG;AACH,YAAA,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;AACpC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AAyB1B;;AAEG;AACH,YAAA,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;AACtC;;AAEG;AACH,YAAA,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;;;;;;;AAOtC;;AAEG;AACH,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;AAqB5B;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;AAChC,YAAA,MAAM,EAAE;AACN;;AAEG;gBACH,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;AACrC;;AAEG;gBACH,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC;AAC1D;;AAEG;gBACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC;AACjE,aAAA;SACF,CAAA;AAEe,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAA;AAExC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KA8IrC;AA5IC,IAAA,GAAG,CAAuC,KAAwC,EAAA;AAChF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAKtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,kBAAkB,CAAC,GAAG,CACvB,CAAA;KACF;;IAGD,MAAM,CACJ,IAA4E,EAC5E,YAAsG,EAAA;QAGtG,IAAI,QAAQ,GAAiE,EAAE,CAAA;QAC/E,IAAI,MAAM,GAAwB,IAAI,CAAA;AACtC,QAAA,IAAI,YAAY,CAAC,MAAM,EAAE;AACvB,YAAA,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;AACpC,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;gBAC/B,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;;oBAE1B,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;iBACvC;aACF;;AAED,YAAA,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;gBACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAItB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAA;aACxD;SACF;AAED,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;KACtC;AAED,IAAA,GAAG,CAA0E,KAA6C,EAAA;QACxH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,GACL,kBAAkB,CAAC,GAAoB,EACxC,CAAA;KACF;;;IAID,IAAI,CACF,QAA6C,EAAE,EAAA;QAE/C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,EACb,KAAK,GACL,kBAAkB,CAAC,IAAqB,EACzC,CAAA;KACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE;IAEF,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,SAAS,CACnB,CAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAgC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAGtB,IAAI,CAAC,GAAG,CAAC,SAAS,EAClB,KAAK,EACL,kBAAkB,CAAC,SAAS,CAC7B,CAAA;KACF;AAEF;;MCvSY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,oBAAoB,EAAE,CAAA;KAClD;AAAA;;MCCY,8BAA8B,CAAA;AAA3C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAyB5B;IAvBC,OAAO,CACL,QAAoC,EAAE,EAAA;QAEtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAClC,gBAAA,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;aACrB;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAClC,KAAK,CAAC,MAAM,GAAG;AACb,oBAAA,UAAU,EAAE;AACV,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,QAAQ,EAAE,CAAC;AACZ,qBAAA;iBACF,CAAA;aACF;SACF;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAC3B,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAC/B,KAAK,EACL,wBAAwB,CAAC,OAAO,CACjC,CAAA;KACF;AAEF;;MCfY,+BAA+B,CAAA;;AAQ1C,IAAA,WAAA,CAAoB,sBAA8C,EAAA;QAA9C,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AANjD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,8BAA8B,EAAE,CAAA;AAC/C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;AACvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;KAIzD;AAED,IAAA,aAAa,CAAC,QAAkB,EAAE,SAAe,EAAE,OAAa,EAAA;AAC9D,QAAA,MAAM,KAAK,GAA+B;AACxC,YAAA,KAAK,EAAE;AACL,gBAAA,EAAE,EAAE,MAAM;AACX,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE;AAClD,oBAAA,YAAY,EAAE,OAAO;iBACtB,CAAC;AACF,gBAAA,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE;AAChD,oBAAA,YAAY,EAAE,OAAO;iBACtB,CAAC;AACH,aAAA;SACF,CAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;KACpC;;AAGD,IAAA,eAAe,CAAC,GAAa,EAAA;;AAE3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAErB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAG;YACV,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC9D,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,MAAM,EAAE;AACN,wBAAA,UAAU,EAAE;AACV,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,CAAC;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;aACF,CAAA;SACF,CAAC,CACH,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,IAAG;AACN,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAA;AAClD,gBAAA,OAAO,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;aAC7C;AACD,YAAA,OAAO,SAAS,CAAA;SACjB,CAAC,CACH,CAAA;KACF;AAED,IAAA,sCAAsC,CAAC,KAAe,EAAE,WAAA,GAAuC,SAAS,EAAA;AACtG,QAAA,IAAI,OAAO,GAAwC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAG;AACpF,YAAA,OAAO,EAAC,CAAC,CAAC,GAAG,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAC,CAAA;SACvE,CAAC,CAAC,CAAA;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC;aACrB,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,IAAG;AACX,YAAA,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACtD,gBAAA,OAAO,EAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AACxC,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,SAAS,EAAE;AAC7D,gBAAA,IAAI,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;AAClE,gBAAA,IAAI,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;AACrE,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,iBAAiB;qBACnC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;qBACd,GAAG,CAAC,CAAC,IAAG;oBACP,OAAO;wBACL,CAAC,CAAC,GAAG;AACH,4BAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;AACtE,4BAAA,KAAK,EAAE;AACL,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,QAAQ,EAAE,CAAC;AACZ,6BAAA;AACF,yBAAA;qBACF,CAAA;iBACF,CAAC,CAAC,CACN,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,IAAG;AACN,oBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;wBACjB,MAAM,GAAG,GAA4B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;AACjE,wBAAA,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC3D,4BAAA,OAAO,EAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AACxC,yBAAC,CAAC,CAAA;wBACF,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;qBACxD;AACD,oBAAA,OAAO,SAAS,CAAA;iBACjB,CAAC,CACH,CAAA;aACF;AACD,YAAA,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;SACtB,CAAC,CACH,CAAA;KACJ;AAED;;;;;AAKG;AACH,IAAA,mCAAmC,CAAC,MAAc,EAAE,WAAA,GAAuC,SAAS,EAAA;;;;;;;AAOlG,QAAA,OAAO,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAClF,QAAQ,CAAC,IAAI,IAAG;YACd,IAAI,IAAI,EAAE;AACR,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CACzC;AACE,oBAAA,EAAE,EAAE,MAAM;AACV,oBAAA,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACjB,iBAAA,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;;;;;;;;gBAQb,GAAG,CAAC,CAAC,IAAG;oBACN,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAA;iBACjE,CAAC,CACH,CAAA;aACF;AACD,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;SACrB,CAAC,CACH,CAAA;;;KAIF;AAED;;;;;AAKG;AACH,IAAA,uBAAuB,CAAC,MAAc,EAAE,WAAA,GAAuC,SAAS,EAAA;;;;;;;;AAQtF,QAAA,OAAO,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAClF,QAAQ,CAAC,IAAI,IAAG;YACd,IAAI,IAAI,EAAE;AACR,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CACzC;AACE,oBAAA,EAAE,EAAE,MAAM;AACV,oBAAA,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACjB,iBAAA,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;;;;;;;;gBAQb,GAAG,CAAC,CAAC,IAAG;oBACN,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;iBAChD,CAAC,CACH,CAAA;aACF;AACD,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;SACrB,CAAC,CACH,CAAA;;;;KAIF;AAED;;;;;AAKG;AACH,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACpD,QAAQ,CAAC,eAAe,IAAG;YACzB,IAAI,eAAe,EAAE;AACnB,gBAAA,OAAO,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAChE,QAAQ,CAAC,OAAO,IAAG;oBACjB,IAAI,OAAO,EAAE;wBACX,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;qBACpD;yBAAM;wBACL,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAA;qBAC/F;iBACF,CAAC,CAAC,CAAA;aACN;iBAAM;gBACL,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;aACzE;SACF,CAAC,CAAC,CAAA;KACN;AAED;;;;;AAKG;AACH,IAAA,MAAM,CAAC,KAAoC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACpD,QAAQ,CAAC,CAAC,eAAe,KAAI;YAC3B,IAAI,eAAe,EAAE;AACnB,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1D,QAAQ,CAAC,OAAO,IAAG;oBACjB,IAAI,OAAO,EAAE;wBACX,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;qBACvD;oBACD,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAA;iBACjG,CAAC,CAAC,CAAA;aACN;YACD,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;SACzE,CAAC,CAAC,CAAA;KACN;;IAGD,eAAe,CAAC,MAAc,EAAE,MAAc,EAAA;;;;;;;;;;;AAY5C,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;AACjD,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC,GAAG,EAAE,CAAA;;;;;;;;;;;;;;;;;KAiBT;AAED;;;;;;;;;AASG;AACH,IAAA,eAAe,CAAC,KAA4B,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACpD,QAAQ,CAAC,OAAO,IAAG;YACjB,IAAI,OAAO,EAAE;gBACX,OAAO,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;aAChE;YACD,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;SACzE,CAAC,CACH,CAAA;KACF;AAGD;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACpD,QAAQ,CAAC,eAAe,IAAG;YACzB,IAAI,eAAe,EAAE;AACnB,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1D,QAAQ,CAAC,OAAO,IAAG;oBACjB,IAAI,OAAO,EAAE;wBACX,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;qBACvD;yBAAM;wBACL,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAA;qBAChG;iBACF,CAAC,CAAC,CAAA;aACN;iBAAM;gBACL,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;aACzE;SACF,CAAC,CACH,CAAA;KACF;IAEO,eAAe,CAAC,MAAc,EAAE,MAAc,EAAA;QACpD,OAAO,IAAI,CAAC,eAAe,CACzB;AACE,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA,CAAC,CAAA;KACL;AACF;;MC5UY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;AAKd;;AAEG;AACH,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC;;;;;AAKxC;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC;AAChC;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACtC;;AAEG;AACH,YAAA,eAAe,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC;AACxD;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;SACvC,CAAA;AACgB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,8BAA8B,EAAE,CAAA;AAChD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAA;AAEpD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAoCrC;IAlCC,OAAO,CACL,QAAoC,EAAE,EAAA;QAEtC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;KACpC;AAED,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA6C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC1F;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAoC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA4C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KAC5F;AAED;;;;;;AAMG;AACH,IAAA,eAAe,CAAC,KAA4B,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA0C,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;KACnG;AAED,IAAA,MAAM,CAAC,KAAiC,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAyC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACzF;AAEF;;MC7EY,wBAAwB,CAAA;IAEnC,OAAO,OAAO,CAAC,KAA2C,EAAA;QACxD,OAAO,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,wBAAwB,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACtG;IAED,OAAO,GAAG,CAAC,KAAyC,EAAA;AAClD,QAAA,OAAO,KAAK,GAAG,wBAAwB,CAAC,8BAA8B,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;KAC1F;IAED,OAAO,8BAA8B,CAAC,IAA4B,EAAA;AAChE,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO;AACL,gBAAA,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;oBAC7D,OAAO;AACL,wBAAA,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;AACrC,wBAAA,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AACzB,wBAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;wBACnB,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAA;AACH,iBAAC,CAAC;AACF,gBAAA,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,gBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,gBAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAA;SACF;aAAM;YACL,OAAO;AACL,gBAAA,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,gBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,gBAAA,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAA;SACF;KACF;AACF;;MCjCY,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAA;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAiDrC;AA/CC,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CACpB,CAAA;KACF;AAED,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CACvB,CAAA;KACF;AAED,IAAA,GAAG,CAAC,KAAqC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EACnB,wBAAwB,CAAC,GAAG,CAC7B,CAAA;KACF;AAED,IAAA,OAAO,CAAC,KAAsC,GAAA;AAC5C,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,KAAK,EAAE;AACL,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA;AACF,KAAA,EAAA;AACC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EACvB,wBAAwB,CAAC,OAAO,CACjC,CAAA;KACF;AAED,IAAA,GAAG,CAAC,KAAkC,EAAA;AACpC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAC/B,QAAQ,CAAC,CAAC,IAAG;gBACX,IAAG,CAAC,EAAE;AACJ,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CACvB,CAAC,GAAG,EAAE,CAAA;iBACR;AACD,gBAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;aACjB,CAAC,CACH,CAAA;SACF;aAAM;AACL,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;SACjB;KACF;AACF;;MC/DY,mBAAmB,CAAA;IAE9B,OAAO,OAAO,CAAC,CAAkC,EAAA;QAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAC9C;AAEF;;MCJY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACrC,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KASrC;IAPC,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,SAAS,EACT,mBAAmB,CAAC,OAAO,CAC5B,CAAA;KACF;AACF;;MCdY,sBAAsB,CAAA;IAEjC,OAAO,OAAO,CAAC,KAAwD,EAAA;AACrE,QAAA,IAAG,KAAK,IAAI,KAAK,CAAC,MAAM,EAAC;AACvB,YAAA,OAAO,KAAK,CAAC,GAAG,CAAE,CAAC,IAAG;gBAAG,OAAO;AAC9B,oBAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,oBAAA,SAAS,EAAE,YAAY;oBACvB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,oBAAA,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG;AAC5B,oBAAA,SAAS,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG;oBAC7B,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,YAAY,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG;AAChC,oBAAA,YAAY,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG;AAChC,oBAAA,aAAa,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG;oBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAA;AAAA,aAAC,CAAC,CAAA;SACJ;AACD,QAAA,OAAO,SAAS,CAAA;KACjB;AAEF;;MCtBY,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAG;AACd;;AAEG;YACH,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC;;;;;;;;;;;;;AAalD;;AAEG;YACH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;;;;;;;;;SAS/C,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KASrC;IAPC,OAAO,CAAC,QAA8C,EAAE,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,KAAK,EACL,sBAAsB,CAAC,OAAO,CAC/B,CAAA;KACF;AACF;;MC/CY,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,4BAA4B,EAAE,CAAA;KAC/D;AAAA;;MCCY,eAAe,CAAA;AAA5B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAA;AAC1C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,0BAA0B,EAAE,CAAA;AAC9C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAA;AACtC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAA;KACjD;AAAA;;MCPY,iBAAiB,CAAA;IAE5B,OAAO,GAAG,CAAC,CAAkC,EAAA;AAC3C,QAAA,OAAO,CAAC,CAAC,IAAI;AACX,YAAA,GAAG,CAAC;YACJ,GAAG;AACD,gBAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,gBAAA,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACpB,gBAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,gBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,gBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,gBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,gBAAA,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACjC,gBAAA,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI;AACzD,gBAAA,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,gBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,gBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,gBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AACnC,aAAA;SACF,GAAG,SAAS,CAAA;KACd;AACF;;MCnBY,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;AAKJ;;AAEG;YACH,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;AAiBzB;;AAEG;AACH,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;SAqB1C,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAiB5B;AAfC,IAAA,GAAG,CAAC,KAA8B,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,iBAAiB,CAAC,GAAG,CACtB,CAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAsC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,EACL,iBAAiB,CAAC,GAAG,CACtB,CAAA;KACF;AACF;;MCrEY,iBAAiB,CAAA;IAE5B,OAAO,yBAAyB,CAAC,GAAgD,EAAA;QAC/E,MAAM,MAAM,GAAgC,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC,CAAA;AAClE,QAAA,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACnB,YAAA,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CACd,MAAM,CAAC,MAAM,CACX,CAAC,EACD;AACE,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACnC,oBAAA,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI;AAC3D,oBAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,oBAAA,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,oBAAA,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;AACvC,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,oBAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,iBAAA,CACF,CACF,CAAA;aACF;AAAM,iBAAA,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;gBACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,MAAM,CACX,CAAC,EACD;AACE,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACnC,oBAAA,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI;AAC3D,oBAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,oBAAA,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,oBAAA,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;AACvC,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,oBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AACnC,iBAAA,CACF,CACF,CAAA;aACF;SACF;AACD,QAAA,OAAO,MAAM,CAAA;KACd;IAED,OAAO,eAAe,CAAC,MAAW,EAAA;QAChC,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAA;KACvD;IAED,OAAO,iBAAiB,CAAC,MAAW,EAAA;QAClC,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAA;KACzD;IAGD,OAAO,kBAAkB,CAAC,KAAoC,EAAA;QAC5D,OAAO,CAAC,KAAK;AACX,cAAE;AACA,gBAAA,GAAG,KAAK;gBACR,GAAG;AACD,oBAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AACnC,oBAAA,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AACtC,oBAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AACnC,oBAAA,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;AACvC,oBAAA,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AACtC,oBAAA,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACnB,oBAAA,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;AACjC,oBAAA,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;AAC3C,oBAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AACnC,oBAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AACnC,oBAAA,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AACvC,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;AACF;;AC/EK,MAAO,mBAAoB,SAAQ,iBAAiB,CAAA;IAExD,OAAO,WAAW,CAAC,GAA4D,EAAA;QAC7E,OAAO,CAAC,GAAG,IAAI,iBAAiB,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC,CAAA;KACzF;AACF;;MCeY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG;AACd,YAAA,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;AACvC,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAC3B,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;AAC3C,YAAA,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC;AAC9C,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC,YAAA,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjC,YAAA,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;AAC1C,YAAA,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;AAC3C,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;AACnC,YAAA,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;AACzC,YAAA,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC;SACrD,CAAA;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAyJ5B;AAvJC;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA8B,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,KAAyC,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,YAAY,EACrB,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAC,KAAmC,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,KAAK,CACN,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAsC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAgC,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,eAAe,CAAC,KAAwC,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,eAAe,EACxB,KAAK,CACN,CAAA;KACF;AAED;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,SAAS,CACnB,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,UAAU,CAAC,KAAuC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,KAAK,EACL,mBAAmB,CAAC,kBAAkB,CACvC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAoC,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,EACL,mBAAmB,CAAC,WAAW,CAChC,CAAA;KACF;AAEF;;AC5LK,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;IAEzD,OAAO,WAAW,CAAC,GAA4D,EAAA;QAC7E,OAAO,CAAC,GAAG,IAAI,iBAAiB,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC,CAAA;KACzF;IAED,OAAO,SAAS,CAAC,KAAoC,EAAA;AACnD,QAAA,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;KACzE;AACF;;MCJY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,GAAG,GAAG;YACd,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;YACxC,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC;YAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;;YAElC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;YACtC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;YACzC,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC;;YAE5C,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;YAC1C,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;;SAE1C,CAAA;AAEgB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,cAAc,EAAE,CAAA;KAwB7C;IAtBC,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CACvB,CAAA;KACF;AAED,IAAA,WAAW,CAAC,KAA8B,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,CACN,CAAA;KACF;;AAGD,IAAA,SAAS,CAAC,KAAyC,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KACpE;AAED,IAAA,UAAU,CAAC,KAA6B,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;KACnE;AAEF;;ACzCD;;;;AAIG;MACU,+BAA+B,CAAA;AAA5C,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;KAiD7D;IA/CC,SAAS,GAAA;AACP,QAAA,IAAI,GAAG,GAAG,cAAc,CAAC,OAAO,CAAmC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC/G,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;SACf;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,IAAG;gBACN,IAAI,CAAC,EAAE;AACL,oBAAA,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;iBACvE;AACH,aAAC,CAAC,EACF,WAAW,CAAC,CAAC,CAAC,CACf,CAAA;SACF;KACF;AAED;;;;;;;;;;;;;;;;;AAiBG;AAEH,IAAA,WAAW,CAAC,KAA8B,EAAA;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;KACjD;;AAGD,IAAA,SAAS,CAAC,KAA6C,EAAA;QACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;KAC/C;AAED,IAAA,UAAU,CAAC,KAA6B,EAAA;QACtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KAChD;AACF;;MC5CY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,GAAG,GAAG;YACd,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;YACxC,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC;YAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;;YAElC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;YACtC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;YACzC,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC;;YAE5C,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;YAC1C,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC;;SAE1C,CAAA;AAEM,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,+BAA+B,EAAE,CAAA;AAChD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAgD5B;IA9CC,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAoB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;KAChE;AAED;;;;;;;;;;;;;;;;;AAiBG;AAEH,IAAA,WAAW,CAAC,KAA8B,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,WAAW,EACpB,KAAK,EACL,oBAAoB,CAAC,WAAW,CACjC,CAAA;KACF;AAED,IAAA,SAAS,CAAC,KAA6C,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,SAAS,EAClB,KAAK,EACL,oBAAoB,CAAC,SAAS,CAC/B,CAAA;KACF;AAED,IAAA,UAAU,CAAC,KAA6B,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,KAAK,EACL,iBAAiB,CAAC,GAAG,CACtB,CAAA;KACF;AACF;;MChFY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AAEkB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAA;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAA;KAoFxD;;AAjFC,IAAA,mBAAmB,CAAC,IAGnB,EAAA;AACC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CACtCC,UAAQ,CAAC,UAAU,IAAG;YACpB,IAAI,UAAU,EAAE;AACd,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC5B;oBACE,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAClC,oBAAA,IAAI,EAAE;wBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,qBAAA;AACD,oBAAA,kBAAkB,EAAE,IAAI;iBACzB,CAAC,CAAC,GAAG,EAAE,CAAA;aACX;YACD,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAA;SACjF,CAAC,CACH,CAAA;KACJ;AAED,IAAA,+BAA+B,CAAC,UAAkB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,IAAI,CACnDA,UAAQ,CAAC,CAAC,IAAG;YACX,IAAI,CAAC,EAAE;AACL,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,GAAG,EAAE,CAAA;aACjD;AACD,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;SACrB,CAAC,CACH,CAAA;KAEF;IAED,iBAAiB,GAAA;;;;;;;;AAUf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CACxCA,UAAQ,CAAC,CAAC,IAAG;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;AACb,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,GAAG,EAAE,CAAA;aAClD;AACD,YAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;SACrB,CAAC,CACH,CAAA;KACF;AAED;;;AAGG;AACH,IAAA,wBAAwB,CAAC,UAAkB,EAAA;QACzC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAClCA,UAAQ,CAAC,CAAC,IAAG;YACX,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AACnB,oBAAA,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;oBACpD,IAAI,IAAI,EAAE;AACR,wBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;qBAChB;iBACF;aACF;AACD,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CACxCA,UAAQ,CAAC,CAAC,IAAG;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;oBACb,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,EAAC,CAAC,CAAC,GAAG,EAAE,CAAA;iBAC1E;gBACD,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAA;aAC/F,CAAC,CACH,CAAA;SACA,CACF,CAAC,CAAA;KACL;AAEF;;AC1FK,MAAO,2BAA4B,SAAQ,iBAAiB,CAAA;IAEhE,OAAO,GAAG,CAAC,CAA4C,EAAA;AACrD,QAAA,OAAO,CAAC,CAAC,IAAI,2BAA2B,CAAC,wDAAwD,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACjH;IAED,OAAO,wDAAwD,CAAC,CAAgC,EAAA;AAC9F,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AACtB,YAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,YAAA,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,YAAA,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7B,YAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,YAAA,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/B,YAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,SAAA,CAAC,CAAA;KACH;AACF;;MCfY,6BAA6B,CAAA;AAA1C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAQ5B;AANC,IAAA,GAAG,CAAC,KAAyC,EAAA;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAC/B,KAAK,EACL,2BAA2B,CAAC,GAAG,CAAC,CAAA;KACnC;AACF;;MCVY,eAAe,CAAA;AAA5B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,wBAAwB,EAAE,CAAA;AAC1C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAA;AAChC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,6BAA6B,EAAE,CAAA;KACrE;AAAA;;MCNY,gCAAgC,CAAA;AAA7C,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAUrC;AARC;;AAEG;AACH,IAAA,KAAK,CAAC,KAAuC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,CAC5D,CAAA;KACF;AAEF;;MCXY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;AAEkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,gCAAgC,EAAE,CAAA;AAChD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;KAqD3D;AAnDC;;;;;;;;;AASG;IACH,qBAAqB,CACnB,EAAU,EACV,iBAAyC,EACzC,iBAAyC,EACzC,cAAwB,EAAE,EAAA;AAE1B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CACpC;AACE,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;;;;AAIhE,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;AAC/B,gBAAA,GAAG,iBAAiB;AACrB,aAAA;SACF,CACF,CAAC,GAAG,EAAE,CAAC,IAAI,CACV,QAAQ,CAAC,CAAC,IAAG;YACX,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;oBAC/D,IAAI,OAAO,GAAkC,EAAE,CAAA;AAC/C,oBAAA,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;wBAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAC9B;AACE,4BAAA,WAAW,EAAE,UAAU;4BACvB,WAAW,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,4BAAA,UAAU,EAAE,iBAAiB;AAC9B,yBAAA,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;qBACZ;AACD,oBAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;iBACzB;qBAAM;AACL,oBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;iBAChB;aACF;YACD,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAA;SAC1E,CAAC,CACH,CAAA;KACJ;AACF;;MCxDa,oBAAoB,CAAA;IAEhC,OAAO,GAAG,CAAC,IAAuC,EAAA;QAChD,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAChG;IAED,OAAO,4BAA4B,CAAC,IAAyB,EAAA;QAC3D,OAAO;AACL,YAAA,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AACpC,YAAA,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,GAAG;AAC7C,YAAA,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,KAAK,GAAG;AACnD,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,GAAG;AAC3C,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,GAAG;AACnC,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AACjC,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,GAAG;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,GAAG;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;AACnC,YAAA,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YACtC,YAAY,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5F,gBAAgB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACpG,iBAAiB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtG,mBAAmB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC1G,oBAAoB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC5G,oBAAoB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC5G,iBAAiB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtG,gBAAgB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACpG,YAAY,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5F,oBAAoB,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC5G,eAAe,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,eAAe,CAAC;YAClG,cAAc,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,cAAc,CAAC;YAChG,SAAS,EAAE,oBAAoB,CAAC,sCAAsC,CAAC,IAAI,CAAC,SAAS,CAAC;YACtF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;SACzD,CAAA;KACF;IAED,OAAO,sCAAsC,CAAC,IAA4C,EAAA;QACxF,IAAG,IAAI,EAAE;YACP,OAAO;AACL,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,GAAG;AACvC,gBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,gBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,GAAG;AACzC,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AACjC,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,GAAG;AAC/B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,GAAG;AACrC,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,GAAG;AACvC,gBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,SAAS,EAAE,IAAI,CAAC,eAAe;AAC/B,gBAAA,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC5C,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,YAAY;gBACpC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/B,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,KAAK,GAAG;AAChC,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAA;SACF;aAAM;AACL,YAAA,OAAO,SAAS,CAAA;SACjB;KACF;AACF;;MCrEY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ;;AAEG;YACH,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;;;AAI5B;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;;;;;;;;;;;;;SAa7B,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAU5B;AARC,IAAA,GAAG,CAAC,KAAiC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC9C;IAED,GAAG,CAAC,QAAiC,EAAE,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAA;KACxE;AAEF;;MCzCY,yBAAyB,CAAA;AAAtC,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAAG;YACJ,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC;SAChC,CAAA;KACF;AAAA;;MCHY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,yBAAyB,EAAE,CAAA;KAC9D;AAAA;;MCAY,sBAAsB,CAAA;IAEjC,OAAO,OAAO,CAAC,IAA0D,EAAA;AACvE,QAAA,OAAO,CAAC,IAAI,IAAI,sBAAsB,CAAC,kDAAkD,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;KAC5G;IAED,OAAO,GAAG,CAAC,IAAqD,EAAA;QAC9D,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,sBAAsB,CAAC,kDAAkD,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACxH;IAED,OAAO,kDAAkD,CAAC,IAAuC,EAAA;QAC/F,OAAO;AACL,YAAA,GAAG,IAAI;AACP,YAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,YAAA,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,YAAA,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,YAAA,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,YAAA,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;AACxC,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,YAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,YAAA,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1C,YAAA,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;YAC5D,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;AACxD,YAAA,kBAAkB,EAAE,CAAC,IAAI,CAAC,kBAAkB;kBACxC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AACxD,kBAAE,IAAI;YACR,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC;YACpD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;AAC5D,YAAA,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC9C,YAAA,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,GAAG;AAC7B,YAAA,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,GAAG;AACvC,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,GAAG;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC5E,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI;gBACtD,GAAG,IAAI,CAAC,KAAK;gBACb,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC;gBAC7C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;aACrD,GAAG,IAAI;AACR,YAAA,aAAa,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAG;gBAC/D,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAC,CAAA;AAChE,aAAC,CAAC,GAAG,EAAE;SACR,CAAA;KACF;AACF;;MCxCY,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,GAAG,GAAG;;AAGZ,YAAA,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;;AAG9B,YAAA,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;;AAGpC,YAAA,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;;gBAG5C,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;aAC7C,CAAC;;AAGF,YAAA,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;;AAGvC,YAAA,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;SACrC,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;;;;;;;;;QA2BpC,IAAG,CAAA,GAAA,GAAG,MAAM,CAAC,MAAM;;QAEjB,CAAC,KAAmC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CACxD,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,sBAAsB,CAAC,GAAG,CAC3B,EACD;;YAEE,OAAO,EAAE,CAAC,KAA0C,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EACpB,KAAK,EACL,sBAAsB,CAAC,GAAG,CAC3B;AACF,SAAA,CACF,CAAC;KAkBH;;AAzDC,IAAA,GAAG,CAAC,KAAmC,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,CACN,CAAA;KACF;;AAGD,IAAA,MAAM,CAAC,KAAsC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,CACN,CAAA;KACF;;AA6BD,IAAA,MAAM,CAAC,KAAsC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,CACN,CAAA;KACF;;AAGD,IAAA,OAAO,CAAC,KAAuC,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAChB,KAAK,EACL,sBAAsB,CAAC,OAAO,CAC/B,CAAA;KACF;AACF;;MC9FY,wBAAwB,CAAA;IAEnC,OAAO,GAAG,CAAC,IAAiD,EAAA;QAC1D,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,wBAAwB,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACtH;IAED,OAAO,8CAA8C,CAAC,IAAmC,EAAA;QACvF,OAAO;AACL,YAAA,GAAG,IAAI;AACP,YAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClB,YAAA,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,YAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;YAC5D,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC7D,CAAA;KACF;AACF;;MCXY,8BAA8B,CAAA;AAA3C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,GAAG,GAAG;;AAGZ,YAAA,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC;;AAEhC,YAAA,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;;AAGtC,YAAA,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC;;AAGhC,YAAA,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;SACvC,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAkCrC;;AA/BC,IAAA,GAAG,CAAC,KAAqC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,wBAAwB,CAAC,GAAG,CAC7B,CAAA;KACF;;AAGD,IAAA,GAAG,CAAC,KAAqC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,CACN,CAAA;KACF;;AAGD,IAAA,MAAM,CAAC,KAAwC,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,CACN,CAAA;KACF;;AAGD,IAAA,MAAM,CAAC,KAAwC,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,CACN,CAAA;KACF;AACF;;MCpDY,6BAA6B,CAAA;IAExC,OAAO,GAAG,CAAC,IAAoD,EAAA;AAC7D,QAAA,OAAO,CAAC,IAAI;AACV,YAAA;AACE,gBAAA,GAAG,IAAI;AACP,gBAAA,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AACpC,gBAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,gBAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,GAAG;AAC/C,gBAAA,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,GAAG;AAC7C,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AACjC,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AACjC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,KAAK,GAAG;gBACnD,eAAe,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK;AACzF,gBAAA,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAC3C,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAChE,CACF;AACD,gBAAA,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1C,gBAAA,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AAC7C,aAAA;cACC,SAAS,CAAA;KACd;AAEF;;MC1BY,mCAAmC,CAAA;AAAhD,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AAE5B,QAAA,IAAA,CAAA,GAAG,GAAG;;YAEZ,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;;YAExC,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;SACzC,CAAA;KAmBF;;IAhBC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,SAAS,EACT,6BAA6B,CAAC,GAAG,CAClC,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA0C,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC9C;AACF;;MC/BY,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,mCAAmC,EAAE,CAAA;KACrE;AAAA;;MCAY,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;;AAGE;;;;;;;;;;;;;;;;;;;;;;;AAuBE;AACc,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,4BAA4B,EAAE,CAAA;AAC1C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,8BAA8B,EAAE,CAAA;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,2BAA2B,EAAE,CAAA;KAEzD;AAAA;;MChCY,mBAAmB,CAAA;IAE9B,OAAO,GAAG,CAAC,KAA6C,EAAA;QACtD,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,mBAAmB,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAC7G;IAED,OAAO,wCAAwC,CAAC,KAA+B,EAAA;AAC7E,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,YAAA,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACnB,YAAA,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AACtC,YAAA,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AACtC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;AAC3B,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,GAAG;AAC7B,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;AAC3B,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;AAC3B,YAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AACnC,YAAA,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/B,YAAA,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACxC,YAAA,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1C,YAAA,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;AAC5B,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;AACjC,SAAA,CAAC,CAAA;KACH;AACF;;MCrBY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;;;;;;;;AAYJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;SAsB1B,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KASrC;IAPC,GAAG,CAAC,QAAmC,EAAE,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,mBAAmB,CAAC,GAAG,CACxB,CAAA;KACF;AACF;;MCrDY,eAAe,CAAA;IAC1B,OAAO,IAAI,CAAC,CAAqB,EAAA;AAC/B,QAAA,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KACnC;AACF;;MCFY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;SACvB,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KASrC;IAPC,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EACb,SAAS,EACT,eAAe,CAAC,IAAI,CACrB,CAAA;KACF;AACF;;MCjBY,mBAAmB,CAAA;IAC9B,OAAO,GAAG,CAAC,IAAyC,EAAA;AAClD,QAAA,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAG;AAC7B,YAAA,IAAI,GAAG,CAAC,MAAM,EAAE;gBACd,OAAO;AACL,oBAAA,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,oBAAA,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5B,oBAAA,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAA;aACF;iBAAM;gBACL,OAAO;AACL,oBAAA,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,oBAAA,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAA;aACF;AACH,SAAC,CAAC,GAAG,SAAS,CAAA;KACf;AACF;;MChBY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;AACxB,YAAA,GAAG,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;AAC3B,YAAA,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;AACxB,YAAA,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;SAC/B,CAAA;AACS,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAqB9B;IAnBC,GAAG,CAAC,QAAmC,EAAE,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,mBAAmB,CAAC,GAAG,CAAC,CAAA;KAC3B;AAED,IAAA,GAAG,CAAC,KAAgC,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC9C;AAED,IAAA,GAAG,CAAC,EAAU,EAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,CAAC,CAAA;KACjD;AAED,IAAA,MAAM,CAAC,KAA8B,EAAA;QACnC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACjD;AACF;;MC9BY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AAE3B,QAAA,IAAA,CAAA,GAAG,GAAG;YACJ,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;YAC9B,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YAChC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;SACrC,CAAA;KAgBF;AAdC,IAAA,IAAI,CAAC,KAAiC,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAiD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAC/F;AAED,IAAA,MAAM,CAAC,KAAmC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA+C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KAC/F;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,KAAgC,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA8C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC3F;AACF;;MCLY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACvB,YAAA,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AACjC,YAAA,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC;AACzC,YAAA,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC;AACvC,YAAA,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC;AACvC,YAAA,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC;AAC3B,YAAA,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;SAC1B,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AACX,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAA;KAyEnD;AAvEC;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAwC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACrF;AAED;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA4B,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAwC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KACrF;AAED;;;;AAIG;AACH,IAAA,QAAQ,CAAC,KAAiC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA+C,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;KACjG;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,KAAqC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAmD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;KACzG;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAAoC,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAkD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;KACvG;AAED;;;;AAIG;AACH,IAAA,KAAK,CAAC,KAA8B,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA4C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;KAC3F;AAED;;;;AAIG;AACH,IAAA,IAAI,CAAC,KAA6B,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA2C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KACzF;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAC,KAA+B,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA6C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;KAClG;AACF;;MC3GY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAK5B;IAHC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;KACpE;AACF;;MCRY,sBAAsB,CAAA;IAEjC,OAAO,IAAI,CAAC,KAA6C,EAAA;QACvD,OAAO,CAAC,KAAK;AACX,cAAE;AACA,gBAAA,GAAG,KAAK;gBACR,GAAG;AACD,oBAAA,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;AACpD,oBAAA,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK;AAClF,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;AACF;;MCPY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAS5B;AAPC,IAAA,IAAI,CAAC,KAAkC,EAAA;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAC7B,KAAK,EACL,sBAAsB,CAAC,IAAI,CAC5B,CAAA;KACF;AACF;;MChBY,iBAAiB,CAAA;IAC5B,OAAO,GAAG,CAAC,KAAyC,EAAA;QAClD,OAAO,CAAC,KAAK;AACX,cAAE;AACA,gBAAA,GAAG,KAAK;gBACR,GAAG;AACD,oBAAA,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACnB,oBAAA,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACzB,oBAAA,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AACvC,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;AACF;;MCXY,yBAAyB,CAAA;IACpC,OAAO,GAAG,CAAC,KAAiD,EAAA;QAC1D,OAAO,CAAC,KAAK;AACX,cAAE;AACA,gBAAA,GAAG,KAAK;gBACR,GAAG;oBACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAC1B,GAAG,KACD;AACE,wBAAA,GAAG,GAAG;wBACN,GAAG;AACD,4BAAA,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,4BAAA,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM;AACjB,kCAAE;AACA,oCAAA,GAAG,GAAG;oCACN,GAAG;AACD,wCAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,GAAG;AACrC,wCAAA,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,GAAG;AACxC,wCAAA,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,GAAG;AAC1C,qCAAA;AACF,iCAAA;AACD,kCAAE,IAAI;AACT,yBAAA;AACF,qBAAA,CACF,CACF;AACF,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;AACF;;MC5BY,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAS5B;AAPC,IAAA,GAAG,CAAC,KAAsC,EAAA;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAC/B,KAAK,EACL,yBAAyB,CAAC,GAAG,CAC9B,CAAA;KACF;AACF;;ACdK,SAAU,uBAAuB,CAAC,KAAY,EAAA;AAClD,IAAA,MAAM,QAAQ,GAAG,CAAC,KAA+B,KAAI;AAEnD;;;;AAIG;AACH,QAAA,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EACrB,KAAK,CACN,CAAA;AACH,KAAC,CAAA;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,GAAG,GAAG,MAAK;AAClB,QAAA,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAC5B,CAAA;AACH,KAAC,CAAA;AAED,IAAA,OAAO,QAAQ,CAAA;AACjB;;MCfa,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AAEX,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,wBAAwB,EAAE,CAAA;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,2BAA2B,EAAE,CAAA;AAC5C,QAAA,IAAA,CAAA,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAsC3D;AApCC;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA8B,EAAA;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,KAAK,EACL,iBAAiB,CAAC,GAAG,CACtB,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,KAAiC,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EACvB,KAAK,CACN,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAkC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EACxB,KAAK,CACN,CAAA;KACF;AACF;;AC1DK,SAAU,UAAU,CAAC,OAAmD,EAAA;AAC5E,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;AAEjC,QAAA,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;AACzC,YAAA,IAAI;gBACF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;aAClC;YAAC,OAAO,GAAG,EAAE;AACZ,gBAAA,MAAM,SAAS,GAAG;oBAChB,OAAO,EAAE,cAAc,MAAM,CAAC,WAAW,CAAC,IAAI,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA;oBAC/D,IAAI;AACJ,oBAAA,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AACvD,oBAAA,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK;iBAC5D,CAAA;gBAED,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;gBAErC,IAAI,OAAO,EAAE,OAAO;AAAE,oBAAA,MAAM,GAAG,CAAA;gBAC/B,OAAO,OAAO,EAAE,YAAY,CAAA;aAC7B;AACH,SAAC,CAAA;AAED,QAAA,OAAO,UAAU,CAAA;AACnB,KAAC,CAAA;AACH,CAAC;AAED;AACM,SAAU,WAAW,CAAC,IAAuE,EAAA;IACjG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO;AACL,QAAA,IAAI,CAAC,OAAO;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,WAAA,EAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;AAC1D,QAAA,IAAI,CAAC,KAAK,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,CAAA,CAAE,GAAG,EAAE;AAC7C,QAAA,CAAA,mBAAA,EAAsB,UAAU,CAAE,CAAA;AACnC,KAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd;;MC5Ba,iBAAiB,CAAA;AAGrB,IAAP,OAAO,GAAG,CAAC,KAAiD,EAAA;AAExD,QAAA,OAAO,KAAK;cACR,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;AAChB,gBAAA,GAAG,CAAC;gBACJ,GAAG;AACD,oBAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,oBAAA,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;oBACzB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AACvB,0BAAE;4BACA,GAAG,CAAC,CAAC,IAAI;4BACT,GAAG;gCACD,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gCACpB,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,KAAK;gCACzF,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK;gCACnF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;AACtD,6BAAA;AACF,yBAAA;AACD,0BAAE,SAAS;AACb,oBAAA,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,iBAAiB,CAAC,0CAA0C,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,0BAAE;4BACA,GAAG,CAAC,CAAC,IAAI;4BACT,GAAG;gCACD,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gCACpB,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,6BAAA;AACF,yBAAA;0BACC,CAAC,CAAC,IAAI;AACX,iBAAA;AACF,aAAA,CAAC,CAAC;cACD,SAAS,CAAA;KAEhB;AAGM,IAAP,OAAO,IAAI,CAAC,KAAgD,EAAA;QAC1D,OAAO,CAAC,KAAK;AACX,cAAE;gBACA,GAAG,KAAK,EAAE,GAAG;oBACX,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;wBAC3B,GAAG,CAAC,EAAE,GAAG;AACP,4BAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,4BAAA,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAClC,4BAAA,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAC,EAAC,GAAG,SAAS;4BAC1F,OAAO,EAAE,EAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,EAAC;AAC1D,4BAAA,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,EAAC,GAAG,SAAS;AACtF,4BAAA,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;AACX,kCAAE;oCACA,GAAG,CAAC,CAAC,IAAI;oCACT,GAAG;wCACD,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK;wCAC7D,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,SAAS;wCAC/F,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK;AACtF,qCAAA;AACF,iCAAA;AACD,kCAAE,SAAS;AACd,yBAAA;AACF,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;IAED,OAAO,0CAA0C,CAAC,IAAyF,EAAA;QACzI,OAAO,IAAI,IAAI,IAAI,CAAA;KACpB;AACF,CAAA;AAlEQ,UAAA,CAAA;AADN,IAAA,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAiC7B,CAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,CAAA,CAAA;AAGM,UAAA,CAAA;AADN,IAAA,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AA2B7B,CAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,IAAA,CAAA;;MC3DU,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AAE3B,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;AACzB,YAAA,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3B,YAAA,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3B,YAAA,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;AACzB,YAAA,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;SAChC,CAAA;KA6CF;AA3CC;;AAEG;AACH,IAAA,GAAG,CAAC,KAAoC,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAEtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,EACL,iBAAiB,CAAC,GAAG,CACtB,CAAA;KACF;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,KAAqC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EACb,KAAK,EACL,iBAAiB,CAAC,IAAI,CACvB,CAAA;KACF;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,KAAuC,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAqD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACrG;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,KAAuC,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAqD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAClG;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,KAAuC,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAqD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KACrG;AACF;;MCpEY,eAAe,CAAA;IAE1B,OAAO,GAAG,CAAC,KAAuC,EAAA;QAChD,OAAO,CAAC,KAAK;AACX,cAAE;AACA,gBAAA,GAAG,KAAK;gBACR,GAAG;AACD,oBAAA,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;AACpD,oBAAA,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK;AACjF,oBAAA,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK;AACrF,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;AACF;;MCbY,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAY5B;AAVC,IAAA,KAAK,CAAC,KAAwC,EAAA;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EACpC,KAAK,CACN,CAAA;KACF;IAED,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;KAC/E;AACF;;MCXY,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AAEX,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,2BAA2B,EAAE,CAAA;KAgBzD;AAdC;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;KAC9E;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,KAA6B,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA2C,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;KACvG;AAEF;;MCtBY,mBAAmB,CAAA;;IAE9B,OAAO,GAAG,CAAC,KAAkD,EAAA;QAC3D,OAAO,KAAK;YACV,KAAK,CAAC,GAAG,CAAC,CAAC,IACT,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CACzC;cACC,SAAS,CAAA;KACd;AACF;;MCNY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAU5B;;AAPC,IAAA,GAAG,CAAC,KAAgC,EAAA;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EACzB,KAAK,EACL,mBAAmB,CAAC,GAAG,CACxB,CAAA;KACF;AACF;;MCVY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AAEX,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAA;KAavD;AAZC;;;;AAIG;AACH,IAAA,GAAG,CAAC,KAA4B,EAAA;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,KAAK,EACL,eAAe,CAAC,GAAG,CACpB,CAAA;KACF;AACF;;MClBY,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACtC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAA;KAC/C;AAAA;;MCTY,YAAY,CAAA;IACvB,OAAO,IAAI,CAAC,KAAqC,EAAA;QAC/C,OAAO,CAAC,KAAK;cACT,EAAC,GAAI,KAAK,EAAE,GAAI,EAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,KAAK,GAAG,EAAC,EAAC;cACtF,SAAS,CAAA;KACd;AACF;;MCNY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAWrC;AATC;;AAEG;IACH,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,YAAY,CAAC,IAAI,CAClB,CAAA;KACF;AACF;;MCdY,gBAAgB,CAAA;IAC3B,OAAO,MAAM,CAAC,MAA4C,EAAA;QACxD,IAAI,MAAM,EAAE;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC/C,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,gBAAA,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS;AACzE,gBAAA,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS;gBAC5E,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;AAChD,sBAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACtF,UAAU,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;AACtD,sBAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5F,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAA;SACJ;AAED,QAAA,OAAO,SAAS,CAAA;KACjB;AACF;;MCvBY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;AACqB,QAAA,IAAA,CAAA,GAAG,GAAG;;;;;AAKvB;;AAEG;AACH,YAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAqC5B,CAAA;AAES,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAS9B;IAPC,MAAM,CAAC,QAA+C,SAAS,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EACf,KAAK,EACL,gBAAgB,CAAC,MAAM,CACxB,CAAA;KACF;AACF;;MCvDY,sCAAsC,CAAA;AAAnD,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAKrC;AAHC,IAAA,GAAG,CAAC,KAAiD,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;KAC3E;AACF;;MCRY,uDAAuD,CAAA;IAElE,OAAO,IAAI,CAAC,IAAkE,EAAA;AAC5E,QAAA,OAAO,CAAC,IAAI,IAAI;AACd,YAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9B,GAAG,SAAS,CAAA;KACd;AACF;;MCJY,oDAAoD,CAAA;AAAjE,IAAA,WAAA,GAAA;AACS,QAAA,IAAA,CAAA,GAAG,GAAG;AACX,YAAA,IAAI,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC;SAC1E,CAAA;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAQrC;AANC,IAAA,IAAI,CAAC,KAAwD,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EACpB,uDAAuD,CAAC,IAAI,CAC7D,CAAA;KACF;AACF;;MClBY,2CAA2C,CAAA;AAAxD,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,oDAAoD,EAAE,CAAA;KACvF;AAAA;;ACLD;AACA;MAEa,mCAAmC,CAAA;AAAhD,IAAA,WAAA,GAAA;;;AAIkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,2CAA2C,EAAE,CAAA;KAC7E;AAAA;;MCNY,2BAA2B,CAAA;AAAxC,IAAA,WAAA,GAAA;AACS,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,sCAAsC,EAAE,CAAA;AAC1D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,mCAAmC,EAAE,CAAA;KAC5D;AAAA;;MCJY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AACS,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAA;KAE/C;AAAA;;MCEY,8BAA8B,CAAA;IACzC,OAAO,GAAG,CAAC,KAAsD,EAAA;QAC/D,OAAO,KAAK;AACV,YAAA;AACE,gBAAA,GAAG,KAAK;gBACR,GAAG;AACD,oBAAA,QAAQ,EACN;AACE,wBAAA,MAAM,EAAE;AACN,4BAAA,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG;gCAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;gCAC1C,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AACvC,6BAAA;AACF,yBAAA;AACD,wBAAA,OAAO,EAAE;AACP,4BAAA,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG;gCAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gCAC3C,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACxC,6BAAA;AACF,yBAAA;AACF,qBAAA;oBACH,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MACrF,CAAC,GAAG;AACF,wBAAA;AACE,4BAAA,GAAG,GAAG;AACN,4BAAA,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,4BAAA,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACiB,yBAAA;AACxC,qBAAA,CAAC,CAAC,CAAuD;AAC7D,iBAAA;AACF,aAAA;cACC,SAAS,CAAA;KACd;AACF;;MCjCY,aAAa,CAAA;IACxB,OAAO,GAAG,CAAC,KAA2C,EAAA;AACpD,QAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;AAC1D,QAAA,IAAG,KAAK,EAAE,cAAc,EAAE;YAExB,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAQ,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,MAC3L,CAAC,GAAG;AACF,gBAAA;AACE,oBAAA,GAAG,GAAG;AACN,oBAAA,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACT,iBAAA;aACxC,CAAC,CAAC,CAAuD,CAAE,CAAA;SAC/D;AACD,QAAA,OAAO,KAAK,GAAG,EAAC,GAAI,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAC,EAAyB,GAAG,SAAS,CAAA;KAC9I;AACF;;MCnBY,0BAA0B,CAAA;IAErC,OAAO,GAAG,CAAC,KAAkD,EAAA;QAC3D,OAAO,KAAK,GAAG;AACb,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAA,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACvB,SAAA;cACE,SAAS,CAAA;KACb;AACF;;MCPY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ;;AAEG;AACH,YAAA,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;SAC5B,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAU5B;AATe,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAA,EAAA;IAEvD,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,SAAS,EACT,aAAa,CAAC,GAAG,CAClB,CAAA;KACF;;;MCfU,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,GAAG,GAAG;AACJ,YAAA,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;SAC7B,CAAA;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAM5B;IAJC,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAA;KAC5G;AACF;;MCXY,gCAAgC,CAAA;AAA7C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;KAS5B;IAPC,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EACpC,SAAS,EACT,8BAA8B,CAAC,GAAG,CACnC,CAAA;KACF;AACF;;MCfY,eAAe,CAAA;AAA5B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,OAAO,GAAG;YACxB,MAAM,EAAE,IAAI,4BAA4B,EAAE;SAC3C,CAAA;AACe,QAAA,IAAA,CAAA,WAAW,GAAG;YAC5B,MAAM,EAAE,IAAI,gCAAgC,EAAE;SAC/C,CAAA;KACF;AAAA;;MCQY,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAA;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAA;AACxC,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,aAAa,EAAE,CAAA;AACxB,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAClC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,wBAAwB,EAAE,CAAA;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;AAC5B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;;;;;;;;;;;;;;KAmBpC;IAjBQ,OAAO,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAEC,WAAS,CAAC,OAAO,CAAC,CAAA;KACzD;AAeF;;MCtDY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,6BAA6B,EAAE,CAAA;KAC/D;AAAA;;MCAY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,sBAAsB,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAA;AACxC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAA;KACnD;AAAA;;MCNY,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAA;KACtD;AAAA;;MCDY,kBAAkB,CAAA;IAE7B,OAAO,GAAG,CAAC,KAAyC,EAAA;AAClD,QAAA,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAC3C;AACE,YAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnB,YAAA,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,YAAA,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,SAAA,CACF,CACoB,GAAG,SAAS,CAAA;KACpC;AAEF;;MCZY,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,wBAAwB,EAAE,CAAA;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,wBAAwB,EAAE,CAAA;AAC5C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAA;KAClD;AAAA;;MCNY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAA;KAChD;AAAA;;MCMY,SAAS,CAAA;AACpB,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,aAAa,CAAC;KACtB;AAED,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,mBAAmB,CAAC;KAC5B;AAED,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,eAAe,CAAC;KACxB;AAED,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,cAAc,CAAC;KACvB;AAED,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAED,IAAA,IAAW,GAAG,GAAA;AACZ,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,aAAa,CAAC;KACtB;AAED,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,cAAc,CAAC;KACvB;AACF;;AC9CD;;AAEG;;ACFH;;AAEG;;;;"}