qa-notes 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/types/index.ts","../src/api/client.ts","../src/context/NotesKitProvider.tsx","../src/hooks/useNotes.ts","../src/hooks/useFolders.ts","../src/components/SearchBar.tsx","../src/components/NoteCard.tsx","../node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../node_modules/state-local/lib/es/state-local.js","../node_modules/@monaco-editor/loader/lib/es/config/index.js","../node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../node_modules/@monaco-editor/loader/lib/es/validators/index.js","../node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../node_modules/@monaco-editor/loader/lib/es/loader/index.js","../node_modules/@monaco-editor/react/dist/index.mjs","../src/components/NoteEditor.tsx","../src/components/ConfirmDialog.tsx","../src/components/Pagination.tsx","../src/components/SortBar.tsx","../src/components/FolderPanel.tsx","../src/components/FolderPickerDialog.tsx","../src/components/NotesWidget.tsx"],"sourcesContent":["/* ── Notes ── */\r\n\r\nexport interface Note {\r\n id: string\r\n title: string\r\n content: string\r\n folderId: string | null\r\n folderName: string | null\r\n createdAt: string\r\n updatedAt: string\r\n isSystem: boolean\r\n}\r\n\r\nexport interface NoteCreatePayload {\r\n title?: string\r\n content: string\r\n folderId?: string | null\r\n}\r\n\r\nexport interface NoteUpdatePayload {\r\n title?: string\r\n content: string\r\n}\r\n\r\nexport interface NoteMovePayload {\r\n folderId: string | null\r\n}\r\n\r\nexport interface NoteSearchParams {\r\n search?: string\r\n folderId?: string\r\n rootOnly?: boolean\r\n from?: string\r\n to?: string\r\n page?: number\r\n size?: number\r\n sort?: string\r\n}\r\n\r\n/* ── Folders ── */\r\n\r\nexport interface Folder {\r\n id: string\r\n name: string\r\n parentId: string | null\r\n childCount: number\r\n noteCount: number\r\n createdAt: string\r\n updatedAt: string\r\n isSystem: boolean\r\n}\r\n\r\nexport interface FolderTreeNode {\r\n id: string\r\n name: string\r\n parentId: string | null\r\n noteCount: number\r\n isSystem: boolean\r\n children: FolderTreeNode[]\r\n}\r\n\r\nexport interface FolderCreatePayload {\r\n name: string\r\n parentId?: string | null\r\n}\r\n\r\nexport interface FolderUpdatePayload {\r\n name: string\r\n parentId?: string | null\r\n}\r\n\r\n/* ── Pagination (Spring Boot 3+ Page format) ── */\r\n\r\nexport interface Page<T> {\r\n content: T[]\r\n page: {\r\n size: number\r\n number: number\r\n totalElements: number\r\n totalPages: number\r\n }\r\n}\r\n\r\n/* ── Theme ── */\r\n\r\nexport type NotesKitTheme = \"dark\" | \"light\"\r\n\r\n/* ── Config ── */\r\n\r\nexport interface NotesKitConfig {\r\n /** Base URL of the notes API, e.g. \"https://api.example.com/api\" */\r\n apiBaseUrl: string\r\n\r\n /** Color theme. Default: 'dark' */\r\n theme?: NotesKitTheme\r\n\r\n /**\r\n * Auth strategy — pick ONE:\r\n *\r\n * 1. Static token string → \"my-jwt-token\"\r\n * 2. Async getter → () => Promise<string> (called before every request)\r\n *\r\n * The resolved value is sent as `Authorization: Bearer <token>`.\r\n * Omit if your API uses cookie-based auth (credentials: 'include' is set automatically).\r\n */\r\n getToken?: string | (() => string | Promise<string>)\r\n\r\n /** Extra headers merged into every request. */\r\n headers?: Record<string, string>\r\n\r\n /** Called on any API error. Useful for global toasts / logging. */\r\n onError?: (error: NotesKitError) => void\r\n}\r\n\r\n/* ── Errors ── */\r\n\r\nexport class NotesKitError extends Error {\r\n status: number\r\n body: unknown\r\n\r\n constructor(message: string, status: number, body?: unknown) {\r\n super(message)\r\n this.name = \"NotesKitError\"\r\n this.status = status\r\n this.body = body\r\n }\r\n}\r\n","import {\r\n Note,\r\n NoteCreatePayload,\r\n NoteUpdatePayload,\r\n NoteMovePayload,\r\n NoteSearchParams,\r\n Page,\r\n Folder,\r\n FolderTreeNode,\r\n FolderCreatePayload,\r\n FolderUpdatePayload,\r\n NotesKitConfig,\r\n NotesKitError,\r\n} from '../types';\r\n\r\nexport class NotesApi {\r\n private config: NotesKitConfig;\r\n\r\n constructor(config: NotesKitConfig) {\r\n this.config = config;\r\n }\r\n\r\n /* ── helpers ── */\r\n\r\n private async resolveToken(): Promise<string | null> {\r\n const { getToken } = this.config;\r\n if (!getToken) return null;\r\n if (typeof getToken === 'string') return getToken;\r\n return getToken();\r\n }\r\n\r\n private async request<T>(path: string, init: RequestInit = {}): Promise<T> {\r\n const token = await this.resolveToken();\r\n const url = `${this.config.apiBaseUrl.replace(/\\/+$/, '')}${path}`;\r\n\r\n const headers: Record<string, string> = {\r\n 'Content-Type': 'application/json',\r\n ...this.config.headers,\r\n };\r\n\r\n if (token) {\r\n headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n\r\n const res = await fetch(url, {\r\n ...init,\r\n headers: { ...headers, ...(init.headers as Record<string, string>) },\r\n credentials: token ? 'same-origin' : 'include',\r\n });\r\n\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => null);\r\n const err = new NotesKitError(\r\n body?.message ?? `Request failed: ${res.status}`,\r\n res.status,\r\n body,\r\n );\r\n this.config.onError?.(err);\r\n throw err;\r\n }\r\n\r\n if (res.status === 204) return undefined as T;\r\n return res.json();\r\n }\r\n\r\n /* ── Notes ── */\r\n\r\n async listNotes(params?: NoteSearchParams): Promise<Page<Note>> {\r\n const qs = new URLSearchParams();\r\n if (params?.search) qs.set('search', params.search);\r\n if (params?.folderId) qs.set('folderId', params.folderId);\r\n if (params?.rootOnly != null) qs.set('rootOnly', String(params.rootOnly));\r\n if (params?.from) qs.set('from', params.from);\r\n if (params?.to) qs.set('to', params.to);\r\n if (params?.page != null) qs.set('page', String(params.page));\r\n if (params?.size != null) qs.set('size', String(params.size));\r\n if (params?.sort) qs.set('sort', params.sort);\r\n const query = qs.toString();\r\n return this.request(`/notes${query ? `?${query}` : ''}`);\r\n }\r\n\r\n async suggest(prefix: string, limit = 5): Promise<string[]> {\r\n const qs = new URLSearchParams({ prefix, limit: String(limit) });\r\n return this.request(`/notes/suggest?${qs}`);\r\n }\r\n\r\n async getNote(id: string): Promise<Note> {\r\n return this.request(`/notes/${id}`);\r\n }\r\n\r\n async createNote(payload: NoteCreatePayload): Promise<Note> {\r\n return this.request('/notes', {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n });\r\n }\r\n\r\n async updateNote(id: string, payload: NoteUpdatePayload): Promise<Note> {\r\n return this.request(`/notes/${id}`, {\r\n method: 'PUT',\r\n body: JSON.stringify(payload),\r\n });\r\n }\r\n\r\n async moveNote(id: string, payload: NoteMovePayload): Promise<Note> {\r\n return this.request(`/notes/${id}/move`, {\r\n method: 'PUT',\r\n body: JSON.stringify(payload),\r\n });\r\n }\r\n\r\n async cloneNote(id: string, payload: NoteMovePayload): Promise<Note> {\r\n return this.request(`/notes/${id}/clone`, {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n });\r\n }\r\n\r\n async deleteNote(id: string): Promise<void> {\r\n return this.request(`/notes/${id}`, { method: 'DELETE' });\r\n }\r\n\r\n /* ── Folders ── */\r\n\r\n async listFolders(): Promise<Folder[]> {\r\n return this.request('/folders');\r\n }\r\n\r\n async getFolderTree(): Promise<FolderTreeNode[]> {\r\n return this.request('/folders/tree');\r\n }\r\n\r\n async getFolder(id: string): Promise<Folder> {\r\n return this.request(`/folders/${id}`);\r\n }\r\n\r\n async getFolderChildren(id: string): Promise<Folder[]> {\r\n return this.request(`/folders/${id}/children`);\r\n }\r\n\r\n async createFolder(payload: FolderCreatePayload): Promise<Folder> {\r\n return this.request('/folders', {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n });\r\n }\r\n\r\n async updateFolder(id: string, payload: FolderUpdatePayload): Promise<Folder> {\r\n return this.request(`/folders/${id}`, {\r\n method: 'PUT',\r\n body: JSON.stringify(payload),\r\n });\r\n }\r\n\r\n async deleteFolder(id: string): Promise<void> {\r\n return this.request(`/folders/${id}`, { method: 'DELETE' });\r\n }\r\n}\r\n","import React, { createContext, useContext, useMemo } from \"react\"\r\nimport { NotesApi } from \"../api/client\"\r\nimport { NotesKitConfig, NotesKitTheme } from \"../types\"\r\n\r\ninterface NotesKitContextValue {\r\n api: NotesApi\r\n config: NotesKitConfig\r\n theme: NotesKitTheme\r\n durationFetch?: number\r\n}\r\n\r\nconst NotesKitContext = createContext<NotesKitContextValue | null>(null)\r\n\r\nexport function useNotesKitContext(): NotesKitContextValue {\r\n const ctx = useContext(NotesKitContext)\r\n if (!ctx) {\r\n throw new Error(\r\n \"[@nurtelecom-qa/qa-notes] useNotesKitContext must be used inside <NotesKitProvider>\",\r\n )\r\n }\r\n return ctx\r\n}\r\n\r\nexport interface NotesKitProviderProps {\r\n config: NotesKitConfig\r\n /** Polling interval in milliseconds. When set, notes and folders are refreshed silently at this interval. */\r\n durationFetch?: number\r\n children: React.ReactNode\r\n}\r\n\r\nexport function NotesKitProvider({\r\n config,\r\n durationFetch,\r\n children,\r\n}: NotesKitProviderProps) {\r\n const resolvedTheme = config.theme ?? \"dark\"\r\n\r\n const value = useMemo<NotesKitContextValue>(\r\n () => ({\r\n api: new NotesApi(config),\r\n config,\r\n theme: resolvedTheme,\r\n durationFetch,\r\n }),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [config.apiBaseUrl, config.getToken, resolvedTheme, durationFetch],\r\n )\r\n\r\n return (\r\n <NotesKitContext.Provider value={value}>\r\n {children}\r\n </NotesKitContext.Provider>\r\n )\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useNotesKitContext } from '../context/NotesKitProvider';\r\nimport {\r\n Note,\r\n NoteCreatePayload,\r\n NoteUpdatePayload,\r\n NoteMovePayload,\r\n NoteSearchParams,\r\n} from '../types';\r\n\r\nexport interface UseNotesReturn {\r\n notes: Note[];\r\n totalElements: number;\r\n totalPages: number;\r\n currentPage: number;\r\n loading: boolean;\r\n error: Error | null;\r\n params: NoteSearchParams;\r\n fetch: (override?: Partial<NoteSearchParams>) => Promise<void>;\r\n create: (payload: NoteCreatePayload) => Promise<Note>;\r\n update: (id: string, payload: NoteUpdatePayload) => Promise<Note>;\r\n move: (id: string, payload: NoteMovePayload) => Promise<Note>;\r\n clone: (id: string, payload: NoteMovePayload) => Promise<Note>;\r\n remove: (id: string) => Promise<void>;\r\n setParams: (p: Partial<NoteSearchParams>) => void;\r\n goToPage: (page: number) => void;\r\n}\r\n\r\nexport function useNotes(initial?: NoteSearchParams): UseNotesReturn {\r\n const { api } = useNotesKitContext();\r\n\r\n const [notes, setNotes] = useState<Note[]>([]);\r\n const [totalElements, setTotalElements] = useState(0);\r\n const [totalPages, setTotalPages] = useState(0);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState<Error | null>(null);\r\n const [params, setParamsState] = useState<NoteSearchParams>(initial ?? {});\r\n\r\n const paramsRef = useRef(params);\r\n paramsRef.current = params;\r\n\r\n const currentPage = params.page ?? 0;\r\n\r\n const fetchNotes = useCallback(\r\n async (override?: Partial<NoteSearchParams>) => {\r\n const merged = { ...paramsRef.current, ...override };\r\n if (override) setParamsState(merged);\r\n\r\n setLoading(true);\r\n setError(null);\r\n try {\r\n const res = await api.listNotes(merged);\r\n setNotes(res.content);\r\n setTotalElements(res.page.totalElements);\r\n setTotalPages(res.page.totalPages);\r\n } catch (e) {\r\n setError(e instanceof Error ? e : new Error(String(e)));\r\n } finally {\r\n setLoading(false);\r\n }\r\n },\r\n [api],\r\n );\r\n\r\n const create = useCallback(\r\n async (payload: NoteCreatePayload) => {\r\n const note = await api.createNote(payload);\r\n setNotes((prev) => [note, ...prev]);\r\n setTotalElements((t) => t + 1);\r\n return note;\r\n },\r\n [api],\r\n );\r\n\r\n const update = useCallback(\r\n async (id: string, payload: NoteUpdatePayload) => {\r\n const updated = await api.updateNote(id, payload);\r\n setNotes((prev) => prev.map((n) => (n.id === id ? updated : n)));\r\n return updated;\r\n },\r\n [api],\r\n );\r\n\r\n const move = useCallback(\r\n async (id: string, payload: NoteMovePayload) => {\r\n const moved = await api.moveNote(id, payload);\r\n setNotes((prev) => prev.map((n) => (n.id === id ? moved : n)));\r\n return moved;\r\n },\r\n [api],\r\n );\r\n\r\n const clone = useCallback(\r\n async (id: string, payload: NoteMovePayload) => {\r\n const cloned = await api.cloneNote(id, payload);\r\n return cloned;\r\n },\r\n [api],\r\n );\r\n\r\n const remove = useCallback(\r\n async (id: string) => {\r\n await api.deleteNote(id);\r\n setNotes((prev) => prev.filter((n) => n.id !== id));\r\n setTotalElements((t) => t - 1);\r\n },\r\n [api],\r\n );\r\n\r\n const setParams = useCallback((p: Partial<NoteSearchParams>) => {\r\n setParamsState((prev) => ({ ...prev, ...p }));\r\n }, []);\r\n\r\n const goToPage = useCallback((page: number) => {\r\n setParamsState((prev) => ({ ...prev, page }));\r\n }, []);\r\n\r\n useEffect(() => {\r\n fetchNotes();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [params.search, params.folderId, params.rootOnly, params.from, params.to, params.page, params.size, params.sort]);\r\n\r\n const { durationFetch } = useNotesKitContext();\r\n\r\n useEffect(() => {\r\n if (!durationFetch) return;\r\n const id = setInterval(() => {\r\n api.listNotes(paramsRef.current).then((res) => {\r\n setNotes(res.content);\r\n setTotalElements(res.page.totalElements);\r\n setTotalPages(res.page.totalPages);\r\n }).catch(() => { /* silent — polling errors don't override UI state */ });\r\n }, durationFetch);\r\n return () => clearInterval(id);\r\n }, [api, durationFetch]);\r\n\r\n return { notes, totalElements, totalPages, currentPage, loading, error, params, fetch: fetchNotes, create, update, move, clone, remove, setParams, goToPage };\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { useNotesKitContext } from '../context/NotesKitProvider';\r\nimport {\r\n Folder,\r\n FolderTreeNode,\r\n FolderCreatePayload,\r\n FolderUpdatePayload,\r\n} from '../types';\r\n\r\nexport interface UseFoldersReturn {\r\n folders: Folder[];\r\n tree: FolderTreeNode[];\r\n loading: boolean;\r\n error: Error | null;\r\n fetchFolders: () => Promise<void>;\r\n fetchTree: () => Promise<void>;\r\n getFolder: (id: string) => Promise<Folder>;\r\n getChildren: (id: string) => Promise<Folder[]>;\r\n create: (payload: FolderCreatePayload) => Promise<Folder>;\r\n update: (id: string, payload: FolderUpdatePayload) => Promise<Folder>;\r\n remove: (id: string) => Promise<void>;\r\n}\r\n\r\nexport function useFolders(): UseFoldersReturn {\r\n const { api } = useNotesKitContext();\r\n\r\n const [folders, setFolders] = useState<Folder[]>([]);\r\n const [tree, setTree] = useState<FolderTreeNode[]>([]);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState<Error | null>(null);\r\n\r\n const fetchFolders = useCallback(async () => {\r\n setLoading(true);\r\n setError(null);\r\n try {\r\n const res = await api.listFolders();\r\n setFolders(res);\r\n } catch (e) {\r\n setError(e instanceof Error ? e : new Error(String(e)));\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [api]);\r\n\r\n const fetchTree = useCallback(async () => {\r\n setLoading(true);\r\n setError(null);\r\n try {\r\n const res = await api.getFolderTree();\r\n setTree(res);\r\n } catch (e) {\r\n setError(e instanceof Error ? e : new Error(String(e)));\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [api]);\r\n\r\n const getFolder = useCallback(\r\n async (id: string) => api.getFolder(id),\r\n [api],\r\n );\r\n\r\n const getChildren = useCallback(\r\n async (id: string) => api.getFolderChildren(id),\r\n [api],\r\n );\r\n\r\n const create = useCallback(\r\n async (payload: FolderCreatePayload) => {\r\n const folder = await api.createFolder(payload);\r\n setFolders((prev) => [...prev, folder]);\r\n return folder;\r\n },\r\n [api],\r\n );\r\n\r\n const update = useCallback(\r\n async (id: string, payload: FolderUpdatePayload) => {\r\n const updated = await api.updateFolder(id, payload);\r\n setFolders((prev) => prev.map((f) => (f.id === id ? updated : f)));\r\n return updated;\r\n },\r\n [api],\r\n );\r\n\r\n const remove = useCallback(\r\n async (id: string) => {\r\n await api.deleteFolder(id);\r\n setFolders((prev) => prev.filter((f) => f.id !== id));\r\n },\r\n [api],\r\n );\r\n\r\n useEffect(() => {\r\n fetchFolders();\r\n fetchTree();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const { durationFetch } = useNotesKitContext();\r\n\r\n useEffect(() => {\r\n if (!durationFetch) return;\r\n const id = setInterval(() => {\r\n api.listFolders().then((res) => setFolders(res)).catch(() => {});\r\n api.getFolderTree().then((res) => setTree(res)).catch(() => {});\r\n }, durationFetch);\r\n return () => clearInterval(id);\r\n }, [api, durationFetch]);\r\n\r\n return { folders, tree, loading, error, fetchFolders, fetchTree, getFolder, getChildren, create, update, remove };\r\n}\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useNotesKitContext } from '../context/NotesKitProvider';\r\n\r\ninterface SearchBarProps {\r\n value: string;\r\n onChange: (q: string) => void;\r\n placeholder?: string;\r\n}\r\n\r\nexport function SearchBar({ value, onChange, placeholder = 'Найти заметку…' }: SearchBarProps) {\r\n const { api } = useNotesKitContext();\r\n const [local, setLocal] = useState(value);\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [showSuggestions, setShowSuggestions] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState(-1);\r\n const searchTimerRef = useRef<ReturnType<typeof setTimeout>>();\r\n const suggestTimerRef = useRef<ReturnType<typeof setTimeout>>();\r\n const wrapRef = useRef<HTMLDivElement>(null);\r\n\r\n // Close on outside click\r\n useEffect(() => {\r\n const handler = (e: MouseEvent) => {\r\n if (wrapRef.current && !wrapRef.current.contains(e.target as Node)) {\r\n setShowSuggestions(false);\r\n }\r\n };\r\n document.addEventListener('mousedown', handler);\r\n return () => document.removeEventListener('mousedown', handler);\r\n }, []);\r\n\r\n const suggestSeqRef = useRef(0);\r\n\r\n const fetchSuggestions = useCallback(\r\n (text: string) => {\r\n clearTimeout(suggestTimerRef.current);\r\n\r\n const words = text.trim().split(/\\s+/);\r\n const lastWord = words[words.length - 1] ?? '';\r\n if (lastWord.length < 2) {\r\n suggestSeqRef.current++;\r\n setSuggestions([]);\r\n setShowSuggestions(false);\r\n return;\r\n }\r\n\r\n const seq = ++suggestSeqRef.current;\r\n suggestTimerRef.current = setTimeout(async () => {\r\n try {\r\n const result = await api.suggest(lastWord, 5);\r\n if (seq !== suggestSeqRef.current) return;\r\n setSuggestions(result);\r\n setShowSuggestions(result.length > 0);\r\n setActiveIndex(-1);\r\n } catch {\r\n if (seq !== suggestSeqRef.current) return;\r\n setSuggestions([]);\r\n setShowSuggestions(false);\r\n }\r\n }, 200);\r\n },\r\n [api],\r\n );\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const v = e.target.value;\r\n setLocal(v);\r\n fetchSuggestions(v);\r\n\r\n clearTimeout(searchTimerRef.current);\r\n searchTimerRef.current = setTimeout(() => onChange(v), 300);\r\n },\r\n [onChange, fetchSuggestions],\r\n );\r\n\r\n const applySuggestion = useCallback(\r\n (word: string) => {\r\n // Replace last word with the suggestion\r\n const words = local.trim().split(/\\s+/);\r\n words[words.length - 1] = word;\r\n const newValue = words.join(' ');\r\n setLocal(newValue);\r\n setSuggestions([]);\r\n setShowSuggestions(false);\r\n onChange(newValue);\r\n },\r\n [local, onChange],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (e: React.KeyboardEvent) => {\r\n if (!showSuggestions || suggestions.length === 0) return;\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n setActiveIndex((i) => (i < suggestions.length - 1 ? i + 1 : 0));\r\n } else if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n setActiveIndex((i) => (i > 0 ? i - 1 : suggestions.length - 1));\r\n } else if (e.key === 'Enter' && activeIndex >= 0) {\r\n e.preventDefault();\r\n applySuggestion(suggestions[activeIndex]);\r\n } else if (e.key === 'Escape') {\r\n setShowSuggestions(false);\r\n }\r\n },\r\n [showSuggestions, suggestions, activeIndex, applySuggestion],\r\n );\r\n\r\n return (\r\n <div className=\"nk-search-wrap\" ref={wrapRef}>\r\n <svg className=\"nk-search-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\r\n <path d=\"m21 21-4.3-4.3\" />\r\n </svg>\r\n <input\r\n className=\"nk-search\"\r\n type=\"text\"\r\n value={local}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n onFocus={() => suggestions.length > 0 && setShowSuggestions(true)}\r\n placeholder={placeholder}\r\n autoComplete=\"off\"\r\n />\r\n {showSuggestions && (\r\n <ul className=\"nk-suggest\">\r\n {suggestions.map((word, i) => (\r\n <li\r\n key={word}\r\n className={`nk-suggest__item ${i === activeIndex ? 'nk-suggest__item--active' : ''}`}\r\n onMouseDown={() => applySuggestion(word)}\r\n onMouseEnter={() => setActiveIndex(i)}\r\n >\r\n {word}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React from \"react\"\r\nimport { Note } from \"../types\"\r\n\r\ninterface NoteCardProps {\r\n note: Note\r\n onEdit: (note: Note) => void\r\n onDelete: (note: Note) => void\r\n onMove: (note: Note) => void\r\n onClone: (note: Note) => void\r\n}\r\n\r\nfunction formatDate(dateStr: string): string {\r\n const d = new Date(dateStr)\r\n const dd = String(d.getDate()).padStart(2, \"0\")\r\n const mm = String(d.getMonth() + 1).padStart(2, \"0\")\r\n const yyyy = d.getFullYear()\r\n const hh = String(d.getHours()).padStart(2, \"0\")\r\n const min = String(d.getMinutes()).padStart(2, \"0\")\r\n return `${dd}.${mm}.${yyyy} ${hh}:${min}`\r\n}\r\n\r\nexport function NoteCard({\r\n note,\r\n onEdit,\r\n onDelete,\r\n onMove,\r\n onClone,\r\n}: NoteCardProps) {\r\n return (\r\n <div className=\"nk-card\" onClick={() => onEdit(note)}>\r\n <p className=\"nk-card__title\">\r\n {note.title ||\r\n \"\\u0411\\u0435\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430\"}\r\n </p>\r\n {note.content && <p className=\"nk-card__preview\">{note.content}</p>}\r\n <div className=\"nk-card__meta\">\r\n <span>\r\n {formatDate(note.createdAt)}\r\n {formatDate(note.updatedAt) !== formatDate(note.createdAt) &&\r\n ` \\u00B7 \\u0438\\u0437\\u043C\\u0435\\u043D\\u0435\\u043D\\u043E: ${formatDate(note.updatedAt)}`}\r\n </span>\r\n <div className=\"nk-card__actions\">\r\n {!note.isSystem && (\r\n <>\r\n <button\r\n className=\"nk-btn nk-btn--ghost nk-btn--sm\"\r\n title={\r\n \"\\u041F\\u0435\\u0440\\u0435\\u043C\\u0435\\u0441\\u0442\\u0438\\u0442\\u044C \\u0432 \\u043F\\u0430\\u043F\\u043A\\u0443\"\r\n }\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n onMove(note)\r\n }}\r\n >\r\n {\"\\u21C4\"}\r\n </button>\r\n <button\r\n className=\"nk-btn nk-btn--ghost nk-btn--sm\"\r\n title={\r\n \"\\u041A\\u043B\\u043E\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0432 \\u043F\\u0430\\u043F\\u043A\\u0443\"\r\n }\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n onClone(note)\r\n }}\r\n >\r\n {\"\\u2398\"}\r\n </button>\r\n <button\r\n className=\"nk-btn nk-btn--danger nk-btn--sm\"\r\n title={\"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C\"}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n onDelete(note)\r\n }}\r\n >\r\n {\"\\u2715\"}\r\n </button>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs'\n }\n};\n\nexport { config as default };\n","function curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport { curry as default };\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport { isObject as default };\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n return config;\n}\n\n/**\n * logs deprecation message\n */\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport { validators as default, errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport { compose as default };\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport { merge as default };\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\n\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport { CANCELATION_MESSAGE, makeCancelable as default };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\nvar _excluded = [\"monaco\"];\n\n/** the local state of the module */\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, _excluded);\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n return makeCancelable(wrapperPromise);\n}\n\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n loaderScript.onload = function () {\n return configureLoader();\n };\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n\n/**\n * configures the monaco loader\n */\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n require.config(state.config);\n require(['vs/editor/editor.main'], function (loaded) {\n var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded /* for other versions */;\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n\n/**\n * store monaco instance in local state\n */\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport { loader as default };\n","import _t from\"@monaco-editor/loader\";import{memo as Te}from\"react\";import ke,{useState as re,useRef as S,useCallback as oe,useEffect as ne}from\"react\";import Se from\"@monaco-editor/loader\";import{memo as ye}from\"react\";import K from\"react\";var le={wrapper:{display:\"flex\",position:\"relative\",textAlign:\"initial\"},fullWidth:{width:\"100%\"},hide:{display:\"none\"}},v=le;import me from\"react\";var ae={container:{display:\"flex\",height:\"100%\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\"}},Y=ae;function Me({children:e}){return me.createElement(\"div\",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return K.createElement(\"section\",{style:{...v.wrapper,width:e,height:r},...E},!n&&K.createElement($,null,t),K.createElement(\"div\",{ref:a,style:{...v.fullWidth,...!n&&v.hide},className:m}))}var ee=Ee;var H=ye(ee);import{useEffect as xe}from\"react\";function Ce(e){xe(e,[])}var k=Ce;import{useEffect as ge,useRef as Re}from\"react\";function he(e,r,n=!0){let t=Re(!0);ge(t.current||!n?()=>{t.current=!1}:e,r)}var l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=!1,keepCurrentModifiedModel:N=!1,theme:x=\"light\",loading:P=\"Loading...\",options:y={},height:V=\"100%\",width:z=\"100%\",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=re(!1),[T,s]=re(!0),u=S(null),c=S(null),w=S(null),d=S(q),o=S(A),b=S(!1);k(()=>{let i=Se.init();return i.then(f=>(c.current=f)&&s(!1)).catch(f=>f?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",f)),()=>u.current?I():i.cancel()}),l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||\"\",t||n||\"text\",m||\"\");f!==i.getModel()&&i.setModel(f)}},[m],M),l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");f!==i.getModel()&&i.setModel(f)}},[E],M),l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||\"\"):r!==i.getValue()&&(i.executeEdits(\"\",[{range:i.getModel().getFullModelRange(),text:r||\"\",forceMoveMarkers:!0}]),i.pushUndoStop())},[r],M),l(()=>{u.current?.getModel()?.original.setValue(e||\"\")},[e],M),l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||\"text\"),c.current.editor.setModelLanguage(f,a||n||\"text\")},[n,t,a],M),l(()=>{c.current?.editor.setTheme(x)},[x],M),l(()=>{u.current?.updateOptions(y)},[y],M);let L=oe(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||\"\",t||n||\"text\",m||\"\"),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");u.current?.setModel({original:i,modified:f})},[n,r,a,e,t,m,E]),U=oe(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...y}),L(),c.current?.editor.setTheme(x),O(!0),b.current=!0)},[y,x,L]);ne(()=>{M&&d.current(u.current,c.current)},[M]),ne(()=>{!T&&!M&&U()},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose()}return ke.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;var we=Te(ie);import{useState as Ie}from\"react\";import ce from\"@monaco-editor/loader\";function Pe(){let[e,r]=Ie(ce.__getMonacoInstance());return k(()=>{let n;return e||(n=ce.init(),n.then(t=>{r(t)})),()=>n?.cancel()}),e}var Le=Pe;import{memo as ze}from\"react\";import We,{useState as ue,useEffect as W,useRef as C,useCallback as _e}from\"react\";import Ne from\"@monaco-editor/loader\";import{useEffect as Ue,useRef as ve}from\"react\";function He(e){let r=ve();return Ue(()=>{r.current=e},[e]),r.current}var se=He;var _=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E=\"light\",line:g,loading:N=\"Loading...\",options:x={},overrideServices:P={},saveViewState:y=!0,keepCurrentModel:V=!1,width:z=\"100%\",height:F=\"100%\",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=ue(!1),[c,w]=ue(!0),d=C(null),o=C(null),b=C(null),L=C(M),U=C(q),I=C(),i=C(t),f=se(m),Q=C(!1),B=C(!1);k(()=>{let p=Ne.init();return p.then(R=>(d.current=R)&&w(!1)).catch(R=>R?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",R)),()=>o.current?pe():p.cancel()}),l(()=>{let p=h(d.current,e||t||\"\",r||a||\"\",m||n||\"\");p!==o.current?.getModel()&&(y&&_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(_.get(m)))},[m],s),l(()=>{o.current?.updateOptions(x)},[x],s),l(()=>{!o.current||t===void 0||(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=!0,o.current.executeEdits(\"\",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),o.current.pushUndoStop(),B.current=!1))},[t],s),l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a)},[a],s),l(()=>{g!==void 0&&o.current?.revealLine(g)},[g],s),l(()=>{d.current?.editor.setTheme(E)},[E],s);let X=_e(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||\"\",r||a||\"\",p||\"\");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:!0,...x},P),y&&o.current.restoreViewState(_.get(p)),d.current.editor.setTheme(E),g!==void 0&&o.current.revealLine(g),u(!0),Q.current=!0}},[e,r,n,t,a,m,x,P,y,E,g]);W(()=>{s&&L.current(o.current,d.current)},[s]),W(()=>{!c&&!s&&X()},[c,s,X]),i.current=t,W(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p)}))},[s,O]),W(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J)}});return()=>{p?.dispose()}}return()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose()}return We.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=ze(fe);var Ft=de;export{we as DiffEditor,de as Editor,Ft as default,_t as loader,Le as useMonaco};\n//# sourceMappingURL=index.mjs.map","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport Editor from '@monaco-editor/react';\nimport { Note, NoteCreatePayload } from '../types';\nimport { useNotesKitContext } from '../context/NotesKitProvider';\n\ninterface NoteEditorProps {\n note: Note | null;\n loading?: boolean;\n showLineNumbers?: boolean;\n onSave: (payload: NoteCreatePayload) => Promise<void>;\n onClose: () => void;\n}\n\nexport function NoteEditor({ note, loading, showLineNumbers = false, onSave, onClose }: NoteEditorProps) {\n const { theme } = useNotesKitContext();\n const [title, setTitle] = useState('');\n const [content, setContent] = useState('');\n const [saving, setSaving] = useState(false);\n const [lineNumbers, setLineNumbers] = useState(showLineNumbers);\n const isReadOnly = note?.isSystem ?? false;\n const titleRef = useRef<HTMLInputElement>(null);\n const overlayMouseDown = useRef(false);\n\n // Sync note content\n useEffect(() => {\n if (loading) return;\n setTitle(note?.title ?? '');\n setContent(note?.content ?? '');\n }, [note, loading]);\n\n // Focus title when editor opens\n useEffect(() => {\n if (!loading) titleRef.current?.focus();\n }, [loading]);\n\n // Escape to close\n useEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n window.addEventListener('keydown', handler);\n return () => window.removeEventListener('keydown', handler);\n }, [onClose]);\n\n const handleSave = useCallback(async () => {\n if (!content.trim()) return;\n\n setSaving(true);\n try {\n await onSave({ title: title.trim(), content: content.trim() });\n onClose();\n } catch {\n // Error handled upstream\n } finally {\n setSaving(false);\n }\n }, [title, content, onSave, onClose]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {\n handleSave();\n }\n };\n\n return (\n <div\n className=\"nk-overlay\"\n onMouseDown={(e) => { if (e.target === e.currentTarget) overlayMouseDown.current = true; }}\n onMouseUp={(e) => { if (e.target === e.currentTarget && overlayMouseDown.current) onClose(); overlayMouseDown.current = false; }}\n >\n <div\n className=\"nk-editor\"\n onMouseDown={() => { overlayMouseDown.current = false; }}\n onKeyDown={handleKeyDown}\n >\n <div className=\"nk-editor__header\">\n <h3>{loading ? 'Загрузка…' : isReadOnly ? 'Просмотр' : note ? 'Редактирование' : 'Новая заметка'}</h3>\n <button className=\"nk-btn nk-btn--ghost nk-btn--sm\" onClick={onClose}>\n {'\\u2715'}\n </button>\n </div>\n\n <div className=\"nk-editor__body\" style={{ display: loading ? 'none' : undefined }}>\n <input\n ref={titleRef}\n className=\"nk-input\"\n placeholder={'\\u0417\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043E\\u043A'}\n value={title}\n maxLength={500}\n readOnly={isReadOnly}\n onChange={(e) => { if (!isReadOnly) setTitle(e.target.value); }}\n />\n <div className=\"nk-cm-editor\">\n <Editor\n height=\"100%\"\n language=\"markdown\"\n theme={theme === 'dark' ? 'vs-dark' : 'light'}\n value={content}\n onChange={(val) => { if (!isReadOnly) setContent(val ?? ''); }}\n options={{\n readOnly: isReadOnly,\n fontSize: 14,\n fontFamily: \"'JetBrains Mono', ui-monospace, monospace\",\n lineHeight: 1.6,\n wordWrap: 'on',\n minimap: { enabled: false },\n lineNumbers: lineNumbers ? 'on' : 'off',\n glyphMargin: false,\n folding: false,\n lineDecorationsWidth: 5,\n lineNumbersMinChars: lineNumbers ? 3 : 0,\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n padding: { top: 12, bottom: 12 },\n placeholder: 'Начните писать… (Markdown)',\n }}\n />\n </div>\n </div>\n\n {loading && <div className=\"nk-editor-loading\" />}\n\n <div className=\"nk-editor__footer\" style={{ display: loading ? 'none' : undefined }}>\n <label className=\"nk-editor-hint\" style={{ display: 'flex', alignItems: 'center', gap: 6, cursor: 'pointer' }}>\n <input\n type=\"checkbox\"\n checked={lineNumbers}\n onChange={(e) => setLineNumbers(e.target.checked)}\n />\n Нумерация строк\n </label>\n <span className=\"nk-editor-hint\">\n Markdown &middot; мультикурсор: Ctrl+Click &middot; Alt+перетащить &middot; Ctrl+D\n </span>\n <button className=\"nk-btn nk-btn--ghost\" onClick={onClose}>\n {isReadOnly ? '\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C' : '\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430'}\n </button>\n {!isReadOnly && (\n <button\n className=\"nk-btn nk-btn--primary\"\n onClick={handleSave}\n disabled={saving}\n >\n {saving ? '\\u0421\\u043E\\u0445\\u0440\\u0430\\u043D\\u0435\\u043D\\u0438\\u0435\\u2026' : '\\u0421\\u043E\\u0445\\u0440\\u0430\\u043D\\u0438\\u0442\\u044C'}\n <span style={{ fontSize: 11, opacity: 0.7 }}>Ctrl+{'\\u21B5'}</span>\n </button>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React from 'react';\r\n\r\ninterface ConfirmDialogProps {\r\n message: string;\r\n onConfirm: () => void;\r\n onCancel: () => void;\r\n loading?: boolean;\r\n}\r\n\r\nexport function ConfirmDialog({ message, onConfirm, onCancel, loading }: ConfirmDialogProps) {\r\n return (\r\n <div className=\"nk-overlay\" onClick={onCancel}>\r\n <div className=\"nk-editor\" style={{ width: 'auto', maxWidth: 420, height: 'auto' }} onClick={(e) => e.stopPropagation()}>\r\n <div className=\"nk-editor__body\">\r\n <div className=\"nk-confirm\">\r\n <p>{message}</p>\r\n <div className=\"nk-confirm__actions\">\r\n <button className=\"nk-btn nk-btn--ghost\" onClick={onCancel}>\r\n Отмена\r\n </button>\r\n <button className=\"nk-btn nk-btn--danger\" onClick={onConfirm} disabled={loading}>\r\n {loading ? 'Удаление\\u2026' : 'Удалить'}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import React, { useEffect, useMemo } from 'react';\r\n\r\ninterface PaginationProps {\r\n currentPage: number;\r\n totalPages: number;\r\n totalElements: number;\r\n pageSize: number;\r\n pageSizeOptions: number[];\r\n onPageChange: (page: number) => void;\r\n onPageSizeChange: (size: number) => void;\r\n}\r\n\r\n/**\r\n * Build a compact page number list with ellipses.\r\n * Always shows first, last, and up to 2 neighbours around current.\r\n * Example: [0, '…', 4, 5, 6, '…', 12]\r\n */\r\nfunction buildPageNumbers(current: number, total: number): (number | '…')[] {\r\n if (total <= 7) {\r\n return Array.from({ length: total }, (_, i) => i);\r\n }\r\n\r\n const pages = new Set<number>();\r\n pages.add(0);\r\n pages.add(total - 1);\r\n for (let i = current - 1; i <= current + 1; i++) {\r\n if (i >= 0 && i < total) pages.add(i);\r\n }\r\n\r\n const sorted = [...pages].sort((a, b) => a - b);\r\n const result: (number | '…')[] = [];\r\n\r\n for (let i = 0; i < sorted.length; i++) {\r\n if (i > 0 && sorted[i] - sorted[i - 1] > 1) {\r\n result.push('…');\r\n }\r\n result.push(sorted[i]);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function Pagination({\r\n currentPage,\r\n totalPages,\r\n totalElements,\r\n pageSize,\r\n pageSizeOptions,\r\n onPageChange,\r\n onPageSizeChange,\r\n}: PaginationProps) {\r\n const pages = useMemo(() => buildPageNumbers(currentPage, totalPages), [currentPage, totalPages]);\r\n\r\n useEffect(() => {\r\n try {\r\n localStorage.setItem('nk-page-size', String(pageSize));\r\n } catch { /* ignore */ }\r\n }, [pageSize]);\r\n\r\n const from = currentPage * pageSize + 1;\r\n const to = Math.min((currentPage + 1) * pageSize, totalElements);\r\n\r\n return (\r\n <div className=\"nk-pagination\">\r\n {/* Info */}\r\n <span className=\"nk-pagination__info\">\r\n {from}–{to} из {totalElements}\r\n </span>\r\n\r\n {/* Page size selector */}\r\n <select\r\n className=\"nk-pagination__select\"\r\n value={pageSize}\r\n onChange={(e) => onPageSizeChange(Number(e.target.value))}\r\n >\r\n {pageSizeOptions.map((opt) => (\r\n <option key={opt} value={opt}>\r\n {opt}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n {/* Navigation */}\r\n <div className=\"nk-pagination__nav\">\r\n <button\r\n className=\"nk-pagination__btn\"\r\n disabled={currentPage <= 0}\r\n onClick={() => onPageChange(currentPage - 1)}\r\n >\r\n ‹\r\n </button>\r\n\r\n {pages.map((p, i) =>\r\n p === '…' ? (\r\n <span key={`ellipsis-${i}`} className=\"nk-pagination__ellipsis\">…</span>\r\n ) : (\r\n <button\r\n key={p}\r\n className={`nk-pagination__btn ${p === currentPage ? 'nk-pagination__btn--active' : ''}`}\r\n onClick={() => onPageChange(p)}\r\n >\r\n {p + 1}\r\n </button>\r\n ),\r\n )}\r\n\r\n <button\r\n className=\"nk-pagination__btn\"\r\n disabled={currentPage >= totalPages - 1}\r\n onClick={() => onPageChange(currentPage + 1)}\r\n >\r\n ›\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport interface SortOption {\r\n label: string;\r\n field: string;\r\n}\r\n\r\nconst SORT_OPTIONS: SortOption[] = [\r\n { label: '\\u0417\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043E\\u043A', field: 'title' },\r\n { label: '\\u0421\\u043E\\u0434\\u0435\\u0440\\u0436\\u0438\\u043C\\u043E\\u0435', field: 'content' },\r\n { label: '\\u0414\\u0430\\u0442\\u0430 \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u0438\\u044F', field: 'createdAt' },\r\n { label: '\\u0414\\u0430\\u0442\\u0430 \\u0438\\u0437\\u043C\\u0435\\u043D\\u0435\\u043D\\u0438\\u044F', field: 'updatedAt' },\r\n];\r\n\r\nconst DEFAULT_SORT = 'updatedAt,desc';\r\n\r\ninterface SortBarProps {\r\n value: string; // e.g. \"updatedAt,desc\"\r\n onChange: (sort: string) => void;\r\n}\r\n\r\nfunction parseSort(value: string): { field: string; dir: 'asc' | 'desc' } {\r\n const [field, dir] = value.split(',');\r\n return { field, dir: dir === 'asc' ? 'asc' : 'desc' };\r\n}\r\n\r\nexport function SortBar({ value, onChange }: SortBarProps) {\r\n const { field: activeField, dir } = parseSort(value);\r\n\r\n const handleFieldClick = (field: string) => {\r\n if (field === activeField) {\r\n onChange(`${field},${dir === 'asc' ? 'desc' : 'asc'}`);\r\n } else {\r\n onChange(`${field},desc`);\r\n }\r\n };\r\n\r\n const isDefault = value === DEFAULT_SORT;\r\n\r\n return (\r\n <div className=\"nk-sort\">\r\n <span className=\"nk-sort__label\">{'\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430:'}</span>\r\n {SORT_OPTIONS.map((opt) => {\r\n const isActive = opt.field === activeField;\r\n return (\r\n <button\r\n key={opt.field}\r\n className={`nk-sort__btn ${isActive ? 'nk-sort__btn--active' : ''}`}\r\n onClick={() => handleFieldClick(opt.field)}\r\n >\r\n {opt.label}\r\n {isActive && (\r\n <span className=\"nk-sort__arrow\">{dir === 'asc' ? '↑' : '↓'}</span>\r\n )}\r\n </button>\r\n );\r\n })}\r\n {!isDefault && (\r\n <button\r\n className=\"nk-sort__btn nk-sort__btn--reset\"\r\n onClick={() => onChange(DEFAULT_SORT)}\r\n >\r\n {'\\u0421\\u0431\\u0440\\u043E\\u0441'}\r\n </button>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React, { useCallback, useEffect, useState } from \"react\"\r\nimport {\r\n FolderTreeNode,\r\n FolderCreatePayload,\r\n FolderUpdatePayload,\r\n Folder,\r\n} from \"../types\"\r\nimport { ConfirmDialog } from \"./ConfirmDialog\"\r\n\r\nexport interface FolderPanelProps {\r\n tree: FolderTreeNode[]\r\n loading: boolean\r\n selectedFolderId: string | null\r\n isRootOnly: boolean\r\n collapsed: boolean\r\n onToggle: () => void\r\n onSelectAll: () => void\r\n onSelectRootOnly: () => void\r\n onSelectFolder: (id: string) => void\r\n onCreate: (payload: FolderCreatePayload) => Promise<Folder>\r\n onRename: (id: string, payload: FolderUpdatePayload) => Promise<Folder>\r\n onDelete: (id: string) => Promise<void>\r\n}\r\n\r\ninterface TreeItemProps {\r\n node: FolderTreeNode\r\n depth: number\r\n selectedFolderId: string | null\r\n onSelect: (id: string) => void\r\n onCreate: (payload: FolderCreatePayload) => Promise<Folder>\r\n onRename: (id: string, payload: FolderUpdatePayload) => Promise<Folder>\r\n onDelete: (id: string) => Promise<void>\r\n}\r\n\r\nfunction TreeItem({\r\n node,\r\n depth,\r\n selectedFolderId,\r\n onSelect,\r\n onCreate,\r\n onRename,\r\n onDelete,\r\n}: TreeItemProps) {\r\n const [expanded, setExpanded] = useState(false)\r\n const [editing, setEditing] = useState(false)\r\n const [editName, setEditName] = useState(node.name)\r\n const [creating, setCreating] = useState(false)\r\n const [newName, setNewName] = useState(\"\")\r\n const [deleting, setDeleting] = useState(false)\r\n const [deleteLoading, setDeleteLoading] = useState(false)\r\n\r\n const isActive = selectedFolderId === node.id\r\n const hasChildren = node.children.length > 0\r\n const isSystem = node.isSystem\r\n\r\n const handleRename = async () => {\r\n const trimmed = editName.trim()\r\n if (!trimmed || trimmed === node.name) {\r\n setEditing(false)\r\n setEditName(node.name)\r\n return\r\n }\r\n await onRename(node.id, { name: trimmed, parentId: node.parentId })\r\n setEditing(false)\r\n }\r\n\r\n const handleCreate = async () => {\r\n const trimmed = newName.trim()\r\n if (!trimmed) {\r\n setCreating(false)\r\n return\r\n }\r\n await onCreate({ name: trimmed, parentId: node.id })\r\n setNewName(\"\")\r\n setCreating(false)\r\n setExpanded(true)\r\n }\r\n\r\n const handleDelete = async () => {\r\n setDeleteLoading(true)\r\n try {\r\n await onDelete(node.id)\r\n } finally {\r\n setDeleteLoading(false)\r\n setDeleting(false)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n className={`nk-folder-item ${isActive ? \"nk-folder-item--active\" : \"\"}`}\r\n style={{ paddingLeft: 12 + depth * 16 }}\r\n onClick={() => {\r\n onSelect(node.id)\r\n if (hasChildren) setExpanded((e) => !e)\r\n }}\r\n >\r\n <span className=\"nk-folder__icon\">\r\n {expanded && hasChildren ? \"\\uD83D\\uDCC2\" : \"\\uD83D\\uDCC1\"}\r\n {hasChildren && (\r\n <span className=\"nk-folder__expand-hint\">\r\n {expanded ? \"\\u25BE\" : \"\\u25B8\"}\r\n </span>\r\n )}\r\n </span>\r\n {editing ? (\r\n <input\r\n className=\"nk-folder-input\"\r\n value={editName}\r\n autoFocus\r\n onChange={(e) => setEditName(e.target.value)}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") handleRename()\r\n if (e.key === \"Escape\") {\r\n setEditing(false)\r\n setEditName(node.name)\r\n }\r\n }}\r\n onBlur={handleRename}\r\n onClick={(e) => e.stopPropagation()}\r\n />\r\n ) : (\r\n <span className=\"nk-folder__name\">{node.name}</span>\r\n )}\r\n {!editing && node.noteCount > 0 && (\r\n <span className=\"nk-folder__badge\">{node.noteCount}</span>\r\n )}\r\n {!editing && !isSystem && (\r\n <div className=\"nk-folder__actions\">\r\n <button\r\n className=\"nk-folder__action-btn\"\r\n title={\r\n \"\\u041F\\u0435\\u0440\\u0435\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u0442\\u044C\"\r\n }\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n setEditName(node.name)\r\n setEditing(true)\r\n }}\r\n >\r\n {\"\\u270E\"}\r\n </button>\r\n <button\r\n className=\"nk-folder__action-btn\"\r\n title={\r\n \"\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C \\u043F\\u043E\\u0434\\u043F\\u0430\\u043F\\u043A\\u0443\"\r\n }\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n setCreating(true)\r\n setExpanded(true)\r\n }}\r\n >\r\n +\r\n </button>\r\n <button\r\n className=\"nk-folder__action-btn nk-folder__action-btn--danger\"\r\n title={\r\n \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C \\u043F\\u0430\\u043F\\u043A\\u0443\"\r\n }\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n setDeleting(true)\r\n }}\r\n >\r\n {\"\\u2715\"}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n {expanded &&\r\n hasChildren &&\r\n node.children.map((child) => (\r\n <TreeItem\r\n key={child.id}\r\n node={child}\r\n depth={depth + 1}\r\n selectedFolderId={selectedFolderId}\r\n onSelect={onSelect}\r\n onCreate={onCreate}\r\n onRename={onRename}\r\n onDelete={onDelete}\r\n />\r\n ))}\r\n {creating && (\r\n <div\r\n className=\"nk-folder-item\"\r\n style={{ paddingLeft: 12 + (depth + 1) * 16 }}\r\n >\r\n <span className=\"nk-folder__icon\">{\"\\uD83D\\uDCC1\"}</span>\r\n <input\r\n className=\"nk-folder-input\"\r\n placeholder={\r\n \"\\u041D\\u043E\\u0432\\u0430\\u044F \\u043F\\u0430\\u043F\\u043A\\u0430\\u2026\"\r\n }\r\n value={newName}\r\n autoFocus\r\n onChange={(e) => setNewName(e.target.value)}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") handleCreate()\r\n if (e.key === \"Escape\") {\r\n setCreating(false)\r\n setNewName(\"\")\r\n }\r\n }}\r\n onBlur={handleCreate}\r\n onClick={(e) => e.stopPropagation()}\r\n />\r\n </div>\r\n )}\r\n {deleting && (\r\n <ConfirmDialog\r\n message={`\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C \\u043F\\u0430\\u043F\\u043A\\u0443 \\u00AB${node.name}\\u00BB? \\u0417\\u0430\\u043C\\u0435\\u0442\\u043A\\u0438 \\u0432\\u043D\\u0443\\u0442\\u0440\\u0438 \\u043E\\u0441\\u0442\\u0430\\u043D\\u0443\\u0442\\u0441\\u044F \\u0431\\u0435\\u0437 \\u043F\\u0430\\u043F\\u043A\\u0438.`}\r\n onConfirm={handleDelete}\r\n onCancel={() => setDeleting(false)}\r\n loading={deleteLoading}\r\n />\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport function FolderPanel({\r\n tree,\r\n loading,\r\n selectedFolderId,\r\n isRootOnly,\r\n collapsed,\r\n onToggle,\r\n onSelectAll,\r\n onSelectRootOnly,\r\n onSelectFolder,\r\n onCreate,\r\n onRename,\r\n onDelete,\r\n}: FolderPanelProps) {\r\n const [creatingRoot, setCreatingRoot] = useState(false)\r\n const [rootName, setRootName] = useState(\"\")\r\n\r\n useEffect(() => {\r\n try {\r\n localStorage.setItem(\r\n \"nk-folder-selection\",\r\n JSON.stringify({ folderId: selectedFolderId, isRootOnly }),\r\n )\r\n } catch {\r\n /* ignore */\r\n }\r\n }, [selectedFolderId, isRootOnly])\r\n\r\n const handleCreateRoot = useCallback(async () => {\r\n const trimmed = rootName.trim()\r\n if (!trimmed) {\r\n setCreatingRoot(false)\r\n return\r\n }\r\n await onCreate({ name: trimmed })\r\n setRootName(\"\")\r\n setCreatingRoot(false)\r\n }, [rootName, onCreate])\r\n\r\n const isAll = selectedFolderId === null && !isRootOnly\r\n const isRoot = selectedFolderId === null && isRootOnly\r\n\r\n return (\r\n <div className={`nk-sidebar ${collapsed ? \"nk-sidebar--collapsed\" : \"\"}`}>\r\n <div className=\"nk-sidebar__header\">\r\n {!collapsed && <span>{\"\\u041F\\u0430\\u043F\\u043A\\u0438\"}</span>}\r\n <div className=\"nk-sidebar__header-actions\">\r\n <button\r\n className=\"nk-folder__action-btn\"\r\n title={\r\n collapsed\r\n ? \"\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u043F\\u0430\\u043F\\u043A\\u0438\"\r\n : \"\\u0421\\u043A\\u0440\\u044B\\u0442\\u044C \\u043F\\u0430\\u043F\\u043A\\u0438\"\r\n }\r\n onClick={onToggle}\r\n >\r\n {collapsed ? \"\\u25B8\" : \"\\u25C2\"}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n {!collapsed && (\r\n <div className=\"nk-sidebar__list\">\r\n <div\r\n className={`nk-folder-item ${isAll ? \"nk-folder-item--active\" : \"\"}`}\r\n onClick={onSelectAll}\r\n >\r\n <span className=\"nk-folder__icon\">{\"\\uD83D\\uDCDA\"}</span>\r\n <span className=\"nk-folder__name\">\r\n {\"\\u0412\\u0441\\u0435 \\u0437\\u0430\\u043C\\u0435\\u0442\\u043A\\u0438\"}\r\n </span>\r\n </div>\r\n\r\n <div\r\n className={`nk-folder-item ${isRoot ? \"nk-folder-item--active\" : \"\"}`}\r\n onClick={onSelectRootOnly}\r\n >\r\n <span className=\"nk-folder__icon\">{\"\\uD83D\\uDCC4\"}</span>\r\n <span className=\"nk-folder__name\">\r\n {\"\\u0411\\u0435\\u0437 \\u043F\\u0430\\u043F\\u043A\\u0438\"}\r\n </span>\r\n </div>\r\n\r\n <div className=\"nk-sidebar__divider\" />\r\n\r\n {loading ? (\r\n <div className=\"nk-sidebar__loading\">\r\n {\"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430\\u2026\"}\r\n </div>\r\n ) : tree.length === 0 ? (\r\n <div className=\"nk-sidebar__empty\">\r\n {\"\\u041D\\u0435\\u0442 \\u043F\\u0430\\u043F\\u043E\\u043A\"}\r\n </div>\r\n ) : (\r\n (() => {\r\n const systemFolders = tree.filter((n) => n.isSystem)\r\n const userFolders = tree.filter((n) => !n.isSystem)\r\n return (\r\n <>\r\n {userFolders.length > 0 && (\r\n <>\r\n {systemFolders.length > 0 && (\r\n <div className=\"nk-sidebar__section-label\">\r\n {\r\n \"\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0438\\u0435\"\r\n }\r\n </div>\r\n )}\r\n {userFolders.map((node) => (\r\n <TreeItem\r\n key={node.id}\r\n node={node}\r\n depth={0}\r\n selectedFolderId={selectedFolderId}\r\n onSelect={onSelectFolder}\r\n onCreate={onCreate}\r\n onRename={onRename}\r\n onDelete={onDelete}\r\n />\r\n ))}\r\n </>\r\n )}\r\n {systemFolders.length > 0 && (\r\n <div className=\"nk-sidebar__divider\" />\r\n )}\r\n {systemFolders.length > 0 && (\r\n <>\r\n <div className=\"nk-sidebar__section-label\">\r\n {\r\n \"\\u0421\\u0438\\u0441\\u0442\\u0435\\u043C\\u043D\\u044B\\u0435\"\r\n }\r\n </div>\r\n {systemFolders.map((node) => (\r\n <TreeItem\r\n key={node.id}\r\n node={node}\r\n depth={0}\r\n selectedFolderId={selectedFolderId}\r\n onSelect={onSelectFolder}\r\n onCreate={onCreate}\r\n onRename={onRename}\r\n onDelete={onDelete}\r\n />\r\n ))}\r\n </>\r\n )}\r\n </>\r\n )\r\n })()\r\n )}\r\n\r\n {creatingRoot ? (\r\n <div className=\"nk-folder-item nk-folder-item--create\">\r\n <span className=\"nk-folder__icon\">{\"\\uD83D\\uDCC1\"}</span>\r\n <input\r\n className=\"nk-folder-input\"\r\n placeholder={\r\n \"\\u041D\\u0430\\u0437\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u0430\\u043F\\u043A\\u0438\\u2026\"\r\n }\r\n value={rootName}\r\n autoFocus\r\n onChange={(e) => setRootName(e.target.value)}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") handleCreateRoot()\r\n if (e.key === \"Escape\") {\r\n setCreatingRoot(false)\r\n setRootName(\"\")\r\n }\r\n }}\r\n onBlur={handleCreateRoot}\r\n />\r\n </div>\r\n ) : (\r\n <div\r\n className=\"nk-folder-item nk-folder-item--create\"\r\n onClick={() => setCreatingRoot(true)}\r\n >\r\n <span className=\"nk-folder__icon--add\">+</span>\r\n <span className=\"nk-folder__name\">\r\n {\r\n \"\\u041D\\u043E\\u0432\\u0430\\u044F \\u043F\\u0430\\u043F\\u043A\\u0430\"\r\n }\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n","import React, { useState } from 'react';\r\nimport { FolderTreeNode } from '../types';\r\n\r\nexport interface FolderPickerDialogProps {\r\n title: string;\r\n tree: FolderTreeNode[];\r\n currentFolderId: string | null;\r\n onConfirm: (folderId: string | null) => void;\r\n onCancel: () => void;\r\n loading?: boolean;\r\n}\r\n\r\nfunction PickerTreeItem({\r\n node,\r\n depth,\r\n selected,\r\n disabledId,\r\n onSelect,\r\n}: {\r\n node: FolderTreeNode;\r\n depth: number;\r\n selected: string | null;\r\n disabledId: string | null;\r\n onSelect: (id: string) => void;\r\n}) {\r\n const [expanded, setExpanded] = useState(false);\r\n const hasChildren = node.children.length > 0;\r\n const isDisabled = node.id === disabledId;\r\n\r\n return (\r\n <>\r\n <div\r\n className={`nk-picker-item ${selected === node.id ? 'nk-picker-item--active' : ''} ${isDisabled ? 'nk-picker-item--disabled' : ''}`}\r\n style={{ paddingLeft: 12 + depth * 20 }}\r\n onClick={() => { if (!isDisabled) onSelect(node.id); }}\r\n >\r\n {hasChildren && (\r\n <span\r\n className={`nk-folder__chevron ${expanded ? 'nk-folder__chevron--open' : ''}`}\r\n onClick={(e) => { e.stopPropagation(); setExpanded(!expanded); }}\r\n >\r\n {'\\u25B8'}\r\n </span>\r\n )}\r\n {!hasChildren && <span className=\"nk-folder__chevron nk-folder__chevron--empty\" />}\r\n <span className=\"nk-picker-item__name\">\r\n {node.name}\r\n {isDisabled && <span className=\"nk-picker-item__current\">{' \\u2014 \\u0442\\u0435\\u043A\\u0443\\u0449\\u0430\\u044F'}</span>}\r\n </span>\r\n </div>\r\n {expanded && hasChildren && node.children.map((child) => (\r\n <PickerTreeItem\r\n key={child.id}\r\n node={child}\r\n depth={depth + 1}\r\n selected={selected}\r\n disabledId={disabledId}\r\n onSelect={onSelect}\r\n />\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\nexport function FolderPickerDialog({\r\n title,\r\n tree,\r\n currentFolderId,\r\n onConfirm,\r\n onCancel,\r\n loading,\r\n}: FolderPickerDialogProps) {\r\n const [selected, setSelected] = useState<string | null>(null);\r\n\r\n return (\r\n <div className=\"nk-overlay\" onClick={onCancel}>\r\n <div\r\n className=\"nk-editor\"\r\n style={{ width: 'auto', maxWidth: 460, height: 'auto', maxHeight: '70vh' }}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <div className=\"nk-editor__body\" style={{ padding: 0 }}>\r\n <div className=\"nk-picker\">\r\n <div className=\"nk-picker__header\">{title}</div>\r\n\r\n <div className=\"nk-picker__list\">\r\n {(() => {\r\n const rootDisabled = currentFolderId === null;\r\n return (\r\n <div\r\n className={`nk-picker-item ${selected === null ? 'nk-picker-item--active' : ''} ${rootDisabled ? 'nk-picker-item--disabled' : ''}`}\r\n style={{ paddingLeft: 12 }}\r\n onClick={() => { if (!rootDisabled) setSelected(null); }}\r\n >\r\n <span className=\"nk-folder__chevron nk-folder__chevron--empty\" />\r\n <span className=\"nk-picker-item__name\">\r\n {'\\u0411\\u0435\\u0437 \\u043F\\u0430\\u043F\\u043A\\u0438 (\\u043A\\u043E\\u0440\\u0435\\u043D\\u044C)'}\r\n {rootDisabled && <span className=\"nk-picker-item__current\">{' \\u2014 \\u0442\\u0435\\u043A\\u0443\\u0449\\u0430\\u044F'}</span>}\r\n </span>\r\n </div>\r\n );\r\n })()}\r\n\r\n {tree.map((node) => (\r\n <PickerTreeItem\r\n key={node.id}\r\n node={node}\r\n depth={0}\r\n selected={selected}\r\n disabledId={currentFolderId}\r\n onSelect={setSelected}\r\n />\r\n ))}\r\n </div>\r\n\r\n <div className=\"nk-picker__footer\">\r\n <button className=\"nk-btn nk-btn--ghost\" onClick={onCancel}>\r\n {'\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430'}\r\n </button>\r\n <button\r\n className=\"nk-btn nk-btn--primary\"\r\n disabled={loading || selected === currentFolderId}\r\n onClick={() => onConfirm(selected)}\r\n >\r\n {loading ? '\\u041F\\u043E\\u0434\\u043E\\u0436\\u0434\\u0438\\u0442\\u0435\\u2026' : '\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C'}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import React, { useCallback, useState } from 'react';\r\nimport { useNotes } from '../hooks/useNotes';\r\nimport { useFolders } from '../hooks/useFolders';\r\nimport { useNotesKitContext } from '../context/NotesKitProvider';\r\nimport { SearchBar } from './SearchBar';\r\nimport { NoteCard } from './NoteCard';\r\nimport { NoteEditor } from './NoteEditor';\r\nimport { ConfirmDialog } from './ConfirmDialog';\r\nimport { Pagination } from './Pagination';\r\nimport { SortBar } from './SortBar';\r\nimport { FolderPanel } from './FolderPanel';\r\nimport { FolderPickerDialog } from './FolderPickerDialog';\r\nimport { Note, NoteCreatePayload } from '../types';\r\nimport '../styles/notes-kit.css';\r\n\r\nexport interface NotesWidgetProps {\r\n pageSize?: number;\r\n pageSizeOptions?: number[];\r\n title?: string;\r\n className?: string;\r\n folderId?: string;\r\n rootOnly?: boolean;\r\n}\r\n\r\nfunction readFolderSelection(): { folderId: string | null; isRootOnly: boolean } | null {\r\n try {\r\n const saved = localStorage.getItem('nk-folder-selection');\r\n if (saved) return JSON.parse(saved);\r\n } catch { /* ignore */ }\r\n return null;\r\n}\r\n\r\nfunction readPageSize(defaultSize: number, options: number[]): number {\r\n try {\r\n const saved = localStorage.getItem('nk-page-size');\r\n if (saved) {\r\n const size = Number(saved);\r\n if (options.includes(size)) return size;\r\n }\r\n } catch { /* ignore */ }\r\n return defaultSize;\r\n}\r\n\r\nexport function NotesWidget({\r\n pageSize = 12,\r\n pageSizeOptions = [12, 20, 40, 60],\r\n title = '\\u0417\\u0430\\u043C\\u0435\\u0442\\u043A\\u0438',\r\n className,\r\n folderId,\r\n rootOnly,\r\n}: NotesWidgetProps) {\r\n const { api, theme } = useNotesKitContext();\r\n\r\n // Folder selection state — restored from localStorage if no explicit prop passed\r\n const _savedSelection = folderId !== undefined || rootOnly !== undefined ? null : readFolderSelection();\r\n const [selectedFolderId, setSelectedFolderId] = useState<string | null>(folderId ?? _savedSelection?.folderId ?? null);\r\n const [isRootOnly, setIsRootOnly] = useState(rootOnly ?? _savedSelection?.isRootOnly ?? false);\r\n\r\n const {\r\n notes, totalElements, totalPages, currentPage,\r\n loading, error, params,\r\n create, update, move, clone, remove, setParams, goToPage, fetch,\r\n } = useNotes({\r\n size: readPageSize(pageSize, pageSizeOptions),\r\n folderId: selectedFolderId ?? undefined,\r\n rootOnly: isRootOnly || undefined,\r\n sort: 'updatedAt,desc',\r\n });\r\n\r\n const {\r\n tree,\r\n loading: foldersLoading,\r\n create: createFolder,\r\n update: updateFolder,\r\n remove: removeFolder,\r\n fetchTree,\r\n } = useFolders();\r\n\r\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\r\n const [editing, setEditing] = useState<Note | null | undefined>(undefined);\r\n const [editLoading, setEditLoading] = useState(false);\r\n const [deleting, setDeleting] = useState<Note | null>(null);\r\n const [deleteLoading, setDeleteLoading] = useState(false);\r\n const [moving, setMoving] = useState<Note | null>(null);\r\n const [moveLoading, setMoveLoading] = useState(false);\r\n const [cloning, setCloning] = useState<Note | null>(null);\r\n const [cloneLoading, setCloneLoading] = useState(false);\r\n\r\n // ── Folder selection handlers ──\r\n\r\n const handleSelectAll = useCallback(() => {\r\n setSelectedFolderId(null);\r\n setIsRootOnly(false);\r\n setParams({ folderId: undefined, rootOnly: undefined, page: 0 });\r\n }, [setParams]);\r\n\r\n const handleSelectRootOnly = useCallback(() => {\r\n setSelectedFolderId(null);\r\n setIsRootOnly(true);\r\n setParams({ folderId: undefined, rootOnly: true, page: 0 });\r\n }, [setParams]);\r\n\r\n const handleSelectFolder = useCallback((id: string) => {\r\n setSelectedFolderId(id);\r\n setIsRootOnly(false);\r\n setParams({ folderId: id, rootOnly: undefined, page: 0 });\r\n }, [setParams]);\r\n\r\n // ── Folder CRUD ──\r\n\r\n const handleCreateFolder = useCallback(async (payload: { name: string; parentId?: string | null }) => {\r\n const folder = await createFolder(payload);\r\n await fetchTree();\r\n return folder;\r\n }, [createFolder, fetchTree]);\r\n\r\n const handleRenameFolder = useCallback(async (id: string, payload: { name: string; parentId?: string | null }) => {\r\n const folder = await updateFolder(id, payload);\r\n await fetchTree();\r\n return folder;\r\n }, [updateFolder, fetchTree]);\r\n\r\n const handleDeleteFolder = useCallback(async (id: string) => {\r\n await removeFolder(id);\r\n if (selectedFolderId === id) handleSelectAll();\r\n await fetchTree();\r\n await fetch();\r\n }, [removeFolder, selectedFolderId, handleSelectAll, fetchTree, fetch]);\r\n\r\n // ── Note handlers ──\r\n\r\n const handleCardClick = useCallback(\r\n async (note: Note) => {\r\n setEditLoading(true);\r\n setEditing(null);\r\n try {\r\n const full = await api.getNote(note.id);\r\n setEditing(full);\r\n } catch {\r\n setEditing(undefined);\r\n } finally {\r\n setEditLoading(false);\r\n }\r\n },\r\n [api],\r\n );\r\n\r\n const handleSearch = useCallback(\r\n (search: string) => setParams({ search: search || undefined, page: 0 }),\r\n [setParams],\r\n );\r\n\r\n const handleSave = useCallback(\r\n async (payload: NoteCreatePayload) => {\r\n try {\r\n if (editing === null && !editLoading) {\r\n await create({ ...payload, folderId: selectedFolderId });\r\n } else if (editing) {\r\n await update(editing.id, { title: payload.title, content: payload.content });\r\n }\r\n setEditing(undefined);\r\n setEditLoading(false);\r\n await fetch();\r\n await fetchTree();\r\n } catch {\r\n setEditing(undefined);\r\n setEditLoading(false);\r\n }\r\n },\r\n [editing, editLoading, create, update, fetch, fetchTree, selectedFolderId],\r\n );\r\n\r\n const handleNew = useCallback(() => {\r\n setEditLoading(false);\r\n setEditing(null);\r\n }, []);\r\n\r\n const handleDelete = useCallback(async () => {\r\n if (!deleting) return;\r\n setDeleteLoading(true);\r\n try {\r\n await remove(deleting.id);\r\n setDeleting(null);\r\n await fetchTree();\r\n } finally {\r\n setDeleteLoading(false);\r\n }\r\n }, [deleting, remove, fetchTree]);\r\n\r\n const handleMove = useCallback(async (folderId: string | null) => {\r\n if (!moving) return;\r\n setMoveLoading(true);\r\n try {\r\n await move(moving.id, { folderId });\r\n setMoving(null);\r\n await fetch();\r\n await fetchTree();\r\n } finally {\r\n setMoveLoading(false);\r\n }\r\n }, [moving, move, fetch, fetchTree]);\r\n\r\n const handleClone = useCallback(async (folderId: string | null) => {\r\n if (!cloning) return;\r\n setCloneLoading(true);\r\n try {\r\n await clone(cloning.id, { folderId });\r\n setCloning(null);\r\n await fetch();\r\n await fetchTree();\r\n } finally {\r\n setCloneLoading(false);\r\n }\r\n }, [cloning, clone, fetch, fetchTree]);\r\n\r\n const handlePageSizeChange = useCallback(\r\n (newSize: number) => setParams({ size: newSize, page: 0 }),\r\n [setParams],\r\n );\r\n\r\n const handleSortChange = useCallback(\r\n (sort: string) => setParams({ sort, page: 0 }),\r\n [setParams],\r\n );\r\n\r\n const isEditorOpen = editing !== undefined || editLoading;\r\n\r\n return (\r\n <div className={`nk-root ${className ?? ''}`} data-theme={theme}>\r\n <div className=\"nk-layout\">\r\n <FolderPanel\r\n tree={tree}\r\n loading={foldersLoading}\r\n selectedFolderId={selectedFolderId}\r\n isRootOnly={isRootOnly}\r\n collapsed={sidebarCollapsed}\r\n onToggle={() => setSidebarCollapsed((c) => !c)}\r\n onSelectAll={handleSelectAll}\r\n onSelectRootOnly={handleSelectRootOnly}\r\n onSelectFolder={handleSelectFolder}\r\n onCreate={handleCreateFolder}\r\n onRename={handleRenameFolder}\r\n onDelete={handleDeleteFolder}\r\n />\r\n\r\n <div className=\"nk-container\">\r\n <div className=\"nk-header\">\r\n <h2 className=\"nk-title\">{title}</h2>\r\n <SearchBar value={params.search ?? ''} onChange={handleSearch} />\r\n <button className=\"nk-btn nk-btn--primary\" onClick={handleNew}>\r\n + {'\\u0421\\u043E\\u0437\\u0434\\u0430\\u0442\\u044C'}\r\n </button>\r\n </div>\r\n\r\n {error && (\r\n <div style={{ color: 'var(--nk-danger)', fontSize: 14, marginBottom: 12 }}>\r\n {error.message}\r\n </div>\r\n )}\r\n\r\n {totalPages > 0 && !loading && notes.length > 0 && (\r\n <div className=\"nk-toolbar\">\r\n <SortBar value={params.sort ?? 'updatedAt,desc'} onChange={handleSortChange} />\r\n <Pagination\r\n currentPage={currentPage}\r\n totalPages={totalPages}\r\n totalElements={totalElements}\r\n pageSize={params.size ?? pageSize}\r\n pageSizeOptions={pageSizeOptions}\r\n onPageChange={goToPage}\r\n onPageSizeChange={handlePageSizeChange}\r\n />\r\n </div>\r\n )}\r\n\r\n {loading ? (\r\n <div className=\"nk-spinner\" />\r\n ) : notes.length === 0 ? (\r\n <div className=\"nk-empty\">\r\n <div className=\"nk-empty__icon\">{'\\uD83D\\uDCDD'}</div>\r\n {params.search\r\n ? '\\u041D\\u0438\\u0447\\u0435\\u0433\\u043E \\u043D\\u0435 \\u043D\\u0430\\u0439\\u0434\\u0435\\u043D\\u043E \\u043F\\u043E \\u0432\\u0430\\u0448\\u0435\\u043C\\u0443 \\u0437\\u0430\\u043F\\u0440\\u043E\\u0441\\u0443.'\r\n : '\\u0417\\u0430\\u043C\\u0435\\u0442\\u043E\\u043A \\u043F\\u043E\\u043A\\u0430 \\u043D\\u0435\\u0442. \\u0421\\u043E\\u0437\\u0434\\u0430\\u0439\\u0442\\u0435 \\u043F\\u0435\\u0440\\u0432\\u0443\\u044E!'}\r\n </div>\r\n ) : (\r\n <div className=\"nk-grid\">\r\n {notes.map((note) => (\r\n <NoteCard key={note.id} note={note} onEdit={handleCardClick} onDelete={setDeleting} onMove={setMoving} onClone={setCloning} />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {isEditorOpen && (\r\n <NoteEditor\r\n note={editing ?? null}\r\n loading={editLoading}\r\n onSave={handleSave}\r\n onClose={() => { setEditing(undefined); setEditLoading(false); }}\r\n />\r\n )}\r\n\r\n {moving && (\r\n <FolderPickerDialog\r\n title={`\\u041F\\u0435\\u0440\\u0435\\u043C\\u0435\\u0441\\u0442\\u0438\\u0442\\u044C \\u00AB${moving.title || '\\u0411\\u0435\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430'}\\u00BB`}\r\n tree={tree}\r\n currentFolderId={moving.folderId}\r\n onConfirm={handleMove}\r\n onCancel={() => setMoving(null)}\r\n loading={moveLoading}\r\n />\r\n )}\r\n\r\n {cloning && (\r\n <FolderPickerDialog\r\n title={`\\u041A\\u043B\\u043E\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u00AB${cloning.title || '\\u0411\\u0435\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430'}\\u00BB`}\r\n tree={tree}\r\n currentFolderId={cloning.folderId}\r\n onConfirm={handleClone}\r\n onCancel={() => setCloning(null)}\r\n loading={cloneLoading}\r\n />\r\n )}\r\n\r\n {deleting && (\r\n <ConfirmDialog\r\n message={`\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C \\u00AB${deleting.title || '\\u0411\\u0435\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430'}\\u00BB? \\u042D\\u0442\\u043E \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u043D\\u0435\\u043B\\u044C\\u0437\\u044F \\u043E\\u0442\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C.`}\r\n onConfirm={handleDelete}\r\n onCancel={() => setDeleting(null)}\r\n loading={deleteLoading}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["createContext","useContext","useMemo","jsx","useState","useRef","useCallback","useEffect","jsxs","Fragment","_defineProperty","ownKeys","_objectSpread2","compose","curry","isObject","errorHandler","throwError","errorMessages","validators","config","state","me","ye","xe","Re","ge","re","S","Se","oe","ne","ke","Te","ve","Ue","ue","C","Ne","_e","W","We","ze","_a","Editor","folderId"],"mappings":";;;;;AAoHO,MAAM,sBAAsB,KAAA,CAAM;AAAA,EAIvC,WAAA,CAAY,OAAA,EAAiB,MAAA,EAAgB,IAAA,EAAgB;AAC3D,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AACF;;AC/GO,MAAM,QAAA,CAAS;AAAA,EAGpB,YAAY,MAAA,EAAwB;AAClC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA;AAAA,EAIA,MAAc,YAAA,GAAuC;AACnD,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,IAAA,CAAK,MAAA;AAC1B,IAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,IAAA,IAAI,OAAO,QAAA,KAAa,QAAA,EAAU,OAAO,QAAA;AACzC,IAAA,OAAO,QAAA,EAAS;AAAA,EAClB;AAAA,EAEA,MAAc,OAAA,CAAW,IAAA,EAAc,IAAA,GAAoB,EAAC,EAAe;AA/B7E,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAgCI,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,YAAA,EAAa;AACtC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW,QAAQ,MAAA,EAAQ,EAAE,CAAC,CAAA,EAAG,IAAI,CAAA,CAAA;AAEhE,IAAA,MAAM,OAAA,GAAkC;AAAA,MACtC,cAAA,EAAgB,kBAAA;AAAA,MAChB,GAAG,KAAK,MAAA,CAAO;AAAA,KACjB;AAEA,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,eAAe,CAAA,GAAI,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA;AAAA,IAC5C;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,MAC3B,GAAG,IAAA;AAAA,MACH,SAAS,EAAE,GAAG,OAAA,EAAS,GAAI,KAAK,OAAA,EAAmC;AAAA,MACnE,WAAA,EAAa,QAAQ,aAAA,GAAgB;AAAA,KACtC,CAAA;AAED,IAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACX,MAAA,MAAM,OAAO,MAAM,GAAA,CAAI,MAAK,CAAE,KAAA,CAAM,MAAM,IAAI,CAAA;AAC9C,MAAA,MAAM,MAAM,IAAI,aAAA;AAAA,QAAA,CACd,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,OAAA,KAAN,IAAA,GAAA,EAAA,GAAiB,CAAA,gBAAA,EAAmB,IAAI,MAAM,CAAA,CAAA;AAAA,QAC9C,GAAA,CAAI,MAAA;AAAA,QACJ;AAAA,OACF;AACA,MAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,MAAA,EAAO,YAAZ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAsB,GAAA,CAAA;AACtB,MAAA,MAAM,GAAA;AAAA,IACR;AAEA,IAAA,IAAI,GAAA,CAAI,MAAA,KAAW,GAAA,EAAK,OAAO,MAAA;AAC/B,IAAA,OAAO,IAAI,IAAA,EAAK;AAAA,EAClB;AAAA;AAAA,EAIA,MAAM,UAAU,MAAA,EAAgD;AAC9D,IAAA,MAAM,EAAA,GAAK,IAAI,eAAA,EAAgB;AAC/B,IAAA,IAAI,iCAAQ,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,QAAA,EAAU,OAAO,MAAM,CAAA;AAClD,IAAA,IAAI,iCAAQ,QAAA,EAAU,EAAA,CAAG,GAAA,CAAI,UAAA,EAAY,OAAO,QAAQ,CAAA;AACxD,IAAA,IAAA,CAAI,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,aAAY,IAAA,EAAM,EAAA,CAAG,IAAI,UAAA,EAAY,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAC,CAAA;AACxE,IAAA,IAAI,iCAAQ,IAAA,EAAM,EAAA,CAAG,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AAC5C,IAAA,IAAI,iCAAQ,EAAA,EAAI,EAAA,CAAG,GAAA,CAAI,IAAA,EAAM,OAAO,EAAE,CAAA;AACtC,IAAA,IAAA,CAAI,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,SAAQ,IAAA,EAAM,EAAA,CAAG,IAAI,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA;AAC5D,IAAA,IAAA,CAAI,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,SAAQ,IAAA,EAAM,EAAA,CAAG,IAAI,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA;AAC5D,IAAA,IAAI,iCAAQ,IAAA,EAAM,EAAA,CAAG,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AAC5C,IAAA,MAAM,KAAA,GAAQ,GAAG,QAAA,EAAS;AAC1B,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,MAAA,EAAS,KAAA,GAAQ,IAAI,KAAK,CAAA,CAAA,GAAK,EAAE,CAAA,CAAE,CAAA;AAAA,EACzD;AAAA,EAEA,MAAM,OAAA,CAAQ,MAAA,EAAgB,KAAA,GAAQ,CAAA,EAAsB;AAC1D,IAAA,MAAM,EAAA,GAAK,IAAI,eAAA,CAAgB,EAAE,QAAQ,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AAC/D,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,eAAA,EAAkB,EAAE,CAAA,CAAE,CAAA;AAAA,EAC5C;AAAA,EAEA,MAAM,QAAQ,EAAA,EAA2B;AACvC,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA;AAAA,EACpC;AAAA,EAEA,MAAM,WAAW,OAAA,EAA2C;AAC1D,IAAA,OAAO,IAAA,CAAK,QAAQ,QAAA,EAAU;AAAA,MAC5B,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,KAC7B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,UAAA,CAAW,EAAA,EAAY,OAAA,EAA2C;AACtE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,OAAA,EAAU,EAAE,CAAA,CAAA,EAAI;AAAA,MAClC,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,KAC7B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,QAAA,CAAS,EAAA,EAAY,OAAA,EAAyC;AAClE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,OAAA,EAAU,EAAE,CAAA,KAAA,CAAA,EAAS;AAAA,MACvC,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,KAC7B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,SAAA,CAAU,EAAA,EAAY,OAAA,EAAyC;AACnE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,OAAA,EAAU,EAAE,CAAA,MAAA,CAAA,EAAU;AAAA,MACxC,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,KAC7B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,WAAW,EAAA,EAA2B;AAC1C,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,OAAA,EAAU,EAAE,IAAI,EAAE,MAAA,EAAQ,UAAU,CAAA;AAAA,EAC1D;AAAA;AAAA,EAIA,MAAM,WAAA,GAAiC;AACrC,IAAA,OAAO,IAAA,CAAK,QAAQ,UAAU,CAAA;AAAA,EAChC;AAAA,EAEA,MAAM,aAAA,GAA2C;AAC/C,IAAA,OAAO,IAAA,CAAK,QAAQ,eAAe,CAAA;AAAA,EACrC;AAAA,EAEA,MAAM,UAAU,EAAA,EAA6B;AAC3C,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AAAA,EACtC;AAAA,EAEA,MAAM,kBAAkB,EAAA,EAA+B;AACrD,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,SAAA,EAAY,EAAE,CAAA,SAAA,CAAW,CAAA;AAAA,EAC/C;AAAA,EAEA,MAAM,aAAa,OAAA,EAA+C;AAChE,IAAA,OAAO,IAAA,CAAK,QAAQ,UAAA,EAAY;AAAA,MAC9B,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,KAC7B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,YAAA,CAAa,EAAA,EAAY,OAAA,EAA+C;AAC5E,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,CAAA,SAAA,EAAY,EAAE,CAAA,CAAA,EAAI;AAAA,MACpC,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,KAC7B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,aAAa,EAAA,EAA2B;AAC5C,IAAA,OAAO,IAAA,CAAK,QAAQ,CAAA,SAAA,EAAY,EAAE,IAAI,EAAE,MAAA,EAAQ,UAAU,CAAA;AAAA,EAC5D;AACF;;AClJA,MAAM,eAAA,GAAkBA,gBAA2C,IAAI,CAAA;AAEhE,SAAS,kBAAA,GAA2C;AACzD,EAAA,MAAM,GAAA,GAAMC,aAAW,eAAe,CAAA;AACtC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;AASO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,MAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AAlC1B,EAAA,IAAA,EAAA;AAmCE,EAAA,MAAM,aAAA,GAAA,CAAgB,EAAA,GAAA,MAAA,CAAO,KAAA,KAAP,IAAA,GAAA,EAAA,GAAgB,MAAA;AAEtC,EAAA,MAAM,KAAA,GAAQC,SAAA;AAAA,IACZ,OAAO;AAAA,MACL,GAAA,EAAK,IAAI,QAAA,CAAS,MAAM,CAAA;AAAA,MACxB,MAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP;AAAA,KACF,CAAA;AAAA;AAAA,IAEA,CAAC,MAAA,CAAO,UAAA,EAAY,MAAA,CAAO,QAAA,EAAU,eAAe,aAAa;AAAA,GACnE;AAEA,EAAA,uBACEC,cAAA,CAAC,eAAA,CAAgB,QAAA,EAAhB,EAAyB,OACvB,QAAA,EACH,CAAA;AAEJ;;ACzBO,SAAS,SAAS,OAAA,EAA4C;AA5BrE,EAAA,IAAA,EAAA;AA6BE,EAAA,MAAM,EAAE,GAAA,EAAI,GAAI,kBAAA,EAAmB;AAEnC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,UAAA,CAAiB,EAAE,CAAA;AAC7C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,WAAS,CAAC,CAAA;AACpD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,WAAS,CAAC,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,WAAuB,IAAI,CAAA;AACrD,EAAA,MAAM,CAAC,MAAA,EAAQ,cAAc,IAAIA,UAAA,CAA2B,OAAA,IAAA,IAAA,GAAA,OAAA,GAAW,EAAE,CAAA;AAEzE,EAAA,MAAM,SAAA,GAAYC,SAAO,MAAM,CAAA;AAC/B,EAAA,SAAA,CAAU,OAAA,GAAU,MAAA;AAEpB,EAAA,MAAM,WAAA,GAAA,CAAc,EAAA,GAAA,MAAA,CAAO,IAAA,KAAP,IAAA,GAAA,EAAA,GAAe,CAAA;AAEnC,EAAA,MAAM,UAAA,GAAaC,aAAA;AAAA,IACjB,OAAO,QAAA,KAAyC;AAC9C,MAAA,MAAM,SAAS,EAAE,GAAG,SAAA,CAAU,OAAA,EAAS,GAAG,QAAA,EAAS;AACnD,MAAA,IAAI,QAAA,iBAAyB,MAAM,CAAA;AAEnC,MAAA,UAAA,CAAW,IAAI,CAAA;AACf,MAAA,QAAA,CAAS,IAAI,CAAA;AACb,MAAA,IAAI;AACF,QAAA,MAAM,GAAA,GAAM,MAAM,GAAA,CAAI,SAAA,CAAU,MAAM,CAAA;AACtC,QAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AACpB,QAAA,gBAAA,CAAiB,GAAA,CAAI,KAAK,aAAa,CAAA;AACvC,QAAA,aAAA,CAAc,GAAA,CAAI,KAAK,UAAU,CAAA;AAAA,MACnC,SAAS,CAAA,EAAG;AACV,QAAA,QAAA,CAAS,CAAA,YAAa,QAAQ,CAAA,GAAI,IAAI,MAAM,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AAAA,MACxD,CAAA,SAAE;AACA,QAAA,UAAA,CAAW,KAAK,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACb,OAAO,OAAA,KAA+B;AACpC,MAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,UAAA,CAAW,OAAO,CAAA;AACzC,MAAA,QAAA,CAAS,CAAC,IAAA,KAAS,CAAC,IAAA,EAAM,GAAG,IAAI,CAAC,CAAA;AAClC,MAAA,gBAAA,CAAiB,CAAC,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAC7B,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACb,OAAO,IAAY,OAAA,KAA+B;AAChD,MAAA,MAAM,OAAA,GAAU,MAAM,GAAA,CAAI,UAAA,CAAW,IAAI,OAAO,CAAA;AAChD,MAAA,QAAA,CAAS,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAO,CAAA,CAAE,EAAA,KAAO,EAAA,GAAK,OAAA,GAAU,CAAE,CAAC,CAAA;AAC/D,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,IAAA,GAAOA,aAAA;AAAA,IACX,OAAO,IAAY,OAAA,KAA6B;AAC9C,MAAA,MAAM,KAAA,GAAQ,MAAM,GAAA,CAAI,QAAA,CAAS,IAAI,OAAO,CAAA;AAC5C,MAAA,QAAA,CAAS,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAO,CAAA,CAAE,EAAA,KAAO,EAAA,GAAK,KAAA,GAAQ,CAAE,CAAC,CAAA;AAC7D,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,KAAA,GAAQA,aAAA;AAAA,IACZ,OAAO,IAAY,OAAA,KAA6B;AAC9C,MAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,SAAA,CAAU,IAAI,OAAO,CAAA;AAC9C,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACb,OAAO,EAAA,KAAe;AACpB,MAAA,MAAM,GAAA,CAAI,WAAW,EAAE,CAAA;AACvB,MAAA,QAAA,CAAS,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,EAAE,CAAC,CAAA;AAClD,MAAA,gBAAA,CAAiB,CAAC,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,SAAA,GAAYA,aAAA,CAAY,CAAC,CAAA,KAAiC;AAC9D,IAAA,cAAA,CAAe,CAAC,IAAA,MAAU,EAAE,GAAG,IAAA,EAAM,GAAG,GAAE,CAAE,CAAA;AAAA,EAC9C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,QAAA,GAAWA,aAAA,CAAY,CAAC,IAAA,KAAiB;AAC7C,IAAA,cAAA,CAAe,CAAC,IAAA,MAAU,EAAE,GAAG,IAAA,EAAM,MAAK,CAAE,CAAA;AAAA,EAC9C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAC,WAAA,CAAU,MAAM;AACd,IAAA,UAAA,EAAW;AAAA,EAEb,GAAG,CAAC,MAAA,CAAO,QAAQ,MAAA,CAAO,QAAA,EAAU,OAAO,QAAA,EAAU,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,IAAI,MAAA,CAAO,IAAA,EAAM,OAAO,IAAA,EAAM,MAAA,CAAO,IAAI,CAAC,CAAA;AAEnH,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,kBAAA,EAAmB;AAE7C,EAAAA,WAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,aAAA,EAAe;AACpB,IAAA,MAAM,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAA,GAAA,CAAI,UAAU,SAAA,CAAU,OAAO,CAAA,CAAE,IAAA,CAAK,CAAC,GAAA,KAAQ;AAC7C,QAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AACpB,QAAA,gBAAA,CAAiB,GAAA,CAAI,KAAK,aAAa,CAAA;AACvC,QAAA,aAAA,CAAc,GAAA,CAAI,KAAK,UAAU,CAAA;AAAA,MACnC,CAAC,CAAA,CAAE,KAAA,CAAM,MAAM;AAAA,MAAwD,CAAC,CAAA;AAAA,IAC1E,GAAG,aAAa,CAAA;AAChB,IAAA,OAAO,MAAM,cAAc,EAAE,CAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,GAAA,EAAK,aAAa,CAAC,CAAA;AAEvB,EAAA,OAAO,EAAE,KAAA,EAAO,aAAA,EAAe,UAAA,EAAY,WAAA,EAAa,SAAS,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,UAAA,EAAY,QAAQ,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,WAAW,QAAA,EAAS;AAC9J;;AClHO,SAAS,UAAA,GAA+B;AAC7C,EAAA,MAAM,EAAE,GAAA,EAAI,GAAI,kBAAA,EAAmB;AAEnC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIH,UAAA,CAAmB,EAAE,CAAA;AACnD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,UAAA,CAA2B,EAAE,CAAA;AACrD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,WAAuB,IAAI,CAAA;AAErD,EAAA,MAAM,YAAA,GAAeE,cAAY,YAAY;AAC3C,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAM,GAAA,CAAI,WAAA,EAAY;AAClC,MAAA,UAAA,CAAW,GAAG,CAAA;AAAA,IAChB,SAAS,CAAA,EAAG;AACV,MAAA,QAAA,CAAS,CAAA,YAAa,QAAQ,CAAA,GAAI,IAAI,MAAM,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AAAA,IACxD,CAAA,SAAE;AACA,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IAClB;AAAA,EACF,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,EAAA,MAAM,SAAA,GAAYA,cAAY,YAAY;AACxC,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAM,GAAA,CAAI,aAAA,EAAc;AACpC,MAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IACb,SAAS,CAAA,EAAG;AACV,MAAA,QAAA,CAAS,CAAA,YAAa,QAAQ,CAAA,GAAI,IAAI,MAAM,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AAAA,IACxD,CAAA,SAAE;AACA,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IAClB;AAAA,EACF,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,EAAA,MAAM,SAAA,GAAYA,aAAA;AAAA,IAChB,OAAO,EAAA,KAAe,GAAA,CAAI,SAAA,CAAU,EAAE,CAAA;AAAA,IACtC,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,WAAA,GAAcA,aAAA;AAAA,IAClB,OAAO,EAAA,KAAe,GAAA,CAAI,iBAAA,CAAkB,EAAE,CAAA;AAAA,IAC9C,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACb,OAAO,OAAA,KAAiC;AACtC,MAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,YAAA,CAAa,OAAO,CAAA;AAC7C,MAAA,UAAA,CAAW,CAAC,IAAA,KAAS,CAAC,GAAG,IAAA,EAAM,MAAM,CAAC,CAAA;AACtC,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACb,OAAO,IAAY,OAAA,KAAiC;AAClD,MAAA,MAAM,OAAA,GAAU,MAAM,GAAA,CAAI,YAAA,CAAa,IAAI,OAAO,CAAA;AAClD,MAAA,UAAA,CAAW,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAO,CAAA,CAAE,EAAA,KAAO,EAAA,GAAK,OAAA,GAAU,CAAE,CAAC,CAAA;AACjE,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,MAAA,GAASA,aAAA;AAAA,IACb,OAAO,EAAA,KAAe;AACpB,MAAA,MAAM,GAAA,CAAI,aAAa,EAAE,CAAA;AACzB,MAAA,UAAA,CAAW,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,EAAE,CAAC,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAAC,WAAA,CAAU,MAAM;AACd,IAAA,YAAA,EAAa;AACb,IAAA,SAAA,EAAU;AAAA,EAEZ,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,kBAAA,EAAmB;AAE7C,EAAAA,WAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,aAAA,EAAe;AACpB,IAAA,MAAM,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAA,GAAA,CAAI,WAAA,EAAY,CAAE,IAAA,CAAK,CAAC,GAAA,KAAQ,WAAW,GAAG,CAAC,CAAA,CAAE,KAAA,CAAM,MAAM;AAAA,MAAC,CAAC,CAAA;AAC/D,MAAA,GAAA,CAAI,aAAA,EAAc,CAAE,IAAA,CAAK,CAAC,GAAA,KAAQ,QAAQ,GAAG,CAAC,CAAA,CAAE,KAAA,CAAM,MAAM;AAAA,MAAC,CAAC,CAAA;AAAA,IAChE,GAAG,aAAa,CAAA;AAChB,IAAA,OAAO,MAAM,cAAc,EAAE,CAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,GAAA,EAAK,aAAa,CAAC,CAAA;AAEvB,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,YAAA,EAAc,SAAA,EAAW,SAAA,EAAW,WAAA,EAAa,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAO;AAClH;;ACtGO,SAAS,UAAU,EAAE,KAAA,EAAO,QAAA,EAAU,WAAA,GAAc,mFAAiB,EAAmB;AAC7F,EAAA,MAAM,EAAE,GAAA,EAAI,GAAI,kBAAA,EAAmB;AACnC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIH,WAAS,KAAK,CAAA;AACxC,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,UAAA,CAAmB,EAAE,CAAA;AAC3D,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC5D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,WAAS,EAAE,CAAA;AACjD,EAAA,MAAM,iBAAiBC,QAAA,EAAsC;AAC7D,EAAA,MAAM,kBAAkBA,QAAA,EAAsC;AAC9D,EAAA,MAAM,OAAA,GAAUA,SAAuB,IAAI,CAAA;AAG3C,EAAAE,WAAA,CAAU,MAAM;AACd,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AACjC,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAC,OAAA,CAAQ,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AAClE,QAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,OAAO,CAAA;AAC9C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,OAAO,CAAA;AAAA,EAChE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,aAAA,GAAgBF,SAAO,CAAC,CAAA;AAE9B,EAAA,MAAM,gBAAA,GAAmBC,aAAA;AAAA,IACvB,CAAC,IAAA,KAAiB;AAjCtB,MAAA,IAAA,EAAA;AAkCM,MAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAEpC,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AACrC,MAAA,MAAM,YAAW,EAAA,GAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,MAAtB,IAAA,GAAA,EAAA,GAA2B,EAAA;AAC5C,MAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AACvB,QAAA,aAAA,CAAc,OAAA,EAAA;AACd,QAAA,cAAA,CAAe,EAAE,CAAA;AACjB,QAAA,kBAAA,CAAmB,KAAK,CAAA;AACxB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,GAAA,GAAM,EAAE,aAAA,CAAc,OAAA;AAC5B,MAAA,eAAA,CAAgB,OAAA,GAAU,WAAW,YAAY;AAC/C,QAAA,IAAI;AACF,UAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,OAAA,CAAQ,UAAU,CAAC,CAAA;AAC5C,UAAA,IAAI,GAAA,KAAQ,cAAc,OAAA,EAAS;AACnC,UAAA,cAAA,CAAe,MAAM,CAAA;AACrB,UAAA,kBAAA,CAAmB,MAAA,CAAO,SAAS,CAAC,CAAA;AACpC,UAAA,cAAA,CAAe,CAAA,CAAE,CAAA;AAAA,QACnB,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,UAAA,IAAI,GAAA,KAAQ,cAAc,OAAA,EAAS;AACnC,UAAA,cAAA,CAAe,EAAE,CAAA;AACjB,UAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,QAC1B;AAAA,MACF,GAAG,GAAG,CAAA;AAAA,IACR,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,YAAA,GAAeA,aAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,MAAM,CAAA,GAAI,EAAE,MAAA,CAAO,KAAA;AACnB,MAAA,QAAA,CAAS,CAAC,CAAA;AACV,MAAA,gBAAA,CAAiB,CAAC,CAAA;AAElB,MAAA,YAAA,CAAa,eAAe,OAAO,CAAA;AACnC,MAAA,cAAA,CAAe,UAAU,UAAA,CAAW,MAAM,QAAA,CAAS,CAAC,GAAG,GAAG,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,CAAC,UAAU,gBAAgB;AAAA,GAC7B;AAEA,EAAA,MAAM,eAAA,GAAkBA,aAAA;AAAA,IACtB,CAAC,IAAA,KAAiB;AAEhB,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AACtC,MAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GAAI,IAAA;AAC1B,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;AAC/B,MAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,MAAA,cAAA,CAAe,EAAE,CAAA;AACjB,MAAA,kBAAA,CAAmB,KAAK,CAAA;AACxB,MAAA,QAAA,CAAS,QAAQ,CAAA;AAAA,IACnB,CAAA;AAAA,IACA,CAAC,OAAO,QAAQ;AAAA,GAClB;AAEA,EAAA,MAAM,aAAA,GAAgBA,aAAA;AAAA,IACpB,CAAC,CAAA,KAA2B;AAC1B,MAAA,IAAI,CAAC,eAAA,IAAmB,WAAA,CAAY,MAAA,KAAW,CAAA,EAAG;AAElD,MAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,cAAA,CAAe,CAAC,MAAO,CAAA,GAAI,WAAA,CAAY,SAAS,CAAA,GAAI,CAAA,GAAI,IAAI,CAAE,CAAA;AAAA,MAChE,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,SAAA,EAAW;AAC9B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,cAAA,CAAe,CAAC,MAAO,CAAA,GAAI,CAAA,GAAI,IAAI,CAAA,GAAI,WAAA,CAAY,SAAS,CAAE,CAAA;AAAA,MAChE,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,eAAe,CAAA,EAAG;AAChD,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,eAAA,CAAgB,WAAA,CAAY,WAAW,CAAC,CAAA;AAAA,MAC1C,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU;AAC7B,QAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAA,EAAiB,WAAA,EAAa,WAAA,EAAa,eAAe;AAAA,GAC7D;AAEA,EAAA,uBACEE,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,KAAK,OAAA,EACnC,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EACzI,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI,CAAA;AAAA,sBAC9BA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAiB;AAAA,KAAA,EAC3B,CAAA;AAAA,oBACAA,cAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,WAAA;AAAA,QACV,IAAA,EAAK,MAAA;AAAA,QACL,KAAA,EAAO,KAAA;AAAA,QACP,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,aAAA;AAAA,QACX,SAAS,MAAM,WAAA,CAAY,MAAA,GAAS,CAAA,IAAK,mBAAmB,IAAI,CAAA;AAAA,QAChE,WAAA;AAAA,QACA,YAAA,EAAa;AAAA;AAAA,KACf;AAAA,IACC,eAAA,mCACE,IAAA,EAAA,EAAG,SAAA,EAAU,cACX,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBACtBA,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAW,CAAA,iBAAA,EAAoB,CAAA,KAAM,WAAA,GAAc,6BAA6B,EAAE,CAAA,CAAA;AAAA,QAClF,WAAA,EAAa,MAAM,eAAA,CAAgB,IAAI,CAAA;AAAA,QACvC,YAAA,EAAc,MAAM,cAAA,CAAe,CAAC,CAAA;AAAA,QAEnC,QAAA,EAAA;AAAA,OAAA;AAAA,MALI;AAAA,KAOR,CAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;;AClIA,SAAS,WAAW,OAAA,EAAyB;AAC3C,EAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,OAAO,CAAA;AAC1B,EAAA,MAAM,EAAA,GAAK,OAAO,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AAC9C,EAAA,MAAM,EAAA,GAAK,OAAO,CAAA,CAAE,QAAA,KAAa,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AACnD,EAAA,MAAM,IAAA,GAAO,EAAE,WAAA,EAAY;AAC3B,EAAA,MAAM,EAAA,GAAK,OAAO,CAAA,CAAE,QAAA,EAAU,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AAC/C,EAAA,MAAM,GAAA,GAAM,OAAO,CAAA,CAAE,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AAClD,EAAA,OAAO,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,EAAE,IAAI,IAAI,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA;AACzC;AAEO,SAAS,QAAA,CAAS;AAAA,EACvB,IAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAAkB;AAChB,EAAA,uBACEK,eAAA,CAAC,SAAI,SAAA,EAAU,SAAA,EAAU,SAAS,MAAM,MAAA,CAAO,IAAI,CAAA,EACjD,QAAA,EAAA;AAAA,oBAAAL,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EACV,QAAA,EAAA,IAAA,CAAK,SACJ,2EAAA,EACJ,CAAA;AAAA,IACC,KAAK,OAAA,oBAAWA,cAAA,CAAC,OAAE,SAAA,EAAU,kBAAA,EAAoB,eAAK,OAAA,EAAQ,CAAA;AAAA,oBAC/DK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,MAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,UAAA,CAAW,KAAK,SAAS,CAAA;AAAA,QACzB,UAAA,CAAW,IAAA,CAAK,SAAS,CAAA,KAAM,UAAA,CAAW,IAAA,CAAK,SAAS,CAAA,IACvD,CAAA,wDAAA,EAA6D,UAAA,CAAW,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA,OAAA,EAC3F,CAAA;AAAA,qCACC,KAAA,EAAA,EAAI,SAAA,EAAU,oBACZ,QAAA,EAAA,CAAC,IAAA,CAAK,4BACLA,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAAN,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,iCAAA;AAAA,YACV,KAAA,EACE,0GAAA;AAAA,YAEF,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,cAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,cAAA,MAAA,CAAO,IAAI,CAAA;AAAA,YACb,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,iCAAA;AAAA,YACV,KAAA,EACE,0GAAA;AAAA,YAEF,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,cAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,cAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,YACd,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,kCAAA;AAAA,YACV,KAAA,EAAO,4CAAA;AAAA,YACP,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,cAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,cAAA,QAAA,CAAS,IAAI,CAAA;AAAA,YACf,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA;AACH,OAAA,EACF,CAAA,EAEJ;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;ACpFA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,OAAO,CAAC;AACV;AACA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAChC;AACA,SAASO,iBAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACpE,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AAClG,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG,EAAE;AACZ,MAAM,CAAC,GAAG,IAAI;AACd,MAAM,CAAC,GAAG,KAAK;AACf,IAAI,IAAI;AACR,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;AACrB,IAAI,CAAC,SAAS;AACd,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACzE,MAAM,CAAC,SAAS;AAChB,QAAQ,IAAI,CAAC,EAAE,MAAM,CAAC;AACtB,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,CAAC;AACZ,EAAE;AACF;AACA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC;AAClK;AACA,SAASC,SAAO,CAAC,CAAC,EAAE,CAAC,EAAE;AACvB,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACpC,MAAM,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;AAC7D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE;AACF,EAAE,OAAO,CAAC;AACV;AACA,SAASC,gBAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;AACpD,IAAI,CAAC,GAAG,CAAC,GAAGD,SAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1D,MAAMD,iBAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAGC,SAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACtJ,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,OAAO,CAAC;AACV;AACA,SAAS,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE;AACxC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE;AAC1B,EAAE,IAAI,CAAC;AACP,IAAI,CAAC;AACL,IAAI,CAAC,GAAG,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3C,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvH,EAAE;AACF,EAAE,OAAO,CAAC;AACV;AACA,SAAS,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7C,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE;AAC1B,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACrD,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACf,EAAE;AACF,EAAE,OAAO,CAAC;AACV;AACA,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,gBAAgB,EAAE;AACrH;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,EAAE,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;AAC1C,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/B,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,EAAE,OAAO,CAAC;AACtC,IAAI,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC;AACvE,EAAE;AACF,EAAE,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAC9C;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC;AACnC,EAAE,OAAO,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC1C;AACA,SAAS,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3C,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5C,IAAI,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM;AAC/N,EAAE;AACF;;AC3GA,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AAC1C,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;AAClB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,QAAQ,EAAE;AAChB,KAAK,CAAC;AACN,EAAE,CAAC,MAAM;AACT,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACpB,EAAE;;AAEF,EAAE,OAAO,GAAG;AACZ;;AAEA,SAAS,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE;AACzC,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEhC,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC;AACtD,IAAI,IAAI,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;AAChE,MAAM,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU;AACpE,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;AAClC,EAAE;;AAEF,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;;AAEzD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC3D,QAAQ,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACjD,MAAM,CAAC,CAAC;AACR,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,yBAAyB,EAAE;AACjD,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC/E,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACrD,QAAQ,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxF,MAAM,CAAC,CAAC;AACR,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf;;AAEA,SAASE,SAAO,GAAG;AACnB,EAAE,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AAC1F,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAC/B,EAAE;;AAEF,EAAE,OAAO,UAAU,CAAC,EAAE;AACtB,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,CAAC,EAAE,CAAC,CAAC;AACT,EAAE,CAAC;AACH;;AAEA,SAASC,OAAK,CAAC,EAAE,EAAE;AACnB,EAAE,OAAO,SAAS,OAAO,GAAG;AAC5B,IAAI,IAAI,KAAK,GAAG,IAAI;;AAEpB,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AACnG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AACpC,IAAI;;AAEJ,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY;AACzE,MAAM,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AACzG,QAAQ,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AAC1C,MAAM;;AAEN,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC5D,IAAI,CAAC;AACL,EAAE,CAAC;AACH;;AAEA,SAASC,UAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACnD;;AAEA,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AACjC;;AAEA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,OAAO,OAAO,KAAK,KAAK,UAAU;AACpC;;AAEA,SAAS,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC1C,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC/D;;AAEA,SAAS,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE;AAC3C,EAAE,IAAI,CAACA,UAAQ,CAAC,OAAO,CAAC,EAAEC,cAAY,CAAC,YAAY,CAAC;AACpD,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE;AACjD,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1C,EAAE,CAAC,CAAC,EAAEA,cAAY,CAAC,aAAa,CAAC;AACjC,EAAE,OAAO,OAAO;AAChB;;AAEA,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAEA,cAAY,CAAC,cAAc,CAAC;AACzD;;AAEA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAID,UAAQ,CAAC,OAAO,CAAC,CAAC,EAAEC,cAAY,CAAC,aAAa,CAAC;AAC9E,EAAE,IAAID,UAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,QAAQ,EAAE;AAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AAChC,EAAE,CAAC,CAAC,EAAEC,cAAY,CAAC,cAAc,CAAC;AAClC;;AAEA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,EAAE,IAAI,CAAC,OAAO,EAAEA,cAAY,CAAC,mBAAmB,CAAC;AACjD,EAAE,IAAI,CAACD,UAAQ,CAAC,OAAO,CAAC,EAAEC,cAAY,CAAC,aAAa,CAAC;AACrD,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAEA,cAAY,CAAC,gBAAgB,CAAC;AACtD;;AAEA,SAASC,YAAU,CAAC,aAAa,EAAE,IAAI,EAAE;AACzC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAClE;;AAEA,IAAIC,eAAa,GAAG;AACpB,EAAE,iBAAiB,EAAE,2BAA2B;AAChD,EAAE,WAAW,EAAE,mCAAmC;AAClD,EAAE,cAAc,EAAE,6CAA6C;AAC/D,EAAE,WAAW,EAAE,2CAA2C;AAC1D,EAAE,YAAY,EAAE,oCAAoC;AACpD,EAAE,YAAY,EAAE,+BAA+B;AAC/C,EAAE,UAAU,EAAE,+CAA+C;AAC7D,EAAE,WAAW,EAAE,gGAAgG;AAC/G,EAAE,SAAS,EAAE;AACb,CAAC;AACD,IAAIF,cAAY,GAAGF,OAAK,CAACG,YAAU,CAAC,CAACC,eAAa,CAAC;AACnD,IAAIC,YAAU,GAAG;AACjB,EAAE,OAAO,EAAE,eAAe;AAC1B,EAAE,QAAQ,EAAE,gBAAgB;AAC5B,EAAE,OAAO,EAAE,eAAe;AAC1B,EAAE,OAAO,EAAE;AACX,CAAC;;AAED,SAAS,MAAM,CAAC,OAAO,EAAE;AACzB,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;AACtF,EAAEA,YAAU,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,EAAEA,YAAU,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,EAAE;AACb,GAAG;AACH,EAAE,IAAI,SAAS,GAAGL,OAAK,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;AACvD,EAAE,IAAI,MAAM,GAAGA,OAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;AACxC,EAAE,IAAI,QAAQ,GAAGA,OAAK,CAACK,YAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,UAAU,GAAGL,OAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;;AAE/C,EAAE,SAAS,QAAQ,GAAG;AACtB,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,EAAE;AACxG,MAAM,OAAO,KAAK;AAClB,IAAI,CAAC;AACL,IAAIK,YAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACjC,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;AAClC,EAAE;;AAEF,EAAE,SAAS,QAAQ,CAAC,aAAa,EAAE;AACnC,IAAIN,SAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,aAAa,CAAC;AACnE,EAAE;;AAEF,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC7B;;AAEA,SAAS,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;AAC9C,EAAE,OAAO,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,aAAa;AACjF;;AAEA,SAAS,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AACrC,EAAE,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC5E,EAAE,OAAO,OAAO;AAChB;;AAEA,SAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACjD,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AAC/F,IAAI,IAAI,cAAc;;AAEtB,IAAI,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,cAAc,KAAK,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChJ,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,OAAO;AAChB;;AAEA,IAAI,KAAK,GAAG;AACZ,EAAE,MAAM,EAAE;AACV,CAAC;;AC9LD,IAAIO,QAAM,GAAG;AACb,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR;AACA,CAAC;;ACJD,SAAS,KAAK,CAAC,EAAE,EAAE;AACnB,EAAE,OAAO,SAAS,OAAO,GAAG;AAC5B,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AAC7F,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAClC,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY;AACzE,MAAM,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AACzG,QAAQ,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AAC1C,MAAM;AACN,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC5D,IAAI,CAAC;AACL,EAAE,CAAC;AACH;;ACbA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACnD;;ACCA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,kBAAkB,CAAC;AAC/C,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;AACnD,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE;AACnB,IAAI,sBAAsB,EAAE;AAC5B,IAAI,OAAO;AACX,MAAM,KAAK,EAAE;AACb,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;AACxB;AACA,KAAK;AACL,EAAE;AACF,EAAE,OAAO,MAAM;AACf;;AAEA;AACA;AACA;AACA,SAAS,sBAAsB,GAAG;AAClC,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AACzC;AACA,SAAS,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE;AACzC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAClE;AACA,IAAI,aAAa,GAAG;AACpB,EAAE,gBAAgB,EAAE,sCAAsC;AAC1D,EAAE,UAAU,EAAE,8CAA8C;AAC5D,EAAE,SAAS,EAAE,6DAA6D;AAC1E,EAAE,WAAW,EAAE;AACf,CAAC;AACD,IAAI,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;AACnD,IAAI,UAAU,GAAG;AACjB,EAAE,MAAM,EAAE;AACV,CAAC;;ACxCD,IAAI,OAAO,GAAG,SAAS,OAAO,GAAG;AACjC,EAAE,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AAC1F,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAC/B,EAAE;AACF,EAAE,OAAO,UAAU,CAAC,EAAE;AACtB,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3C,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,CAAC,EAAE,CAAC,CAAC;AACT,EAAE,CAAC;AACH,CAAC;;ACPD,SAAS,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/B,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC7C,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE;AACvC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;AACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM;AACN,IAAI;AACJ,EAAE,CAAC,CAAC;AACJ,EAAE,OAAOR,gBAAc,CAACA,gBAAc,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;AAC3D;;ACXA;;AAEA,IAAI,mBAAmB,GAAG;AAC1B,EAAE,IAAI,EAAE,aAAa;AACrB,EAAE,GAAG,EAAE;AACP,CAAC;AACD,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,EAAE,IAAI,YAAY,GAAG,KAAK;AAC1B,EAAE,IAAI,cAAc,GAAG,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;AAC9D,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;AAChC,MAAM,OAAO,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;AACtE,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC5B,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,cAAc,CAAC,MAAM,GAAG,YAAY;AAC7C,IAAI,OAAO,YAAY,GAAG,IAAI;AAC9B,EAAE,CAAC,EAAE,cAAc;AACnB;;ACTA,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;;AAE1B;AACA,IAAI,aAAa,GAAGS,KAAK,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,MAAM,EAAE;AACZ,GAAG,CAAC;AACJ,EAAE,cAAc,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;AACnD,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC;AAC9B,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC;;AAE9B;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,YAAY,EAAE;AAC9B,EAAE,IAAI,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;AAC1D,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM;AACtC,IAAI,MAAM,GAAG,wBAAwB,CAAC,kBAAkB,EAAE,SAAS,CAAC;AACpE,EAAE,QAAQ,CAAC,UAAU,KAAK,EAAE;AAC5B,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;AACzC,MAAM,MAAM,EAAE;AACd,KAAK;AACL,EAAE,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,SAAS,IAAI,GAAG;AAChB,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,aAAa,EAAE,aAAa;AAClC,MAAM,OAAO,EAAE;AACf,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAC5B,IAAI,QAAQ,CAAC;AACb,MAAM,aAAa,EAAE;AACrB,KAAK,CAAC;AACN,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AACjC,MAAM,OAAO,cAAc,CAAC,cAAc,CAAC;AAC3C,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C,MAAM,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;AACxC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,MAAM,OAAO,cAAc,CAAC,cAAc,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC,eAAe,CAAC;AAClE,EAAE;AACF,EAAE,OAAO,cAAc,CAAC,cAAc,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,EAAE,OAAO,GAAG,KAAK,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,MAAM;AAC1C;;AAEA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,eAAe,EAAE;AAChD,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,KAAK,EAAE;AACxC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;AAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,MAAM,EAAE;AACd,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AACjF,EAAE,YAAY,CAAC,MAAM,GAAG,YAAY;AACpC,IAAI,OAAO,eAAe,EAAE;AAC5B,EAAE,CAAC;AACH,EAAE,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM;AACrC,EAAE,OAAO,YAAY;AACrB;;AAEA;AACA;AACA;AACA,SAAS,eAAe,GAAG;AAC3B,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,KAAK,EAAE;AACxC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;AAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,MAAM,EAAE;AACd,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO;AAC9B,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,EAAE,OAAO,CAAC,CAAC,uBAAuB,CAAC,EAAE,UAAU,MAAM,EAAE;AACvD,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,0BAA0B,MAAM;AACzD,IAAI,mBAAmB,CAAC,MAAM,CAAC;AAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACzB,EAAE,CAAC,EAAE,UAAU,KAAK,EAAE;AACtB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,EAAE,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AAC1B,IAAI,QAAQ,CAAC;AACb,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,GAAG;AAC/B,EAAE,OAAO,QAAQ,CAAC,UAAU,KAAK,EAAE;AACnC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;AAC7B,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ;AACA,IAAI,cAAc,GAAG,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;AAC5D,EAAE,OAAO,QAAQ,CAAC;AAClB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,MAAM,EAAE;AACZ,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,IAAI,MAAM,GAAG;AACb,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,mBAAmB,EAAE;AACvB,CAAC;;ACxKgP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAuB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOC,CAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAACC,MAAE,CAAC,EAAE,CAAC,CAAoC,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,WAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAiD,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAACC,QAAE,CAAC,IAAE,CAAC,CAACC,WAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,UAAE,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,UAAE,CAAC,IAAE,CAAC,CAAC,CAAC,CAACC,QAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAACC,MAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACC,aAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,aAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,WAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,WAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,GAAE,CAAC,OAAOC,CAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAQC,MAAE,CAAC,EAAE,EAAia,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACC,QAAE,EAAE,CAAC,OAAOC,WAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,UAAE,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,UAAE,CAAC,IAAE,CAAC,CAAC,CAAC,CAACC,QAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,QAAC,EAAE,CAAC,CAAC,CAACA,QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAACA,QAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAACC,MAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACC,aAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,WAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,WAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAACA,WAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,WAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAM,IAAI,CAAC,CAAC,EAAE,OAAO,GAAE,CAAC,CAAC,OAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,GAAE,CAAC,OAAOC,CAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAACC,MAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;;ACapwM,SAAS,UAAA,CAAW,EAAE,IAAA,EAAM,OAAA,EAAS,kBAAkB,KAAA,EAAO,MAAA,EAAQ,SAAQ,EAAoB;AAbzG,EAAA,IAAA,EAAA;AAcE,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,kBAAA,EAAmB;AACrC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAItC,WAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAS,EAAE,CAAA;AACzC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,WAAS,eAAe,CAAA;AAC9D,EAAA,MAAM,UAAA,GAAA,CAAa,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,QAAA,KAAN,IAAA,GAAA,EAAA,GAAkB,KAAA;AACrC,EAAA,MAAM,QAAA,GAAWC,SAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,gBAAA,GAAmBA,SAAO,KAAK,CAAA;AAGrC,EAAAE,WAAA,CAAU,MAAM;AAxBlB,IAAA,IAAAoC,GAAAA,EAAA,EAAA;AAyBI,IAAA,IAAI,OAAA,EAAS;AACb,IAAA,QAAA,CAAA,CAASA,GAAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAA,KAAN,IAAA,GAAAA,MAAe,EAAE,CAAA;AAC1B,IAAA,UAAA,CAAA,CAAW,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,OAAA,KAAN,IAAA,GAAA,EAAA,GAAiB,EAAE,CAAA;AAAA,EAChC,CAAA,EAAG,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA;AAGlB,EAAApC,WAAA,CAAU,MAAM;AA/BlB,IAAA,IAAAoC,GAAAA;AAgCI,IAAA,IAAI,CAAC,OAAA,EAAS,CAAAA,MAAA,QAAA,CAAS,OAAA,KAAT,gBAAAA,GAAAA,CAAkB,KAAA,EAAA;AAAA,EAClC,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAGZ,EAAApC,WAAA,CAAU,MAAM;AACd,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAqB;AACpC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,OAAA,EAAQ;AAAA,IAClC,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,OAAO,CAAA;AAC1C,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,OAAO,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,MAAM,UAAA,GAAaD,cAAY,YAAY;AACzC,IAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,EAAK,EAAG;AAErB,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,CAAO,EAAE,KAAA,EAAO,KAAA,CAAM,IAAA,IAAQ,OAAA,EAAS,OAAA,CAAQ,IAAA,EAAK,EAAG,CAAA;AAC7D,MAAA,OAAA,EAAQ;AAAA,IACV,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAER,CAAA,SAAE;AACA,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ,OAAO,CAAC,CAAA;AAEpC,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA2B;AAChD,IAAA,IAAI,EAAE,GAAA,KAAQ,OAAA,KAAY,CAAA,CAAE,OAAA,IAAW,EAAE,OAAA,CAAA,EAAU;AACjD,MAAA,UAAA,EAAW;AAAA,IACb;AAAA,EACF,CAAA;AAEA,EAAA,uBACEH,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,YAAA;AAAA,MACV,WAAA,EAAa,CAAC,CAAA,KAAM;AAAE,QAAA,IAAI,CAAA,CAAE,MAAA,KAAW,CAAA,CAAE,aAAA,mBAAgC,OAAA,GAAU,IAAA;AAAA,MAAM,CAAA;AAAA,MACzF,SAAA,EAAW,CAAC,CAAA,KAAM;AAAE,QAAA,IAAI,EAAE,MAAA,KAAW,CAAA,CAAE,aAAA,IAAiB,gBAAA,CAAiB,SAAS,OAAA,EAAQ;AAAG,QAAA,gBAAA,CAAiB,OAAA,GAAU,KAAA;AAAA,MAAO,CAAA;AAAA,MAE/H,QAAA,kBAAAK,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,WAAA;AAAA,UACV,aAAa,MAAM;AAAE,YAAA,gBAAA,CAAiB,OAAA,GAAU,KAAA;AAAA,UAAO,CAAA;AAAA,UACvD,SAAA,EAAW,aAAA;AAAA,UAEX,QAAA,EAAA;AAAA,4BAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mBAAA,EACb,QAAA,EAAA;AAAA,8BAAAL,cAAA,CAAC,QAAI,QAAA,EAAA,OAAA,GAAU,wDAAA,GAAc,aAAa,kDAAA,GAAa,IAAA,GAAO,yFAAmB,2EAAA,EAAgB,CAAA;AAAA,6CAChG,QAAA,EAAA,EAAO,SAAA,EAAU,iCAAA,EAAkC,OAAA,EAAS,SAC1D,QAAA,EAAA,QAAA,EACH;AAAA,aAAA,EACF,CAAA;AAAA,4BAEAK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,GAAU,MAAA,GAAS,MAAA,EAAU,EAC9E,QAAA,EAAA;AAAA,8BAAAL,cAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,GAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,UAAA;AAAA,kBACV,WAAA,EAAa,wDAAA;AAAA,kBACb,KAAA,EAAO,KAAA;AAAA,kBACP,SAAA,EAAW,GAAA;AAAA,kBACX,QAAA,EAAU,UAAA;AAAA,kBACV,QAAA,EAAU,CAAC,CAAA,KAAM;AAAE,oBAAA,IAAI,CAAC,UAAA,EAAY,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,kBAAG;AAAA;AAAA,eAChE;AAAA,8BACAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,kBAAAA,cAAA;AAAA,gBAACyC,EAAA;AAAA,gBAAA;AAAA,kBACC,MAAA,EAAO,MAAA;AAAA,kBACP,QAAA,EAAS,UAAA;AAAA,kBACT,KAAA,EAAO,KAAA,KAAU,MAAA,GAAS,SAAA,GAAY,OAAA;AAAA,kBACtC,KAAA,EAAO,OAAA;AAAA,kBACP,QAAA,EAAU,CAAC,GAAA,KAAQ;AAAE,oBAAA,IAAI,CAAC,UAAA,EAAY,UAAA,CAAW,GAAA,IAAA,IAAA,GAAA,GAAA,GAAO,EAAE,CAAA;AAAA,kBAAG,CAAA;AAAA,kBAC7D,OAAA,EAAS;AAAA,oBACP,QAAA,EAAU,UAAA;AAAA,oBACV,QAAA,EAAU,EAAA;AAAA,oBACV,UAAA,EAAY,2CAAA;AAAA,oBACZ,UAAA,EAAY,GAAA;AAAA,oBACZ,QAAA,EAAU,IAAA;AAAA,oBACV,OAAA,EAAS,EAAE,OAAA,EAAS,KAAA,EAAM;AAAA,oBAC1B,WAAA,EAAa,cAAc,IAAA,GAAO,KAAA;AAAA,oBAClC,WAAA,EAAa,KAAA;AAAA,oBACb,OAAA,EAAS,KAAA;AAAA,oBACT,oBAAA,EAAsB,CAAA;AAAA,oBACtB,mBAAA,EAAqB,cAAc,CAAA,GAAI,CAAA;AAAA,oBACvC,mBAAA,EAAqB,MAAA;AAAA,oBACrB,oBAAA,EAAsB,KAAA;AAAA,oBACtB,OAAA,EAAS,EAAE,GAAA,EAAK,EAAA,EAAI,QAAQ,EAAA,EAAG;AAAA,oBAC/B,WAAA,EAAa;AAAA;AACf;AAAA,eACF,EACF;AAAA,aAAA,EACF,CAAA;AAAA,YAEC,OAAA,oBAAWzC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,4BAE/CK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,GAAU,MAAA,GAAS,MAAA,EAAU,EAChF,QAAA,EAAA;AAAA,8BAAAA,eAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,MAAA,EAAQ,WAAU,EAC1G,QAAA,EAAA;AAAA,gCAAAL,cAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,UAAA;AAAA,oBACL,OAAA,EAAS,WAAA;AAAA,oBACT,UAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,OAAO;AAAA;AAAA,iBAClD;AAAA,gBAAE;AAAA,eAAA,EAEJ,CAAA;AAAA,8BACAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAiB,QAAA,EAAA,sLAAA,EAEjC,CAAA;AAAA,8BACAA,cAAA,CAAC,YAAO,SAAA,EAAU,sBAAA,EAAuB,SAAS,OAAA,EAC/C,QAAA,EAAA,UAAA,GAAa,+CAA+C,sCAAA,EAC/D,CAAA;AAAA,cACC,CAAC,UAAA,oBACAK,eAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,wBAAA;AAAA,kBACV,OAAA,EAAS,UAAA;AAAA,kBACT,QAAA,EAAU,MAAA;AAAA,kBAET,QAAA,EAAA;AAAA,oBAAA,MAAA,GAAS,oEAAA,GAAuE,wDAAA;AAAA,oCACjFA,eAAA,CAAC,UAAK,KAAA,EAAO,EAAE,UAAU,EAAA,EAAI,OAAA,EAAS,KAAI,EAAG,QAAA,EAAA;AAAA,sBAAA,OAAA;AAAA,sBAAM;AAAA,qBAAA,EAAS;AAAA;AAAA;AAAA;AAC9D,aAAA,EAEJ;AAAA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;;AC9IO,SAAS,cAAc,EAAE,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,SAAQ,EAAuB;AAC3F,EAAA,uBACEL,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EAAa,SAAS,QAAA,EACnC,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EAAY,KAAA,EAAO,EAAE,KAAA,EAAO,QAAQ,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,MAAA,EAAO,EAAG,OAAA,EAAS,CAAC,CAAA,KAAM,EAAE,eAAA,EAAgB,EACpH,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,kBAAAK,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,YAAA,EACb,QAAA,EAAA;AAAA,oBAAAL,cAAA,CAAC,OAAG,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,oBACZK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,UAAU,QAAA,EAAA,sCAAA,EAE5D,CAAA;AAAA,sBACAA,cAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,uBAAA,EAAwB,OAAA,EAAS,WAAW,QAAA,EAAU,OAAA,EACrE,QAAA,EAAA,OAAA,GAAU,wDAAA,GAAmB,4CAAA,EAChC;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ;;ACZA,SAAS,gBAAA,CAAiB,SAAiB,KAAA,EAAiC;AAC1E,EAAA,IAAI,SAAS,CAAA,EAAG;AACd,IAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,OAAM,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAC,CAAA;AAAA,EAClD;AAEA,EAAA,MAAM,KAAA,uBAAY,GAAA,EAAY;AAC9B,EAAA,KAAA,CAAM,IAAI,CAAC,CAAA;AACX,EAAA,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAC,CAAA;AACnB,EAAA,KAAA,IAAS,IAAI,OAAA,GAAU,CAAA,EAAG,CAAA,IAAK,OAAA,GAAU,GAAG,CAAA,EAAA,EAAK;AAC/C,IAAA,IAAI,KAAK,CAAA,IAAK,CAAA,GAAI,KAAA,EAAO,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA,EACtC;AAEA,EAAA,MAAM,MAAA,GAAS,CAAC,GAAG,KAAK,CAAA,CAAE,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAC9C,EAAA,MAAM,SAA2B,EAAC;AAElC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,IAAI,CAAA,GAAI,KAAK,MAAA,CAAO,CAAC,IAAI,MAAA,CAAO,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,EAAG;AAC1C,MAAA,MAAA,CAAO,KAAK,QAAG,CAAA;AAAA,IACjB;AACA,IAAA,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,EACvB;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,UAAA,CAAW;AAAA,EACzB,WAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,KAAA,GAAQD,SAAA,CAAQ,MAAM,gBAAA,CAAiB,WAAA,EAAa,UAAU,CAAA,EAAG,CAAC,WAAA,EAAa,UAAU,CAAC,CAAA;AAEhG,EAAAK,WAAA,CAAU,MAAM;AACd,IAAA,IAAI;AACF,MAAA,YAAA,CAAa,OAAA,CAAQ,cAAA,EAAgB,MAAA,CAAO,QAAQ,CAAC,CAAA;AAAA,IACvD,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAAe;AAAA,EACzB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,IAAA,GAAO,cAAc,QAAA,GAAW,CAAA;AACtC,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAA,CAAK,WAAA,GAAc,CAAA,IAAK,UAAU,aAAa,CAAA;AAE/D,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAEb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,MAAA,EAAA,EAAK,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,MAAA,IAAA;AAAA,MAAK,QAAA;AAAA,MAAE,EAAA;AAAA,MAAG,gBAAA;AAAA,MAAK;AAAA,KAAA,EAClB,CAAA;AAAA,oBAGAL,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,uBAAA;AAAA,QACV,KAAA,EAAO,QAAA;AAAA,QACP,QAAA,EAAU,CAAC,CAAA,KAAM,gBAAA,CAAiB,OAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QAEvD,QAAA,EAAA,eAAA,CAAgB,GAAA,CAAI,CAAC,GAAA,qBACpBA,cAAA,CAAC,YAAiB,KAAA,EAAO,GAAA,EACtB,QAAA,EAAA,GAAA,EAAA,EADU,GAEb,CACD;AAAA;AAAA,KACH;AAAA,oBAGAK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,sBAAAL,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oBAAA;AAAA,UACV,UAAU,WAAA,IAAe,CAAA;AAAA,UACzB,OAAA,EAAS,MAAM,YAAA,CAAa,WAAA,GAAc,CAAC,CAAA;AAAA,UAC5C,QAAA,EAAA;AAAA;AAAA,OAED;AAAA,MAEC,KAAA,CAAM,GAAA;AAAA,QAAI,CAAC,CAAA,EAAG,CAAA,KACb,CAAA,KAAM,QAAA,mBACJA,cAAA,CAAC,MAAA,EAAA,EAA2B,SAAA,EAAU,yBAAA,EAA0B,QAAA,EAAA,QAAA,EAAA,EAArD,CAAA,SAAA,EAAY,CAAC,EAAyC,CAAA,mBAEjEA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,CAAA,mBAAA,EAAsB,CAAA,KAAM,WAAA,GAAc,+BAA+B,EAAE,CAAA,CAAA;AAAA,YACtF,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,CAAA;AAAA,YAE5B,QAAA,EAAA,CAAA,GAAI;AAAA,WAAA;AAAA,UAJA;AAAA;AAKP,OAEJ;AAAA,sBAEAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oBAAA;AAAA,UACV,QAAA,EAAU,eAAe,UAAA,GAAa,CAAA;AAAA,UACtC,OAAA,EAAS,MAAM,YAAA,CAAa,WAAA,GAAc,CAAC,CAAA;AAAA,UAC5C,QAAA,EAAA;AAAA;AAAA;AAED,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;AC7GA,MAAM,YAAA,GAA6B;AAAA,EACjC,EAAE,KAAA,EAAO,wDAAA,EAA0D,KAAA,EAAO,OAAA,EAAQ;AAAA,EAClF,EAAE,KAAA,EAAO,8DAAA,EAAgE,KAAA,EAAO,SAAA,EAAU;AAAA,EAC1F,EAAE,KAAA,EAAO,2EAAA,EAA6E,KAAA,EAAO,WAAA,EAAY;AAAA,EACzG,EAAE,KAAA,EAAO,iFAAA,EAAmF,KAAA,EAAO,WAAA;AACrG,CAAA;AAEA,MAAM,YAAA,GAAe,gBAAA;AAOrB,SAAS,UAAU,KAAA,EAAuD;AACxE,EAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,KAAA,CAAM,MAAM,GAAG,CAAA;AACpC,EAAA,OAAO,EAAE,KAAA,EAAO,GAAA,EAAK,GAAA,KAAQ,KAAA,GAAQ,QAAQ,MAAA,EAAO;AACtD;AAEO,SAAS,OAAA,CAAQ,EAAE,KAAA,EAAO,QAAA,EAAS,EAAiB;AACzD,EAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAa,GAAA,EAAI,GAAI,UAAU,KAAK,CAAA;AAEnD,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAkB;AAC1C,IAAA,IAAI,UAAU,WAAA,EAAa;AACzB,MAAA,QAAA,CAAS,GAAG,KAAK,CAAA,CAAA,EAAI,QAAQ,KAAA,GAAQ,MAAA,GAAS,KAAK,CAAA,CAAE,CAAA;AAAA,IACvD,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,YAAY,KAAA,KAAU,YAAA;AAE5B,EAAA,uBACEK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,oBAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,+DAAA,EAAgE,CAAA;AAAA,IACjG,YAAA,CAAa,GAAA,CAAI,CAAC,GAAA,KAAQ;AACzB,MAAA,MAAM,QAAA,GAAW,IAAI,KAAA,KAAU,WAAA;AAC/B,MAAA,uBACEK,eAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAW,CAAA,aAAA,EAAgB,QAAA,GAAW,sBAAA,GAAyB,EAAE,CAAA,CAAA;AAAA,UACjE,OAAA,EAAS,MAAM,gBAAA,CAAiB,GAAA,CAAI,KAAK,CAAA;AAAA,UAExC,QAAA,EAAA;AAAA,YAAA,GAAA,CAAI,KAAA;AAAA,YACJ,QAAA,mCACE,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAkB,QAAA,EAAA,GAAA,KAAQ,KAAA,GAAQ,WAAM,QAAA,EAAI;AAAA;AAAA,SAAA;AAAA,QANzD,GAAA,CAAI;AAAA,OAQX;AAAA,IAEJ,CAAC,CAAA;AAAA,IACA,CAAC,SAAA,oBACAL,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,kCAAA;AAAA,QACV,OAAA,EAAS,MAAM,QAAA,CAAS,YAAY,CAAA;AAAA,QAEnC,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ;;ACjCA,SAAS,QAAA,CAAS;AAAA,EAChB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,WAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,UAAA,CAAS,KAAK,IAAI,CAAA;AAClD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAS,EAAE,CAAA;AACzC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,WAAS,KAAK,CAAA;AAExD,EAAA,MAAM,QAAA,GAAW,qBAAqB,IAAA,CAAK,EAAA;AAC3C,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,QAAA,CAAS,MAAA,GAAS,CAAA;AAC3C,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AAEtB,EAAA,MAAM,eAAe,YAAY;AAC/B,IAAA,MAAM,OAAA,GAAU,SAAS,IAAA,EAAK;AAC9B,IAAA,IAAI,CAAC,OAAA,IAAW,OAAA,KAAY,IAAA,CAAK,IAAA,EAAM;AACrC,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AACrB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,CAAS,KAAK,EAAA,EAAI,EAAE,MAAM,OAAA,EAAS,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,CAAA;AAClE,IAAA,UAAA,CAAW,KAAK,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,eAAe,YAAY;AAC/B,IAAA,MAAM,OAAA,GAAU,QAAQ,IAAA,EAAK;AAC7B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,WAAA,CAAY,KAAK,CAAA;AACjB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,SAAS,EAAE,IAAA,EAAM,SAAS,QAAA,EAAU,IAAA,CAAK,IAAI,CAAA;AACnD,IAAA,UAAA,CAAW,EAAE,CAAA;AACb,IAAA,WAAA,CAAY,KAAK,CAAA;AACjB,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,eAAe,YAAY;AAC/B,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,CAAS,KAAK,EAAE,CAAA;AAAA,IACxB,CAAA,SAAE;AACA,MAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAA;AAEA,EAAA,uBACEI,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAD,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,CAAA,eAAA,EAAkB,QAAA,GAAW,wBAAA,GAA2B,EAAE,CAAA,CAAA;AAAA,QACrE,KAAA,EAAO,EAAE,WAAA,EAAa,EAAA,GAAK,QAAQ,EAAA,EAAG;AAAA,QACtC,SAAS,MAAM;AACb,UAAA,QAAA,CAAS,KAAK,EAAE,CAAA;AAChB,UAAA,IAAI,WAAA,EAAa,WAAA,CAAY,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QACxC,CAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,MAAA,EAAA,EAAK,WAAU,iBAAA,EACb,QAAA,EAAA;AAAA,YAAA,QAAA,IAAY,cAAc,WAAA,GAAiB,WAAA;AAAA,YAC3C,+BACCL,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,wBAAA,EACb,QAAA,EAAA,QAAA,GAAW,WAAW,QAAA,EACzB;AAAA,WAAA,EAEJ,CAAA;AAAA,UACC,OAAA,mBACCA,cAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,iBAAA;AAAA,cACV,KAAA,EAAO,QAAA;AAAA,cACP,SAAA,EAAS,IAAA;AAAA,cACT,UAAU,CAAC,CAAA,KAAM,WAAA,CAAY,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC3C,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,gBAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,EAAS,YAAA,EAAa;AACpC,gBAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,kBAAA,UAAA,CAAW,KAAK,CAAA;AAChB,kBAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AAAA,gBACvB;AAAA,cACF,CAAA;AAAA,cACA,MAAA,EAAQ,YAAA;AAAA,cACR,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA;AAAgB;AAAA,8BAGpCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,eAAK,IAAA,EAAK,CAAA;AAAA,UAE9C,CAAC,OAAA,IAAW,IAAA,CAAK,SAAA,GAAY,CAAA,mCAC3B,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,IAAA,CAAK,SAAA,EAAU,CAAA;AAAA,UAEpD,CAAC,OAAA,IAAW,CAAC,4BACZK,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,4BAAAL,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,uBAAA;AAAA,gBACV,KAAA,EACE,gFAAA;AAAA,gBAEF,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kBAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AACrB,kBAAA,UAAA,CAAW,IAAI,CAAA;AAAA,gBACjB,CAAA;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,4BACAA,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,uBAAA;AAAA,gBACV,KAAA,EACE,6FAAA;AAAA,gBAEF,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kBAAA,WAAA,CAAY,IAAI,CAAA;AAChB,kBAAA,WAAA,CAAY,IAAI,CAAA;AAAA,gBAClB,CAAA;AAAA,gBACD,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAA,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,qDAAA;AAAA,gBACV,KAAA,EACE,2EAAA;AAAA,gBAEF,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kBAAA,WAAA,CAAY,IAAI,CAAA;AAAA,gBAClB,CAAA;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA;AACH,WAAA,EACF;AAAA;AAAA;AAAA,KAEJ;AAAA,IACC,YACC,WAAA,IACA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,KAAA,qBACjBA,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAM,KAAA;AAAA,QACN,OAAO,KAAA,GAAQ,CAAA;AAAA,QACf,gBAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAPK,KAAA,CAAM;AAAA,KASd,CAAA;AAAA,IACF,QAAA,oBACCK,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,gBAAA;AAAA,QACV,OAAO,EAAE,WAAA,EAAa,EAAA,GAAA,CAAM,KAAA,GAAQ,KAAK,EAAA,EAAG;AAAA,QAE5C,QAAA,EAAA;AAAA,0BAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,WAAA,EAAe,CAAA;AAAA,0BAClDA,cAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,iBAAA;AAAA,cACV,WAAA,EACE,qEAAA;AAAA,cAEF,KAAA,EAAO,OAAA;AAAA,cACP,SAAA,EAAS,IAAA;AAAA,cACT,UAAU,CAAC,CAAA,KAAM,UAAA,CAAW,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC1C,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,gBAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,EAAS,YAAA,EAAa;AACpC,gBAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,kBAAA,WAAA,CAAY,KAAK,CAAA;AACjB,kBAAA,UAAA,CAAW,EAAE,CAAA;AAAA,gBACf;AAAA,cACF,CAAA;AAAA,cACA,MAAA,EAAQ,YAAA;AAAA,cACR,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA;AAAgB;AAAA;AACpC;AAAA;AAAA,KACF;AAAA,IAED,QAAA,oBACCA,cAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,CAAA,8EAAA,EAAmF,IAAA,CAAK,IAAI,CAAA,+LAAA,CAAA;AAAA,QACrG,SAAA,EAAW,YAAA;AAAA,QACX,QAAA,EAAU,MAAM,WAAA,CAAY,KAAK,CAAA;AAAA,QACjC,OAAA,EAAS;AAAA;AAAA;AACX,GAAA,EAEJ,CAAA;AAEJ;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,IAAA;AAAA,EACA,OAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIC,WAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,WAAS,EAAE,CAAA;AAE3C,EAAAG,WAAA,CAAU,MAAM;AACd,IAAA,IAAI;AACF,MAAA,YAAA,CAAa,OAAA;AAAA,QACX,qBAAA;AAAA,QACA,KAAK,SAAA,CAAU,EAAE,QAAA,EAAU,gBAAA,EAAkB,YAAY;AAAA,OAC3D;AAAA,IACF,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAER;AAAA,EACF,CAAA,EAAG,CAAC,gBAAA,EAAkB,UAAU,CAAC,CAAA;AAEjC,EAAA,MAAM,gBAAA,GAAmBD,cAAY,YAAY;AAC/C,IAAA,MAAM,OAAA,GAAU,SAAS,IAAA,EAAK;AAC9B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA;AAChC,IAAA,WAAA,CAAY,EAAE,CAAA;AACd,IAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,EACvB,CAAA,EAAG,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAEvB,EAAA,MAAM,KAAA,GAAQ,gBAAA,KAAqB,IAAA,IAAQ,CAAC,UAAA;AAC5C,EAAA,MAAM,MAAA,GAAS,qBAAqB,IAAA,IAAQ,UAAA;AAE5C,EAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAW,cAAc,SAAA,GAAY,uBAAA,GAA0B,EAAE,CAAA,CAAA,EACpE,QAAA,EAAA;AAAA,oBAAAE,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,CAAC,SAAA,oBAAaL,cAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,gCAAA,EAAiC,CAAA;AAAA,sBACvDA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,kBAAAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,uBAAA;AAAA,UACV,KAAA,EACE,YACI,iFAAA,GACA,qEAAA;AAAA,UAEN,OAAA,EAAS,QAAA;AAAA,UAER,sBAAY,QAAA,GAAW;AAAA;AAAA,OAC1B,EACF;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,CAAC,SAAA,oBACAK,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,CAAA,eAAA,EAAkB,KAAA,GAAQ,wBAAA,GAA2B,EAAE,CAAA,CAAA;AAAA,UAClE,OAAA,EAAS,WAAA;AAAA,UAET,QAAA,EAAA;AAAA,4BAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,WAAA,EAAe,CAAA;AAAA,4BAClDA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA,+DAAA,EACH;AAAA;AAAA;AAAA,OACF;AAAA,sBAEAK,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,CAAA,eAAA,EAAkB,MAAA,GAAS,wBAAA,GAA2B,EAAE,CAAA,CAAA;AAAA,UACnE,OAAA,EAAS,gBAAA;AAAA,UAET,QAAA,EAAA;AAAA,4BAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,WAAA,EAAe,CAAA;AAAA,4BAClDA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA,mDAAA,EACH;AAAA;AAAA;AAAA,OACF;AAAA,sBAEAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAsB,CAAA;AAAA,MAEpC,0BACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACZ,oEACH,CAAA,GACE,IAAA,CAAK,MAAA,KAAW,CAAA,kCACjB,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,mDAAA,EACH,KAEC,MAAM;AACL,QAAA,MAAM,gBAAgB,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,QAAQ,CAAA;AACnD,QAAA,MAAM,cAAc,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,EAAE,QAAQ,CAAA;AAClD,QAAA,uBACEK,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,WAAA,CAAY,MAAA,GAAS,qBACpBD,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,aAAA,CAAc,SAAS,CAAA,oBACtBN,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAEX,QAAA,EAAA,kGAAA,EAEJ,CAAA;AAAA,YAED,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,qBAChBA,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBAEC,IAAA;AAAA,gBACA,KAAA,EAAO,CAAA;AAAA,gBACP,gBAAA;AAAA,gBACA,QAAA,EAAU,cAAA;AAAA,gBACV,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA;AAAA,eAAA;AAAA,cAPK,IAAA,CAAK;AAAA,aASb;AAAA,WAAA,EACH,CAAA;AAAA,UAED,cAAc,MAAA,GAAS,CAAA,oBACtBA,cAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EAAsB,CAAA;AAAA,UAEtC,aAAA,CAAc,MAAA,GAAS,CAAA,oBACtBK,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAAN,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EAEX,QAAA,EAAA,wDAAA,EAEJ,CAAA;AAAA,YACC,aAAA,CAAc,GAAA,CAAI,CAAC,IAAA,qBAClBA,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBAEC,IAAA;AAAA,gBACA,KAAA,EAAO,CAAA;AAAA,gBACP,gBAAA;AAAA,gBACA,QAAA,EAAU,cAAA;AAAA,gBACV,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA;AAAA,eAAA;AAAA,cAPK,IAAA,CAAK;AAAA,aASb;AAAA,WAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,MAEJ,CAAA,GAAG;AAAA,MAGJ,YAAA,mBACCK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,wBAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,WAAA,EAAe,CAAA;AAAA,wBAClDA,cAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,iBAAA;AAAA,YACV,WAAA,EACE,uFAAA;AAAA,YAEF,KAAA,EAAO,QAAA;AAAA,YACP,SAAA,EAAS,IAAA;AAAA,YACT,UAAU,CAAC,CAAA,KAAM,WAAA,CAAY,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC3C,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,cAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,EAAS,gBAAA,EAAiB;AACxC,cAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,gBAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,gBAAA,WAAA,CAAY,EAAE,CAAA;AAAA,cAChB;AAAA,YACF,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA;AAAA;AACV,OAAA,EACF,CAAA,mBAEAK,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,uCAAA;AAAA,UACV,OAAA,EAAS,MAAM,eAAA,CAAgB,IAAI,CAAA;AAAA,UAEnC,QAAA,EAAA;AAAA,4BAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAuB,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,4BACxCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAEZ,QAAA,EAAA,+DAAA,EAEJ;AAAA;AAAA;AAAA;AACF,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;;AChZA,SAAS,cAAA,CAAe;AAAA,EACtB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,WAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,QAAA,CAAS,MAAA,GAAS,CAAA;AAC3C,EAAA,MAAM,UAAA,GAAa,KAAK,EAAA,KAAO,UAAA;AAE/B,EAAA,uBACEI,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAD,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,CAAA,eAAA,EAAkB,QAAA,KAAa,IAAA,CAAK,EAAA,GAAK,2BAA2B,EAAE,CAAA,CAAA,EAAI,UAAA,GAAa,0BAAA,GAA6B,EAAE,CAAA,CAAA;AAAA,QACjI,KAAA,EAAO,EAAE,WAAA,EAAa,EAAA,GAAK,QAAQ,EAAA,EAAG;AAAA,QACtC,SAAS,MAAM;AAAE,UAAA,IAAI,CAAC,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAE,CAAA;AAAA,QAAG,CAAA;AAAA,QAEpD,QAAA,EAAA;AAAA,UAAA,WAAA,oBACCL,cAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,CAAA,mBAAA,EAAsB,QAAA,GAAW,0BAAA,GAA6B,EAAE,CAAA,CAAA;AAAA,cAC3E,OAAA,EAAS,CAAC,CAAA,KAAM;AAAE,gBAAA,CAAA,CAAE,eAAA,EAAgB;AAAG,gBAAA,WAAA,CAAY,CAAC,QAAQ,CAAA;AAAA,cAAG,CAAA;AAAA,cAE9D,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,CAAC,WAAA,oBAAeA,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8CAAA,EAA+C,CAAA;AAAA,0BAChFK,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,IAAA;AAAA,YACL,UAAA,oBAAcL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA2B,QAAA,EAAA,oDAAA,EAAqD;AAAA,WAAA,EACjH;AAAA;AAAA;AAAA,KACF;AAAA,IACC,YAAY,WAAA,IAAe,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,KAAA,qBAC7CA,cAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAM,KAAA;AAAA,QACN,OAAO,KAAA,GAAQ,CAAA;AAAA,QACf,QAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OAAA;AAAA,MALK,KAAA,CAAM;AAAA,KAOd;AAAA,GAAA,EACH,CAAA;AAEJ;AAEO,SAAS,kBAAA,CAAmB;AAAA,EACjC,KAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,WAAwB,IAAI,CAAA;AAE5D,EAAA,uBACED,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EAAa,SAAS,QAAA,EACnC,QAAA,kBAAAA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,WAAA;AAAA,MACV,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,UAAU,GAAA,EAAK,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,MAAA,EAAO;AAAA,MACzE,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA,EAAgB;AAAA,MAElC,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,KAAA,EAAO,EAAE,OAAA,EAAS,CAAA,EAAE,EACnD,QAAA,kBAAAK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,wBAAAL,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAE1CK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACX,QAAA,EAAA;AAAA,0BAAA,CAAA,MAAM;AACN,YAAA,MAAM,eAAe,eAAA,KAAoB,IAAA;AACzC,YAAA,uBACEA,eAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,kBAAkB,QAAA,KAAa,IAAA,GAAO,2BAA2B,EAAE,CAAA,CAAA,EAAI,YAAA,GAAe,0BAAA,GAA6B,EAAE,CAAA,CAAA;AAAA,gBAChI,KAAA,EAAO,EAAE,WAAA,EAAa,EAAA,EAAG;AAAA,gBACzB,SAAS,MAAM;AAAE,kBAAA,IAAI,CAAC,YAAA,EAAc,WAAA,CAAY,IAAI,CAAA;AAAA,gBAAG,CAAA;AAAA,gBAEvD,QAAA,EAAA;AAAA,kCAAAL,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8CAAA,EAA+C,CAAA;AAAA,kCAC/DK,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,0FAAA;AAAA,oBACA,YAAA,oBAAgBL,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA2B,QAAA,EAAA,oDAAA,EAAqD;AAAA,mBAAA,EACnH;AAAA;AAAA;AAAA,aACF;AAAA,UAEJ,CAAA,GAAG;AAAA,UAEF,IAAA,CAAK,GAAA,CAAI,CAAC,IAAA,qBACTA,cAAA;AAAA,YAAC,cAAA;AAAA,YAAA;AAAA,cAEC,IAAA;AAAA,cACA,KAAA,EAAO,CAAA;AAAA,cACP,QAAA;AAAA,cACA,UAAA,EAAY,eAAA;AAAA,cACZ,QAAA,EAAU;AAAA,aAAA;AAAA,YALL,IAAA,CAAK;AAAA,WAOb;AAAA,SAAA,EACH,CAAA;AAAA,wBAEAK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,0BAAAL,cAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,OAAA,EAAS,UAC/C,QAAA,EAAA,sCAAA,EACH,CAAA;AAAA,0BACAA,cAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,wBAAA;AAAA,cACV,QAAA,EAAU,WAAW,QAAA,KAAa,eAAA;AAAA,cAClC,OAAA,EAAS,MAAM,SAAA,CAAU,QAAQ,CAAA;AAAA,cAEhC,oBAAU,8DAAA,GAAiE;AAAA;AAAA;AAC9E,SAAA,EACF;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;AC5GA,SAAS,mBAAA,GAA+E;AACtF,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,OAAA,CAAQ,qBAAqB,CAAA;AACxD,IAAA,IAAI,KAAA,EAAO,OAAO,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAAA,EACpC,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,EAAe;AACvB,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,YAAA,CAAa,aAAqB,OAAA,EAA2B;AACpE,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,OAAA,CAAQ,cAAc,CAAA;AACjD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAM,IAAA,GAAO,OAAO,KAAK,CAAA;AACzB,MAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,IAAI,CAAA,EAAG,OAAO,IAAA;AAAA,IACrC;AAAA,EACF,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,EAAe;AACvB,EAAA,OAAO,WAAA;AACT;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA,GAAW,EAAA;AAAA,EACX,eAAA,GAAkB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,EACjC,KAAA,GAAQ,4CAAA;AAAA,EACR,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAqB;AAlDrB,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmDE,EAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAM,GAAI,kBAAA,EAAmB;AAG1C,EAAA,MAAM,kBAAkB,QAAA,KAAa,MAAA,IAAa,QAAA,KAAa,MAAA,GAAY,OAAO,mBAAA,EAAoB;AACtG,EAAA,MAAM,CAAC,kBAAkB,mBAAmB,CAAA,GAAIC,YAAwB,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,QAAA,KAA7B,IAAA,GAAA,EAAA,GAAyC,IAAI,CAAA;AACrH,EAAA,MAAM,CAAC,YAAY,aAAa,CAAA,GAAIA,YAAS,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,UAAA,KAA7B,IAAA,GAAA,EAAA,GAA2C,KAAK,CAAA;AAE7F,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IAAO,aAAA;AAAA,IAAe,UAAA;AAAA,IAAY,WAAA;AAAA,IAClC,OAAA;AAAA,IAAS,KAAA;AAAA,IAAO,MAAA;AAAA,IAChB,MAAA;AAAA,IAAQ,MAAA;AAAA,IAAQ,IAAA;AAAA,IAAM,KAAA;AAAA,IAAO,MAAA;AAAA,IAAQ,SAAA;AAAA,IAAW,QAAA;AAAA,IAAU;AAAA,MACxD,QAAA,CAAS;AAAA,IACX,IAAA,EAAM,YAAA,CAAa,QAAA,EAAU,eAAe,CAAA;AAAA,IAC5C,UAAU,gBAAA,IAAA,IAAA,GAAA,gBAAA,GAAoB,MAAA;AAAA,IAC9B,UAAU,UAAA,IAAc,MAAA;AAAA,IACxB,IAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,MAAA,EAAQ,YAAA;AAAA,IACR,MAAA,EAAQ,YAAA;AAAA,IACR;AAAA,MACE,UAAA,EAAW;AAEf,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,WAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAkC,MAAS,CAAA;AACzE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,WAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,WAAsB,IAAI,CAAA;AAC1D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,WAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,WAAsB,IAAI,CAAA;AACtD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,WAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,WAAsB,IAAI,CAAA;AACxD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,WAAS,KAAK,CAAA;AAItD,EAAA,MAAM,eAAA,GAAkBE,cAAY,MAAM;AACxC,IAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,IAAA,aAAA,CAAc,KAAK,CAAA;AACnB,IAAA,SAAA,CAAU,EAAE,QAAA,EAAU,MAAA,EAAW,UAAU,MAAA,EAAW,IAAA,EAAM,GAAG,CAAA;AAAA,EACjE,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,oBAAA,GAAuBA,cAAY,MAAM;AAC7C,IAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAA,SAAA,CAAU,EAAE,QAAA,EAAU,MAAA,EAAW,UAAU,IAAA,EAAM,IAAA,EAAM,GAAG,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,kBAAA,GAAqBA,aAAA,CAAY,CAAC,EAAA,KAAe;AACrD,IAAA,mBAAA,CAAoB,EAAE,CAAA;AACtB,IAAA,aAAA,CAAc,KAAK,CAAA;AACnB,IAAA,SAAA,CAAU,EAAE,QAAA,EAAU,EAAA,EAAI,UAAU,MAAA,EAAW,IAAA,EAAM,GAAG,CAAA;AAAA,EAC1D,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAId,EAAA,MAAM,kBAAA,GAAqBA,aAAA,CAAY,OAAO,OAAA,KAAwD;AACpG,IAAA,MAAM,MAAA,GAAS,MAAM,YAAA,CAAa,OAAO,CAAA;AACzC,IAAA,MAAM,SAAA,EAAU;AAChB,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,YAAA,EAAc,SAAS,CAAC,CAAA;AAE5B,EAAA,MAAM,kBAAA,GAAqBA,aAAA,CAAY,OAAO,EAAA,EAAY,OAAA,KAAwD;AAChH,IAAA,MAAM,MAAA,GAAS,MAAM,YAAA,CAAa,EAAA,EAAI,OAAO,CAAA;AAC7C,IAAA,MAAM,SAAA,EAAU;AAChB,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,YAAA,EAAc,SAAS,CAAC,CAAA;AAE5B,EAAA,MAAM,kBAAA,GAAqBA,aAAA,CAAY,OAAO,EAAA,KAAe;AAC3D,IAAA,MAAM,aAAa,EAAE,CAAA;AACrB,IAAA,IAAI,gBAAA,KAAqB,IAAI,eAAA,EAAgB;AAC7C,IAAA,MAAM,SAAA,EAAU;AAChB,IAAA,MAAM,KAAA,EAAM;AAAA,EACd,GAAG,CAAC,YAAA,EAAc,kBAAkB,eAAA,EAAiB,SAAA,EAAW,KAAK,CAAC,CAAA;AAItE,EAAA,MAAM,eAAA,GAAkBA,aAAA;AAAA,IACtB,OAAO,IAAA,KAAe;AACpB,MAAA,cAAA,CAAe,IAAI,CAAA;AACnB,MAAA,UAAA,CAAW,IAAI,CAAA;AACf,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,OAAA,CAAQ,KAAK,EAAE,CAAA;AACtC,QAAA,UAAA,CAAW,IAAI,CAAA;AAAA,MACjB,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,QAAA,UAAA,CAAW,MAAS,CAAA;AAAA,MACtB,CAAA,SAAE;AACA,QAAA,cAAA,CAAe,KAAK,CAAA;AAAA,MACtB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,GAAG;AAAA,GACN;AAEA,EAAA,MAAM,YAAA,GAAeA,aAAA;AAAA,IACnB,CAAC,WAAmB,SAAA,CAAU,EAAE,QAAQ,MAAA,IAAU,MAAA,EAAW,IAAA,EAAM,CAAA,EAAG,CAAA;AAAA,IACtE,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,MAAM,UAAA,GAAaA,aAAA;AAAA,IACjB,OAAO,OAAA,KAA+B;AACpC,MAAA,IAAI;AACF,QAAA,IAAI,OAAA,KAAY,IAAA,IAAQ,CAAC,WAAA,EAAa;AACpC,UAAA,MAAM,OAAO,EAAE,GAAG,OAAA,EAAS,QAAA,EAAU,kBAAkB,CAAA;AAAA,QACzD,WAAW,OAAA,EAAS;AAClB,UAAA,MAAM,MAAA,CAAO,OAAA,CAAQ,EAAA,EAAI,EAAE,KAAA,EAAO,QAAQ,KAAA,EAAO,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAS,CAAA;AAAA,QAC7E;AACA,QAAA,UAAA,CAAW,KAAA,CAAS,CAAA;AACpB,QAAA,cAAA,CAAe,KAAK,CAAA;AACpB,QAAA,MAAM,KAAA,EAAM;AACZ,QAAA,MAAM,SAAA,EAAU;AAAA,MAClB,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,QAAA,UAAA,CAAW,MAAS,CAAA;AACpB,QAAA,cAAA,CAAe,KAAK,CAAA;AAAA,MACtB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,WAAA,EAAa,QAAQ,MAAA,EAAQ,KAAA,EAAO,WAAW,gBAAgB;AAAA,GAC3E;AAEA,EAAA,MAAM,SAAA,GAAYA,cAAY,MAAM;AAClC,IAAA,cAAA,CAAe,KAAK,CAAA;AACpB,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAeA,cAAY,YAAY;AAC3C,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,CAAO,SAAS,EAAE,CAAA;AACxB,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,MAAM,SAAA,EAAU;AAAA,IAClB,CAAA,SAAE;AACA,MAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,IACxB;AAAA,EACF,CAAA,EAAG,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,CAAC,CAAA;AAEhC,EAAA,MAAM,UAAA,GAAaA,aAAA,CAAY,OAAOuC,SAAAA,KAA4B;AAChE,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,cAAA,CAAe,IAAI,CAAA;AACnB,IAAA,IAAI;AACF,MAAA,MAAM,KAAK,MAAA,CAAO,EAAA,EAAI,EAAE,QAAA,EAAAA,WAAU,CAAA;AAClC,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,MAAM,KAAA,EAAM;AACZ,MAAA,MAAM,SAAA,EAAU;AAAA,IAClB,CAAA,SAAE;AACA,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,SAAS,CAAC,CAAA;AAEnC,EAAA,MAAM,WAAA,GAAcvC,aAAA,CAAY,OAAOuC,SAAAA,KAA4B;AACjE,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,OAAA,CAAQ,EAAA,EAAI,EAAE,QAAA,EAAAA,WAAU,CAAA;AACpC,MAAA,UAAA,CAAW,IAAI,CAAA;AACf,MAAA,MAAM,KAAA,EAAM;AACZ,MAAA,MAAM,SAAA,EAAU;AAAA,IAClB,CAAA,SAAE;AACA,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,SAAS,CAAC,CAAA;AAErC,EAAA,MAAM,oBAAA,GAAuBvC,aAAA;AAAA,IAC3B,CAAC,YAAoB,SAAA,CAAU,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,GAAG,CAAA;AAAA,IACzD,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,MAAM,gBAAA,GAAmBA,aAAA;AAAA,IACvB,CAAC,IAAA,KAAiB,SAAA,CAAU,EAAE,IAAA,EAAM,IAAA,EAAM,GAAG,CAAA;AAAA,IAC7C,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,MAAM,YAAA,GAAe,YAAY,MAAA,IAAa,WAAA;AAE9C,EAAA,uBACEE,eAAA,CAAC,SAAI,SAAA,EAAW,CAAA,QAAA,EAAW,gCAAa,EAAE,CAAA,CAAA,EAAI,cAAY,KAAA,EACxD,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACb,QAAA,EAAA;AAAA,sBAAAL,cAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACA,OAAA,EAAS,cAAA;AAAA,UACT,gBAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAA,EAAW,gBAAA;AAAA,UACX,UAAU,MAAM,mBAAA,CAAoB,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,UAC7C,WAAA,EAAa,eAAA;AAAA,UACb,gBAAA,EAAkB,oBAAA;AAAA,UAClB,cAAA,EAAgB,kBAAA;AAAA,UAChB,QAAA,EAAU,kBAAA;AAAA,UACV,QAAA,EAAU,kBAAA;AAAA,UACV,QAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBAEAK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAL,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BAChCA,cAAA,CAAC,aAAU,KAAA,EAAA,CAAO,EAAA,GAAA,MAAA,CAAO,WAAP,IAAA,GAAA,EAAA,GAAiB,EAAA,EAAI,UAAU,YAAA,EAAc,CAAA;AAAA,0BAC/DK,eAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,wBAAA,EAAyB,SAAS,SAAA,EAAW,QAAA,EAAA;AAAA,YAAA,IAAA;AAAA,YAC1D;AAAA,WAAA,EACL;AAAA,SAAA,EACF,CAAA;AAAA,QAEC,KAAA,oBACCL,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,kBAAA,EAAoB,QAAA,EAAU,EAAA,EAAI,YAAA,EAAc,EAAA,EAAG,EACrE,gBAAM,OAAA,EACT,CAAA;AAAA,QAGD,UAAA,GAAa,CAAA,IAAK,CAAC,OAAA,IAAW,KAAA,CAAM,SAAS,CAAA,oBAC5CK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACb,QAAA,EAAA;AAAA,0BAAAL,cAAA,CAAC,WAAQ,KAAA,EAAA,CAAO,EAAA,GAAA,MAAA,CAAO,SAAP,IAAA,GAAA,EAAA,GAAe,gBAAA,EAAkB,UAAU,gBAAA,EAAkB,CAAA;AAAA,0BAC7EA,cAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,WAAA;AAAA,cACA,UAAA;AAAA,cACA,aAAA;AAAA,cACA,QAAA,EAAA,CAAU,EAAA,GAAA,MAAA,CAAO,IAAA,KAAP,IAAA,GAAA,EAAA,GAAe,QAAA;AAAA,cACzB,eAAA;AAAA,cACA,YAAA,EAAc,QAAA;AAAA,cACd,gBAAA,EAAkB;AAAA;AAAA;AACpB,SAAA,EACF,CAAA;AAAA,QAGD,OAAA,mBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EAAa,CAAA,GAC1B,KAAA,CAAM,MAAA,KAAW,CAAA,mBACnBK,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,0BAAAL,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,WAAA,EAAe,CAAA;AAAA,UAC/C,MAAA,CAAO,SACJ,4LAAA,GACA;AAAA,SAAA,EACN,CAAA,kCAEC,KAAA,EAAA,EAAI,SAAA,EAAU,WACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVA,cAAA,CAAC,QAAA,EAAA,EAAuB,MAAY,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,WAAA,EAAa,MAAA,EAAQ,SAAA,EAAW,SAAS,UAAA,EAAA,EAAjG,IAAA,CAAK,EAAwG,CAC7H,CAAA,EACH;AAAA,OAAA,EAEJ;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,YAAA,oBACCA,cAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,MAAM,OAAA,IAAA,IAAA,GAAA,OAAA,GAAW,IAAA;AAAA,QACjB,OAAA,EAAS,WAAA;AAAA,QACT,MAAA,EAAQ,UAAA;AAAA,QACR,SAAS,MAAM;AAAE,UAAA,UAAA,CAAW,MAAS,CAAA;AAAG,UAAA,cAAA,CAAe,KAAK,CAAA;AAAA,QAAG;AAAA;AAAA,KACjE;AAAA,IAGD,MAAA,oBACCA,cAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,CAAA,uEAAA,EAA4E,MAAA,CAAO,KAAA,IAAS,2EAA2E,CAAA,IAAA,CAAA;AAAA,QAC9K,IAAA;AAAA,QACA,iBAAiB,MAAA,CAAO,QAAA;AAAA,QACxB,SAAA,EAAW,UAAA;AAAA,QACX,QAAA,EAAU,MAAM,SAAA,CAAU,IAAI,CAAA;AAAA,QAC9B,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,IAGD,OAAA,oBACCA,cAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,CAAA,uEAAA,EAA4E,OAAA,CAAQ,KAAA,IAAS,2EAA2E,CAAA,IAAA,CAAA;AAAA,QAC/K,IAAA;AAAA,QACA,iBAAiB,OAAA,CAAQ,QAAA;AAAA,QACzB,SAAA,EAAW,WAAA;AAAA,QACX,QAAA,EAAU,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAC/B,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,IAGD,QAAA,oBACCA,cAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,CAAA,+CAAA,EAAoD,QAAA,CAAS,KAAA,IAAS,2EAA2E,CAAA,gKAAA,CAAA;AAAA,QAC1J,SAAA,EAAW,YAAA;AAAA,QACX,QAAA,EAAU,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,QAChC,OAAA,EAAS;AAAA;AAAA;AACX,GAAA,EAEJ,CAAA;AAEJ;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16,17]}
@@ -0,0 +1,23 @@
1
+ export { NotesKitProvider } from './context/NotesKitProvider';
2
+ export type { NotesKitProviderProps } from './context/NotesKitProvider';
3
+ export { useNotes } from './hooks/useNotes';
4
+ export type { UseNotesReturn } from './hooks/useNotes';
5
+ export { useFolders } from './hooks/useFolders';
6
+ export type { UseFoldersReturn } from './hooks/useFolders';
7
+ export { useNotesKitContext } from './context/NotesKitProvider';
8
+ export { NotesWidget } from './components/NotesWidget';
9
+ export type { NotesWidgetProps } from './components/NotesWidget';
10
+ export { SearchBar } from './components/SearchBar';
11
+ export { NoteCard } from './components/NoteCard';
12
+ export { NoteEditor } from './components/NoteEditor';
13
+ export { ConfirmDialog } from './components/ConfirmDialog';
14
+ export { Pagination } from './components/Pagination';
15
+ export { SortBar } from './components/SortBar';
16
+ export { FolderPanel } from './components/FolderPanel';
17
+ export type { FolderPanelProps } from './components/FolderPanel';
18
+ export { FolderPickerDialog } from './components/FolderPickerDialog';
19
+ export type { FolderPickerDialogProps } from './components/FolderPickerDialog';
20
+ export type { SortOption } from './components/SortBar';
21
+ export { NotesApi } from './api/client';
22
+ export type { Note, NoteCreatePayload, NoteUpdatePayload, NoteMovePayload, NoteSearchParams, Folder, FolderTreeNode, FolderCreatePayload, FolderUpdatePayload, Page, NotesKitConfig, NotesKitTheme, } from './types';
23
+ export { NotesKitError } from './types';