libre-webui 0.25.0 → 0.26.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.
- package/README.md +32 -22
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +26 -4
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts +7 -0
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +26 -0
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/middleware/index.d.ts +20 -0
- package/backend/dist/middleware/index.d.ts.map +1 -1
- package/backend/dist/middleware/index.js +105 -2
- package/backend/dist/middleware/index.js.map +1 -1
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js +2 -0
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/observability/otel.d.ts +40 -0
- package/backend/dist/observability/otel.d.ts.map +1 -0
- package/backend/dist/observability/otel.js +337 -0
- package/backend/dist/observability/otel.js.map +1 -0
- package/backend/dist/observability/requestContext.d.ts +14 -0
- package/backend/dist/observability/requestContext.d.ts.map +1 -0
- package/backend/dist/observability/requestContext.js +21 -0
- package/backend/dist/observability/requestContext.js.map +1 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts +9 -0
- package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -1
- package/backend/dist/persistence/extensionTypes.d.ts +13 -0
- package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
- package/backend/dist/persistence/extensionTypes.js.map +1 -1
- package/backend/dist/persistence/index.d.ts +1 -1
- package/backend/dist/persistence/index.d.ts.map +1 -1
- package/backend/dist/persistence/index.js.map +1 -1
- package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.js +164 -0
- package/backend/dist/persistence/postgresAgentFoundationMigration.js.map +1 -0
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.js +46 -2
- package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts +10 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js +148 -0
- package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js.map +1 -0
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +10 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
- package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
- package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
- package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.js +1646 -11
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
- package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
- package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
- package/backend/dist/persistence/resourceTypes.d.ts +541 -3
- package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
- package/backend/dist/persistence/resourceTypes.js.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
- package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts +9 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +1196 -29
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.js +1523 -134
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +257 -3
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.d.ts +8 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.js +8 -0
- package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js +310 -3
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
- package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
- package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
- package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
- package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
- package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/pgVectorStore.js +51 -0
- package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
- package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
- package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
- package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
- package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
- package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
- package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
- package/backend/dist/platform/storage/vectorStore.js.map +1 -1
- package/backend/dist/routes/access.d.ts.map +1 -1
- package/backend/dist/routes/access.js +84 -3
- package/backend/dist/routes/access.js.map +1 -1
- package/backend/dist/routes/calendar.d.ts.map +1 -1
- package/backend/dist/routes/calendar.js +125 -22
- package/backend/dist/routes/calendar.js.map +1 -1
- package/backend/dist/routes/channels.d.ts +3 -0
- package/backend/dist/routes/channels.d.ts.map +1 -0
- package/backend/dist/routes/channels.js +447 -0
- package/backend/dist/routes/channels.js.map +1 -0
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +195 -7
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/costs.d.ts +3 -0
- package/backend/dist/routes/costs.d.ts.map +1 -0
- package/backend/dist/routes/costs.js +191 -0
- package/backend/dist/routes/costs.js.map +1 -0
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +64 -21
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/evaluations.d.ts +3 -0
- package/backend/dist/routes/evaluations.d.ts.map +1 -0
- package/backend/dist/routes/evaluations.js +352 -0
- package/backend/dist/routes/evaluations.js.map +1 -0
- package/backend/dist/routes/imageGen.d.ts.map +1 -1
- package/backend/dist/routes/imageGen.js +2 -1
- package/backend/dist/routes/imageGen.js.map +1 -1
- package/backend/dist/routes/media.d.ts.map +1 -1
- package/backend/dist/routes/media.js +228 -7
- package/backend/dist/routes/media.js.map +1 -1
- package/backend/dist/routes/notes.d.ts.map +1 -1
- package/backend/dist/routes/notes.js +149 -36
- package/backend/dist/routes/notes.js.map +1 -1
- package/backend/dist/routes/notifications.d.ts +3 -0
- package/backend/dist/routes/notifications.d.ts.map +1 -0
- package/backend/dist/routes/notifications.js +213 -0
- package/backend/dist/routes/notifications.js.map +1 -0
- package/backend/dist/routes/openaiCompat.d.ts +3 -0
- package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
- package/backend/dist/routes/openaiCompat.js +314 -0
- package/backend/dist/routes/openaiCompat.js.map +1 -0
- package/backend/dist/routes/personas.js +1 -1
- package/backend/dist/routes/personas.js.map +1 -1
- package/backend/dist/routes/prompts.d.ts +3 -0
- package/backend/dist/routes/prompts.d.ts.map +1 -0
- package/backend/dist/routes/prompts.js +173 -0
- package/backend/dist/routes/prompts.js.map +1 -0
- package/backend/dist/routes/search.d.ts.map +1 -1
- package/backend/dist/routes/search.js +29 -1
- package/backend/dist/routes/search.js.map +1 -1
- package/backend/dist/routes/skills.d.ts +3 -0
- package/backend/dist/routes/skills.d.ts.map +1 -0
- package/backend/dist/routes/skills.js +246 -0
- package/backend/dist/routes/skills.js.map +1 -0
- package/backend/dist/routes/stt.d.ts.map +1 -1
- package/backend/dist/routes/stt.js +2 -1
- package/backend/dist/routes/stt.js.map +1 -1
- package/backend/dist/routes/tools.d.ts +3 -0
- package/backend/dist/routes/tools.d.ts.map +1 -0
- package/backend/dist/routes/tools.js +359 -0
- package/backend/dist/routes/tools.js.map +1 -0
- package/backend/dist/routes/tts.d.ts.map +1 -1
- package/backend/dist/routes/tts.js +63 -8
- package/backend/dist/routes/tts.js.map +1 -1
- package/backend/dist/routes/voiceAccess.d.ts +3 -0
- package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
- package/backend/dist/routes/voiceAccess.js +102 -0
- package/backend/dist/routes/voiceAccess.js.map +1 -0
- package/backend/dist/services/apiTokenService.d.ts +2 -2
- package/backend/dist/services/apiTokenService.d.ts.map +1 -1
- package/backend/dist/services/apiTokenService.js +7 -0
- package/backend/dist/services/apiTokenService.js.map +1 -1
- package/backend/dist/services/authorizationService.d.ts +8 -4
- package/backend/dist/services/authorizationService.d.ts.map +1 -1
- package/backend/dist/services/authorizationService.js +31 -1
- package/backend/dist/services/authorizationService.js.map +1 -1
- package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
- package/backend/dist/services/automationSchedulerService.js +33 -3
- package/backend/dist/services/automationSchedulerService.js.map +1 -1
- package/backend/dist/services/automationService.d.ts +4 -1
- package/backend/dist/services/automationService.d.ts.map +1 -1
- package/backend/dist/services/automationService.js +25 -2
- package/backend/dist/services/automationService.js.map +1 -1
- package/backend/dist/services/builtinToolsService.d.ts +20 -0
- package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
- package/backend/dist/services/builtinToolsService.js +661 -0
- package/backend/dist/services/builtinToolsService.js.map +1 -0
- package/backend/dist/services/calendarService.d.ts +74 -0
- package/backend/dist/services/calendarService.d.ts.map +1 -0
- package/backend/dist/services/calendarService.js +339 -0
- package/backend/dist/services/calendarService.js.map +1 -0
- package/backend/dist/services/channelService.d.ts +195 -0
- package/backend/dist/services/channelService.d.ts.map +1 -0
- package/backend/dist/services/channelService.js +1057 -0
- package/backend/dist/services/channelService.js.map +1 -0
- package/backend/dist/services/chatRequestService.d.ts.map +1 -1
- package/backend/dist/services/chatRequestService.js +29 -1
- package/backend/dist/services/chatRequestService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts +61 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +218 -1
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
- package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
- package/backend/dist/services/chatToolRuntimeService.js +389 -0
- package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
- package/backend/dist/services/costGovernanceService.d.ts +102 -0
- package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
- package/backend/dist/services/costGovernanceService.js +463 -0
- package/backend/dist/services/costGovernanceService.js.map +1 -0
- package/backend/dist/services/dataArchiveService.d.ts +6 -0
- package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
- package/backend/dist/services/dataArchiveService.js +23 -4
- package/backend/dist/services/dataArchiveService.js.map +1 -1
- package/backend/dist/services/documentService.d.ts +58 -1
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +289 -84
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
- package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/durableChatGenerationService.js +152 -11
- package/backend/dist/services/durableChatGenerationService.js.map +1 -1
- package/backend/dist/services/evaluationService.d.ts +111 -0
- package/backend/dist/services/evaluationService.d.ts.map +1 -0
- package/backend/dist/services/evaluationService.js +403 -0
- package/backend/dist/services/evaluationService.js.map +1 -0
- package/backend/dist/services/galleryService.d.ts +6 -0
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +26 -0
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/mcpClientService.d.ts +29 -0
- package/backend/dist/services/mcpClientService.d.ts.map +1 -0
- package/backend/dist/services/mcpClientService.js +189 -0
- package/backend/dist/services/mcpClientService.js.map +1 -0
- package/backend/dist/services/noteService.d.ts +71 -0
- package/backend/dist/services/noteService.d.ts.map +1 -0
- package/backend/dist/services/noteService.js +397 -0
- package/backend/dist/services/noteService.js.map +1 -0
- package/backend/dist/services/notificationService.d.ts +55 -0
- package/backend/dist/services/notificationService.d.ts.map +1 -0
- package/backend/dist/services/notificationService.js +308 -0
- package/backend/dist/services/notificationService.js.map +1 -0
- package/backend/dist/services/openApiToolService.d.ts +38 -0
- package/backend/dist/services/openApiToolService.d.ts.map +1 -0
- package/backend/dist/services/openApiToolService.js +254 -0
- package/backend/dist/services/openApiToolService.js.map +1 -0
- package/backend/dist/services/personaService.d.ts +18 -2
- package/backend/dist/services/personaService.d.ts.map +1 -1
- package/backend/dist/services/personaService.js +113 -4
- package/backend/dist/services/personaService.js.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.js +121 -0
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts +7 -0
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +8 -2
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/promptService.d.ts +74 -0
- package/backend/dist/services/promptService.d.ts.map +1 -0
- package/backend/dist/services/promptService.js +513 -0
- package/backend/dist/services/promptService.js.map +1 -0
- package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
- package/backend/dist/services/resourceGrantService.js +62 -17
- package/backend/dist/services/resourceGrantService.js.map +1 -1
- package/backend/dist/services/searchService.d.ts +29 -0
- package/backend/dist/services/searchService.d.ts.map +1 -0
- package/backend/dist/services/searchService.js +0 -0
- package/backend/dist/services/searchService.js.map +1 -0
- package/backend/dist/services/securityAuditService.d.ts.map +1 -1
- package/backend/dist/services/securityAuditService.js +2 -1
- package/backend/dist/services/securityAuditService.js.map +1 -1
- package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
- package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
- package/backend/dist/services/sharedResourceAccess.js +59 -0
- package/backend/dist/services/sharedResourceAccess.js.map +1 -0
- package/backend/dist/services/skillService.d.ts +137 -0
- package/backend/dist/services/skillService.d.ts.map +1 -0
- package/backend/dist/services/skillService.js +852 -0
- package/backend/dist/services/skillService.js.map +1 -0
- package/backend/dist/services/toolAccessService.d.ts +9 -0
- package/backend/dist/services/toolAccessService.d.ts.map +1 -0
- package/backend/dist/services/toolAccessService.js +60 -0
- package/backend/dist/services/toolAccessService.js.map +1 -0
- package/backend/dist/services/toolApprovalService.d.ts +34 -0
- package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
- package/backend/dist/services/toolApprovalService.js +188 -0
- package/backend/dist/services/toolApprovalService.js.map +1 -0
- package/backend/dist/services/toolGatewayService.d.ts +53 -0
- package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
- package/backend/dist/services/toolGatewayService.js +249 -0
- package/backend/dist/services/toolGatewayService.js.map +1 -0
- package/backend/dist/services/toolServerService.d.ts +57 -0
- package/backend/dist/services/toolServerService.d.ts.map +1 -0
- package/backend/dist/services/toolServerService.js +521 -0
- package/backend/dist/services/toolServerService.js.map +1 -0
- package/backend/dist/services/voiceAccessService.d.ts +10 -0
- package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
- package/backend/dist/services/voiceAccessService.js +74 -0
- package/backend/dist/services/voiceAccessService.js.map +1 -0
- package/backend/dist/services/voiceProfileService.d.ts +20 -0
- package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
- package/backend/dist/services/voiceProfileService.js +60 -0
- package/backend/dist/services/voiceProfileService.js.map +1 -1
- package/backend/dist/storage.d.ts +28 -1
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +100 -1
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/storageMappers.d.ts +2 -2
- package/backend/dist/storageMappers.d.ts.map +1 -1
- package/backend/dist/storageMappers.js.map +1 -1
- package/backend/dist/types/index.d.ts +197 -2
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/types/tools.d.ts +137 -0
- package/backend/dist/types/tools.d.ts.map +1 -0
- package/backend/dist/types/tools.js +25 -0
- package/backend/dist/types/tools.js.map +1 -0
- package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
- package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
- package/backend/dist/utils/chatDocumentContext.js +87 -18
- package/backend/dist/utils/chatDocumentContext.js.map +1 -1
- package/backend/dist/utils/documentExtraction.d.ts +69 -0
- package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
- package/backend/dist/utils/documentExtraction.js +545 -0
- package/backend/dist/utils/documentExtraction.js.map +1 -0
- package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
- package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
- package/backend/dist/utils/hybridRetrieval.js +119 -0
- package/backend/dist/utils/hybridRetrieval.js.map +1 -0
- package/backend/dist/utils/icsCalendar.d.ts +27 -0
- package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
- package/backend/dist/utils/icsCalendar.js +313 -0
- package/backend/dist/utils/icsCalendar.js.map +1 -0
- package/backend/dist/utils/imageEditUpload.d.ts +29 -0
- package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
- package/backend/dist/utils/imageEditUpload.js +82 -0
- package/backend/dist/utils/imageEditUpload.js.map +1 -0
- package/backend/dist/utils/logRedaction.d.ts +2 -0
- package/backend/dist/utils/logRedaction.d.ts.map +1 -0
- package/backend/dist/utils/logRedaction.js +66 -0
- package/backend/dist/utils/logRedaction.js.map +1 -0
- package/backend/dist/utils/logger.d.ts +3 -0
- package/backend/dist/utils/logger.d.ts.map +1 -1
- package/backend/dist/utils/logger.js +63 -20
- package/backend/dist/utils/logger.js.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +83 -0
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
- package/backend/dist/utils/resourceLimits.d.ts +61 -2
- package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
- package/backend/dist/utils/resourceLimits.js +59 -0
- package/backend/dist/utils/resourceLimits.js.map +1 -1
- package/backend/dist/utils/toolEgress.d.ts +22 -0
- package/backend/dist/utils/toolEgress.d.ts.map +1 -0
- package/backend/dist/utils/toolEgress.js +157 -0
- package/backend/dist/utils/toolEgress.js.map +1 -0
- package/backend/dist/utils/websocketMessages.d.ts +6 -0
- package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
- package/backend/dist/utils/websocketMessages.js +8 -0
- package/backend/dist/utils/websocketMessages.js.map +1 -1
- package/backend/dist/utils/zipArchive.d.ts +32 -0
- package/backend/dist/utils/zipArchive.d.ts.map +1 -0
- package/backend/dist/utils/zipArchive.js +171 -0
- package/backend/dist/utils/zipArchive.js.map +1 -0
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +142 -35
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/package.json +1 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-BPsH9FII.js +80 -0
- package/frontend/dist/assets/index-BtXF0Oxa.css +1 -0
- package/frontend/dist/index.html +18 -18
- package/frontend/dist/js/{ArtifactContainer-CpUi6ekF.js → ArtifactContainer-CIoFoMv8.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-BeNs3gHp.js → ArtifactDemoPage-D0JEIAbZ.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-qsj_Y3LV.js → ArtifactSandboxFrame-REazyIrx.js} +2 -2
- package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +1 -0
- package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +1 -0
- package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
- package/frontend/dist/js/CalendarPage-DLjasZOd.js +1 -0
- package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +1 -0
- package/frontend/dist/js/ChatPage-BAgBHUES.js +16 -0
- package/frontend/dist/js/EvaluationsPage-Bm8FRoeX.js +2 -0
- package/frontend/dist/js/{FirstTimeSetup-Df0YJni3.js → FirstTimeSetup-BxJapNul.js} +1 -1
- package/frontend/dist/js/GalleryPage-DHz9DkK7.js +1 -0
- package/frontend/dist/js/HomePage-BqNy-FWX.js +1 -0
- package/frontend/dist/js/LibreClawPage-BDzDILjY.js +1 -0
- package/frontend/dist/js/{ModelManagerModals-DcLGYN3l.js → ModelManagerModals-DX9eT5r2.js} +1 -1
- package/frontend/dist/js/ModelSelector-ol8mK2ja.js +1 -0
- package/frontend/dist/js/NotesPage-DzHEx2O4.js +3 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-Dz7D1LPB.js → OptimizedSyntaxHighlighter-CZNPwN0i.js} +1 -1
- package/frontend/dist/js/PersonasPage-M_WKH2a9.js +13 -0
- package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +1 -0
- package/frontend/dist/js/RichMessageContent-BqgafH4p.js +3 -0
- package/frontend/dist/js/SettingsModal-R9EDadAV.js +19 -0
- package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
- package/frontend/dist/js/SystemPage-aOkrSuY7.js +1 -0
- package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +1 -0
- package/frontend/dist/js/WorkPage-DxZISerQ.js +6 -0
- package/frontend/dist/js/api-6bSMtSNh.js +14 -0
- package/frontend/dist/js/{appStore-0JnCUlEq.js → appStore-CdObhQBb.js} +2 -2
- package/frontend/dist/js/ar-DT_VLBO3.js +2 -0
- package/frontend/dist/js/{authStore-DbMdvNgJ.js → authStore-DbqqrfZv.js} +3 -3
- package/frontend/dist/js/{babel-BsYoxD-7.js → babel-DSqqk5kt.js} +1 -1
- package/frontend/dist/js/bn-BrvEqhGA.js +2 -0
- package/frontend/dist/js/chatStore-DbZPJNsu.js +3 -0
- package/frontend/dist/js/{config-DSOYQ9a3.js → config-8KdgjtEx.js} +1 -1
- package/frontend/dist/js/cs-BthnM_YI.js +2 -0
- package/frontend/dist/js/da-DCth-6_j.js +2 -0
- package/frontend/dist/js/de-BBWt0gJ_.js +2 -0
- package/frontend/dist/js/es-DuslOPqM.js +2 -0
- package/frontend/dist/js/{estree-BcnBcOAx.js → estree-BU5-LV_1.js} +3 -3
- package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +1 -0
- package/frontend/dist/js/fr-DZAeg46S.js +2 -0
- package/frontend/dist/js/hi-ijDSiY77.js +2 -0
- package/frontend/dist/js/{html-DkY55Jys.js → html-DeoAy2bo.js} +2 -2
- package/frontend/dist/js/id-BS6qS0oq.js +2 -0
- package/frontend/dist/js/is-CO2PMDte.js +2 -0
- package/frontend/dist/js/it-ChhxT4hs.js +2 -0
- package/frontend/dist/js/ja-cyeqUeJN.js +2 -0
- package/frontend/dist/js/ko-CfqHTLXj.js +2 -0
- package/frontend/dist/js/{markdown-IZSI9DXw.js → markdown-DOLsYkBY.js} +3 -3
- package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
- package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
- package/frontend/dist/js/{messageCodeStyles-BFNR9Wv6.js → messageCodeStyles-DhVgizF-.js} +2 -2
- package/frontend/dist/js/ms-DZ5pACe1.js +2 -0
- package/frontend/dist/js/nl-BsRsnOVp.js +2 -0
- package/frontend/dist/js/pl-DXSTAW4M.js +2 -0
- package/frontend/dist/js/{postcss-BJ0okz7n.js → postcss-Bg15EcFE.js} +1 -1
- package/frontend/dist/js/pt-DmDx0JxB.js +2 -0
- package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
- package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
- package/frontend/dist/js/ru-d2g8EWfY.js +2 -0
- package/frontend/dist/js/{standalone-Csw3jfJ_.js → standalone-BO5pzI8_.js} +3 -3
- package/frontend/dist/js/sv-CIhYUTVQ.js +2 -0
- package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-DcR9Vhb7.js} +3 -3
- package/frontend/dist/js/th-B3wSxanB.js +2 -0
- package/frontend/dist/js/tr-R4UGgPOY.js +2 -0
- package/frontend/dist/js/{typescript-CnF4UVx7.js → typescript-6GJ8APmn.js} +1 -1
- package/frontend/dist/js/ui-CV0LYmkM.js +2 -0
- package/frontend/dist/js/ui-vendor-CWjIBW-z.js +177 -0
- package/frontend/dist/js/uk-BzUF4Vkt.js +2 -0
- package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
- package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
- package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
- package/frontend/dist/js/vi-CKc6Fg4h.js +2 -0
- package/frontend/dist/js/{workApi-C3uy9EDT.js → workApi-BruWTlHM.js} +3 -3
- package/frontend/dist/js/{yaml-DzT5hBSH.js → yaml-DUeWcOOH.js} +2 -2
- package/frontend/dist/js/zh-CXL-kDe8.js +2 -0
- package/package.json +2 -2
- package/plugins/openai.json +52 -9
- package/frontend/dist/assets/index-6o-Hc2wS.js +0 -41
- package/frontend/dist/assets/index-D-pM957b.css +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +0 -1
- package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +0 -1
- package/frontend/dist/js/CalendarPage-D9I972w8.js +0 -1
- package/frontend/dist/js/ChatPage-CmBx4oAL.js +0 -16
- package/frontend/dist/js/GalleryPage-bLCrdJN_.js +0 -1
- package/frontend/dist/js/HomePage-Uc6PEg-U.js +0 -1
- package/frontend/dist/js/LibreClawPage-CG63DHg1.js +0 -1
- package/frontend/dist/js/ModelSelector-yxJC64rM.js +0 -1
- package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +0 -2
- package/frontend/dist/js/NotesPage-L65j5HoW.js +0 -1
- package/frontend/dist/js/PersonasPage-CKeBpHIH.js +0 -13
- package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +0 -1
- package/frontend/dist/js/RichMessageContent-DiySVYGB.js +0 -3
- package/frontend/dist/js/SettingsModal-68SG1uZ2.js +0 -1
- package/frontend/dist/js/SystemPage-CytpZiQV.js +0 -1
- package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +0 -1
- package/frontend/dist/js/WorkPage-C8gr0QJe.js +0 -6
- package/frontend/dist/js/api-BDtqBtqw.js +0 -14
- package/frontend/dist/js/ar-CSpi37Gr.js +0 -2
- package/frontend/dist/js/bn-CyH1BeDD.js +0 -2
- package/frontend/dist/js/chatStore-CHQ2uINS.js +0 -3
- package/frontend/dist/js/cs-Cv2NfRK5.js +0 -2
- package/frontend/dist/js/da-D6D6IvPK.js +0 -2
- package/frontend/dist/js/de-BNoJJTrT.js +0 -2
- package/frontend/dist/js/es-kzo9C7q_.js +0 -2
- package/frontend/dist/js/fr-CjHYvJRp.js +0 -2
- package/frontend/dist/js/hi-BU98AdCQ.js +0 -2
- package/frontend/dist/js/id-CpdedejX.js +0 -2
- package/frontend/dist/js/is-Cp5dDWBH.js +0 -2
- package/frontend/dist/js/it-CuH_cK4U.js +0 -2
- package/frontend/dist/js/ja-BWXXXiHn.js +0 -2
- package/frontend/dist/js/ko-DQgv2M1t.js +0 -2
- package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
- package/frontend/dist/js/ms-DCcRoIcX.js +0 -2
- package/frontend/dist/js/nl-CbKR1_EU.js +0 -2
- package/frontend/dist/js/pl-CRyJZccn.js +0 -2
- package/frontend/dist/js/pt-BXYmHFGH.js +0 -2
- package/frontend/dist/js/router-vendor-DGFGM3EP.js +0 -1
- package/frontend/dist/js/ru-M9SyZG4b.js +0 -2
- package/frontend/dist/js/sv-DJ486LTU.js +0 -2
- package/frontend/dist/js/th-Ch7gKtZv.js +0 -2
- package/frontend/dist/js/tr-ClehWhSC.js +0 -2
- package/frontend/dist/js/ui-CC-K19wO.js +0 -2
- package/frontend/dist/js/ui-vendor-B1UgO3vd.js +0 -177
- package/frontend/dist/js/uk-BqAd5zHF.js +0 -2
- package/frontend/dist/js/vi-D9gjlDVB.js +0 -2
- package/frontend/dist/js/zh-DKTyHkiR.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={common:{loading:`로딩 중...`,save:`저장`,saving:`저장 중...`,cancel:`취소`,delete:`삭제`,edit:`편집`,close:`닫기`,back:`뒤로`,next:`다음`,confirm:`확인`,error:`오류`,success:`성공`,warning:`경고`,or:`또는`,optional:`선택사항`,enabled:`활성화됨`,disabled:`비활성화됨`,on:`켜짐`,off:`꺼짐`,yes:`예`,no:`아니오`,search:`검색`,noResults:`결과 없음`,retry:`재시도`,refresh:`새로고침`,download:`다운로드`,upload:`업로드`,export:`내보내기`,import:`가져오기`,reset:`초기화`,apply:`적용`,clear:`지우기`,all:`모두`,none:`없음`,default:`기본값`,custom:`사용자 정의`,remove:`제거`,home:`홈`,more:`많음`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`다시 오신 것을 환영합니다`,subtitle:`계속하려면 계정에 로그인하세요`,username:`사용자 이름`,usernamePlaceholder:`사용자 이름을 입력하세요`,password:`비밀번호`,passwordPlaceholder:`비밀번호를 입력하세요`,signIn:`로그인`,signingIn:`로그인 중...`,noAccount:`계정이 없으신가요?`,signUpHere:`여기서 가입하세요`,loginSuccess:`로그인 성공!`,loginFailed:`로그인 실패`,checkCredentials:`로그인 실패. 자격 증명을 확인하세요.`,approvalPending:`계정이 관리자 승인을 기다리고 있습니다.`,enterBoth:`사용자 이름과 비밀번호를 모두 입력하세요`,githubSuccess:`GitHub 로그인 성공!`,githubFailed:`GitHub 인증 실패`,githubVerifyFailed:`GitHub 인증 확인 실패`,verificationFailed:`보안 확인에 실패했습니다. 페이지를 새로 고친 뒤 다시 시도하세요.`},signup:{title:`계정 만들기`,subtitle:`새 계정을 등록하세요`,username:`사용자 이름`,usernamePlaceholder:`사용자 이름을 선택하세요`,email:`이메일`,emailPlaceholder:`your@email.com`,password:`비밀번호`,passwordPlaceholder:`비밀번호를 선택하세요`,confirmPassword:`비밀번호 확인`,confirmPasswordPlaceholder:`비밀번호를 다시 입력하세요`,createAccount:`계정 만들기`,creatingAccount:`계정 생성 중...`,hasAccount:`이미 계정이 있으신가요?`,signInHere:`여기서 로그인하세요`,signupSuccess:`계정이 성공적으로 생성되었습니다!`,approvalPending:`가입이 완료되었습니다. 관리자가 계정을 승인해야 합니다.`,awaitingApproval:`승인 대기 중`,awaitingApprovalDescription:`계정이 생성되었지만, 로그인하려면 관리자가 계정을 활성화해야 합니다.`,backToSignIn:`로그인으로 돌아가기`,signupFailed:`가입 실패`,tryAgain:`가입 실패. 다시 시도해주세요.`,usernameRequired:`사용자 이름과 비밀번호가 필요합니다`,passwordMismatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 최소 6자 이상이어야 합니다`},logout:{button:`로그아웃`,success:`성공적으로 로그아웃되었습니다`},oauth:{continueWith:`{{provider}}로 계속하기`,connectingTo:`{{provider}}에 연결 중...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`인증 확인 중...`,welcome:`환영합니다`,noEmail:`이메일 없음`,role:`역할`,id:`ID`,userId:`사용자 ID`,signInDescription:`계속하려면 GitHub 계정으로 로그인하세요`,signInWithGitHub:`GitHub로 로그인`,jwtActive:`JWT 인증 활성`,jwtDescription:`GitHub OAuth 기반 JWT 인증`,github:`GitHub`,provider:`제공자`,tagline:`당신의 AI 스택은 당신이 통제해야 합니다.`,selfHosted:`자체 호스팅 · Apache 2.0`,highlights:{local:{title:`로컬 우선`,body:`대화와 파일은 이 앱을 실행하는 기기에 그대로 보관됩니다.`},providers:{title:`모든 프로바이더`,body:`Ollama를 통한 로컬 모델과 추가하기로 선택한 원격 프로바이더를 지원합니다.`},work:{title:`격리된 작업 환경`,body:`모델에 파일, 터미널, 미리보기가 있는 샌드박스 작업 공간을 제공하세요.`}},oidc:{defaultProviderName:`통합 로그인`}},setup:{welcome:{title:`Libre WebUI에 오신 것을 환영합니다`,subtitle:`시작하기`,description:`몇 단계만으로 Libre WebUI 인스턴스를 설정하세요`,createAdmin:`관리자 계정 만들기`,features:{secure:{title:`안전하고 개인적인`,description:`대화가 기기에 저장됩니다`},fast:{title:`빠르고 반응이 좋은`,description:`속도와 성능에 최적화됨`},openSource:{title:`오픈 소스`,description:`무료 오픈 소스 소프트웨어`}}},admin:{title:`관리자 계정 만들기`,subtitle:`관리자 설정`,description:`Libre WebUI 인스턴스의 첫 번째 관리자 계정을 만드세요`,usernamePlaceholder:`관리자 사용자 이름을 입력하세요`,passwordPlaceholder:`비밀번호를 입력하세요 (최소 6자)`,confirmPlaceholder:`비밀번호를 다시 입력하세요`,creating:`생성 중...`,createAdmin:`관리자 만들기`,success:`관리자 계정이 성공적으로 생성되었습니다!`,failed:`관리자 계정 생성 실패`,approvalUnexpected:`초기 관리자를 활성화할 수 없습니다. 다시 시도해 주세요.`,fillAllFields:`모든 필드를 입력하세요`,note:`이것은 Libre WebUI 인스턴스의 기본 관리자 계정이 됩니다`},encryptionKey:{title:`암호화 키 저장`,subtitle:`중요: 이 키를 저장하세요`,description:`이 암호화 키는 민감한 데이터를 보호합니다. 안전하게 저장하세요 - 데이터베이스를 복원해야 할 때 필요합니다.`,warning:`경고`,warningText:`이 키를 분실하고 데이터베이스를 복원해야 하는 경우, 암호화된 데이터(API 키, 환경설정)를 복구할 수 없습니다.`,label:`암호화 키`,loading:`로딩 중...`,copyToClipboard:`클립보드에 복사`,copied:`암호화 키가 클립보드에 복사되었습니다!`,copyFailed:`키를 클립보드에 복사하지 못했습니다`,envNote:`이 키는 backend/.env 파일에 ENCRYPTION_KEY로도 저장됩니다`,acknowledgment:`암호화 키를 안전한 장소에 저장했으며, 분실 시 데이터 손실이 발생할 수 있음을 이해합니다.`,confirmRequired:`암호화 키를 저장했음을 확인하세요`,continue:`Libre WebUI로 계속`}},chat:{greeting:{morning:`좋은 아침입니다`,afternoon:`좋은 오후입니다`,evening:`좋은 저녁입니다`,night:`안녕히 주무세요`},followUp:`후속 질문`,welcome:{helpToday:`오늘 무엇을 도와드릴까요?`,helpTonight:`오늘 밤 무엇을 도와드릴까요?`,variety:{create:{title:`무엇을 만들어 볼까요?`,subtitle:`떠오른 생각, 간단한 스케치, 좀처럼 풀리지 않는 문제에서 시작해 보세요.`},explore:{title:`어디서부터 시작할까요?`,subtitle:`자꾸만 다시 떠오르는 질문을 가져오세요.`},imagine:{title:`무엇을 상상하고 있나요?`,subtitle:`함께 구체적인 모습으로 만들어 봐요.`},focus:{title:`지금 무엇에 집중할까요?`,subtitle:`다음 단계를 분명하게 정해 봅시다.`},untangle:{title:`무엇이 복잡하게 얽혀 있나요?`,subtitle:`우선 정리되지 않은 그대로 들려주세요.`},momentum:{title:`준비되면 시작해요.`,subtitle:`아이디어, 계획, 하다 만 이야기 어디서든 이어가세요.`},open:{title:`무슨 생각을 하고 있나요?`,subtitle:`작은 생각도 큰 프로젝트도 모두 좋아요.`},challenge:{title:`무엇을 해결할까요?`,subtitle:`아직 뜻대로 되지 않는 부분을 알려주세요.`},draft:{title:`어디서든 시작해 봅시다.`,subtitle:`아직 다듬어지지 않아도 괜찮아요.`},possibility:{title:`이건 무엇이 될 수 있을까요?`,subtitle:`가공하지 않은 재료부터 보여주세요.`},unexpected:{title:`예상 밖의 무언가를 만들어 봐요.`,subtitle:`제약 하나, 분위기 하나, 혹은 어렴풋한 아이디어를 주세요.`}}},input:{placeholder:`메시지를 보내세요`,messagePlaceholder:`메시지...`,attachImages:`이미지 첨부`,attachments:`첨부 파일 및 고급 기능`,sendMessage:`메시지 보내기`,stopGeneration:`생성 중지`,menu:{uploadImages:`이미지 업로드`,attachDocument:`문서 첨부`,attachWebpage:`웹페이지 첨부`,structuredOutput:`구조화된 출력`,attach:`첨부`,documentAttached:`문서가 첨부되었습니다`,webpageAttached:`웹페이지가 첨부되었습니다`,attachFailed:`첨부하지 못했습니다`,attachKnowledge:`지식 첨부`,noCollections:`아직 컬렉션이 없습니다 — 설정 → 문서에서 만드세요`},voiceInput:`음성 입력`,voiceStop:`듣기 중지`,transcriptionSource:`음성 인식 소스`,browserSpeech:`브라우저 음성 인식 서비스`,providerTranscriptionDisclosure:`오디오를 녹음하여 텍스트 변환을 위해 {{provider}}에 전송`,webSearchOn:`웹 검색 켜짐 — 답변에 실시간 결과 사용`,webSearchOff:`이 메시지에 대해 웹 검색`,toolsOn:`도구 켜짐 — 모델이 승인된 도구를 호출할 수 있습니다`,toolsOff:`이 메시지에서 모델이 도구를 호출하도록 허용`,thinkingOn:`사고 켜짐 ({{level}})`,thinkingOff:`답하기 전에 생각하기`},session:{new:`새 채팅`,work:`작업`,chat:`채팅`,private:`비공개`,incognito:`시크릿 채팅`,privateMode:`비공개 모드`,privateDescription:`이 대화는 저장되지 않습니다`,privateTooltip:`저장되지 않는 비공개 대화 시작`,deleteConfirm:`이 채팅을 삭제하시겠습니까?`,generatingTitle:`제목 생성 중`,noChats:`채팅이 없습니다`,createFirst:`위에서 첫 번째 채팅을 만드세요`,chats:`채팅`,renameChat:`채팅 이름 변경`,openNewTab:`새 탭에서 열기`,pinChat:`고정`,unpinChat:`고정 해제`,deleteChat:`채팅 삭제`,archiveChat:`채팅 보관`,groups:{pinned:`고정됨`,today:`오늘`,yesterday:`어제`,previous7Days:`지난 7일`,previous30Days:`지난 30일`,older:`이전`},folder:{new:`새 폴더`,namePlaceholder:`폴더 이름`,move:`폴더로 이동`,remove:`폴더에서 제거`,delete:`폴더 삭제`,deleteConfirm:`이 폴더를 삭제할까요? 안의 채팅은 유지됩니다.`},shareChat:`채팅 공유…`},persona:{applied:`페르소나 적용됨`,label:`페르소나`,loadFailed:`페르소나 세부 정보를 불러오지 못했습니다`,removeFailed:`페르소나 제거에 실패했습니다`},model:{updated:`모델 업데이트됨`,noModels:`사용 가능한 모델 없음`,noModelsDescription:`사용 가능한 모델이 없습니다. Ollama가 실행 중이고 모델이 설치되어 있는지 확인하세요.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`사용 가능한 모델이 없습니다. Ollama가 실행 중이고 모델이 설치되어 있는지 확인하세요.`,selectBeforePrivateChat:`비공개 채팅을 시작하기 전에 사용 가능한 모델을 선택하세요`,selectBeforeSending:`전송하기 전에 사용 가능한 모델을 선택하세요`},footer:{disclaimer:`LLM은 실수를 할 수 있습니다 - 중요한 정보는 확인하세요`,images:`이미지 {{count}}개`,images_plural:`이미지 {{count}}개`,structuredOutput:`구조화된 출력`},mediaUpload:{dropImagesHere:`여기에 이미지를 놓거나`,supportedFormats:`지원: JPG, PNG, GIF, WebP (각 최대 10MB)`,browse:`찾아보기`},structuredOutput:{title:`응답 형식`,none:`없음 (자연어)`,noneDescription:`기본 자연어 응답`,json:`JSON`,jsonDescription:`구조화된 JSON 형식`,list:`목록`,listDescription:`항목 배열`,summary:`요약`,summaryDescription:`핵심 사항이 포함된 문서 요약`,analysis:`분석`,analysisDescription:`장단점이 포함된 구조화된 분석`,custom:`사용자 정의 스키마`,customDescription:`자신만의 JSON 스키마 정의`,customSchema:`사용자 정의 JSON 스키마`,schemaPreview:`스키마 미리보기`,applySchema:`스키마 적용`,cancel:`취소`,enabled:`구조화된 출력 활성화됨`},controls:{title:`채팅 컨트롤`,systemPrompt:`시스템 프롬프트`,systemPromptPlaceholder:`이 채팅에만 적용되는 지시사항…`,advancedParams:`고급 매개변수`,advancedParamsDescription:`이 채팅 전용 재정의입니다. 빈 칸은 전역 기본값을 사용합니다.`,fromModel:`모델 제공`,fromModelHint:`이 값은 모델 자체의 권장 설정에서 가져온 것입니다.`,contextCapped:`모델이 학습한 {{trained}} 중 {{context}}로 제한했습니다. 그래야 계속 로드됩니다.`,saved:`컨트롤이 저장되었습니다`,saveFailed:`컨트롤을 저장하지 못했습니다`,params:{temperature:`온도`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`최대 토큰`,repeatPenalty:`반복 페널티`,seed:`시드`,contextLength:`컨텍스트 길이`},thinking:`사고`,thinkingDescription:`모델이 답하기 전에 얼마나 생각할지. 추론하지 않는 모델은 무시합니다.`,compaction:`컨텍스트 압축`,compactionDescription:`서버가 긴 대화를 압축할 때 이 채팅은 제외되어 전체 기록을 유지할 수 있습니다.`,compactionDefault:`서버 기본값`,compactionOff:`이 채팅에서는 끔`},message:{sources:`출처`},toasts:{chatCreated:`새 채팅이 생성되었습니다`,createFailed:`세션을 만들지 못했습니다`,loadFailed:`세션을 불러오지 못했습니다`,chatDeleted:`채팅이 삭제되었습니다`,deleteFailed:`채팅을 삭제하지 못했습니다`,deleteSessionFailed:`세션을 삭제하지 못했습니다`,historyCleared:`모든 채팅 기록이 지워졌습니다`,historyClearFailed:`채팅 기록을 지우지 못했습니다`,titleUpdated:`채팅 제목이 업데이트되었습니다`,updateFailed:`세션을 업데이트하지 못했습니다`,noValidSession:`유효한 채팅 세션이 없습니다. 채팅을 만들거나 선택하세요.`,sessionNotFound:`세션을 찾을 수 없거나 유효하지 않습니다. 유효한 채팅 세션을 선택하거나 만드세요.`,noModelProvider:`사용 가능한 모델 제공자가 없습니다`,modelUnavailable:`선택한 모델 "{{model}}"은(는) {{provider}}에서 사용할 수 없습니다. 해당 제공자를 다시 활성화하거나 다른 모델을 선택하세요.`,modelSwitched:`{{model}}로 전환했습니다(이전 모델은 더 이상 사용할 수 없음)`,modelsLoadFailed:`모델을 불러오지 못했습니다`,modelUpdated:`현재 채팅의 모델이 업데이트되었습니다`,modelUpdateFailed:`세션 모델을 업데이트하지 못했습니다`},documents:{title:`컨텍스트의 문서`},context:{title:`컨텍스트 창:`,full:`{{percent}}% 사용`,tokensUsed:`{{used}} / {{budget}} 토큰 사용`,tokensUsedNoBudget:`{{used}} 토큰 사용`,capped:`{{trained}}에서 제한됨`},queue:{title:`대기 중 ({{total}})`,moveUp:`위로 이동`,moveDown:`아래로 이동`,updateFailed:`대기 중인 프롬프트를 수정할 수 없습니다`,enqueueFailed:`프롬프트를 대기열에 추가할 수 없습니다`},compare:{title:`모델 비교`,hint:`최대 {{max}}개의 추가 모델로 답변`},fork:{action:`여기서 분기`,created:`채팅을 분기했습니다`,failed:`채팅을 분기할 수 없습니다`,origin:`{{title}}에서 분기됨`,originUnknown:`다른 채팅`},sharedReadOnly:`{{owner}} 님이 공유 — 보기 전용`},sidebar:{navigation:{chat:`채팅`,models:`모델`,personas:`페르소나`,imagine:`이미지 생성`,agents:`에이전트`,work:`작업`,settings:`설정`,usageAnalytics:`프로바이더 사용량`,system:`시스템`,userManagement:`사용자 관리`,signOut:`로그아웃`,exploreLabel:`둘러보기`,notes:`노트`,calendar:`캘린더`,automations:`자동화`,prompts:`프롬프트`,skills:`스킬`,tools:`도구`,channels:`채널`},toggleSize:`사이드바 크기 전환`,expandSidebar:`사이드바 확장`},user:{menu:{changePicture:`사진 변경`,settings:`설정`,usageAnalytics:`프로바이더 사용량`,system:`시스템`,userManagement:`사용자 관리`,logout:`로그아웃`,pinShortcut:`사이드바에 고정`,unpinShortcut:`사이드바에서 고정 해제`,evaluations:`평가`},avatar:{title:`프로필 사진 변경`,updated:`프로필 사진이 업데이트되었습니다`,updateFailed:`프로필 사진 업데이트 실패`,saving:`저장 중...`,label:`아바타`,uploadAvatarImage:`아바타 이미지 업로드`,dragAndDrop:`이미지를 드래그하거나 클릭하여 찾아보기`,chooseImage:`이미지 선택`,uploading:`업로드 중...`,enterImageUrl:`또는 이미지 URL 입력`,supportedFormats:`지원 형식: JPG, PNG, GIF, WebP (최대 2MB). 정사각형 이미지가 가장 좋습니다.`,customAvatar:`사용자 정의 아바타 이미지`,clickToChange:`클릭하여 변경 또는 제거`,removed:`아바타가 제거되었습니다`,uploaded:`아바타가 업로드되었습니다`,invalidFile:`유효한 이미지 파일을 선택하세요`,fileTooLarge:`아바타 이미지 크기는 2MB 미만이어야 합니다`,readFailed:`이미지 파일을 읽지 못했습니다`,uploadFailed:`아바타 이미지 업로드 실패`},profile:{noEmail:`이메일 없음`}},settings:JSON.parse(`{"title":"설정","tabs":{"appearance":"외관","model":"모델","systemMessage":"시스템 메시지","plugins":"플러그인","search":"검색","generation":"생성","documents":"문서","tts":"음성 합성","imageGen":"이미지 생성","data":"데이터","shortcuts":"단축키","about":"정보","sessions":"세션","apiKeys":"API 키"},"appearance":{"title":"외관","language":{"title":"언어","description":"선호하는 언어를 선택하세요"},"theme":{"title":"테마","light":"라이트","dark":"다크","amoled":"퓨어 블랙","system":"시스템"},"accent":{"title":"강조 색상","custom":"사용자 지정 색상","useColor":"{{color}} 강조 색상 사용","behaviorTitle":"인터페이스 팔레트","behaviorDescription":"강조 색상을 컨트롤에만 사용할지 밝은 또는 어두운 인터페이스 전체에 적용할지 선택하세요.","defaultStyle":"기본","defaultStyleDescription":"밝은 테마와 어두운 테마의 중립적인 표면을 유지합니다.","adaptedStyle":"강조 색상에 맞추기","adaptedStyleDescription":"표면, 테두리, 텍스트를 강조 색상으로 물들입니다."},"chatInterface":{"title":"채팅 인터페이스","showUsername":"사용자 이름 표시","showUsernameDescription":"채팅 메시지에 사용자 이름 표시","followUpSuggestions":"후속 질문 제안","followUpSuggestionsDescription":"각 응답 후 빠른 답장을 제안합니다","hapticFeedback":"햅틱 피드백 (Android)","hapticFeedbackDescription":"중요한 모바일 작업에 미세한 진동 사용"},"background":{"title":"배경 이미지","enable":"배경 이미지 활성화","enableDescription":"블러 효과가 있는 사용자 정의 배경 표시","blur":"블러","opacity":"불투명도","upload":"배경 이미지 업로드","dragDrop":"이미지를 끌어다 놓거나 클릭하여 찾아보기","chooseImage":"이미지 선택"}},"saveSettings":"설정 저장","model":{"title":"모델 설정","defaultModel":"기본 모델","defaultModelDescription":"이 모델은 새 대화에 기본으로 사용됩니다","selectModel":"모델 선택","specializedModels":"특화 모델","visionModel":"비전 모델","selectVisionModel":"현재 채팅 모델 사용","visionModelDescription":"전송되는 채팅 컨텍스트에 이미지가 포함될 때마다 자동으로 사용됩니다. 이미지 입력을 지원하는 모델을 선택하세요.","visionModelUpdateFailed":"비전 모델 업데이트에 실패했습니다: {{error}}","visionModelNoProvider":"이 비전 모델에는 제공자 정보가 없습니다. 사용 가능한 모델을 선택하세요.","persona":"페르소나","updateAll":"모든 모델 업데이트","updateAllDescription":"설치된 모든 모델의 최신 버전 확인 및 풀","updateAllButton":"모두 업데이트","updating":"모델 업데이트 중...","currentModelInfo":"현재 모델 정보","name":"이름","size":"크기","family":"계열","format":"형식","status":"상태","statusStarting":"시작 중...","statusComplete":"완료","statusError":"오류","bulkOperations":"일괄 작업","autoTitle":{"title":"자동 제목 생성","enable":"자동 제목 활성화","enableDescription":"새 대화의 제목을 자동으로 생성","taskModel":"작업 모델","selectTaskModel":"작업 모델 선택","taskModelDescription":"대화 제목 생성에 사용되는 모델"},"updatingModel":"{{name}} 업데이트 중 ({{current}}/{{total}})","modelsProgress":"{{total}}개 모델 중 {{current}}개"},"systemMessage":{"title":"시스템 메시지","description":"모든 새 대화에 사용될 사용자 정의 시스템 메시지를 설정하세요.","placeholder":"시스템 메시지를 입력하세요...","saved":"시스템 메시지가 저장되었습니다","saveFailed":"시스템 메시지 저장 실패"},"plugins":{"title":"플러그인","description":"설치된 플러그인 관리","providerConnections":"프로바이더 연결","providerConnectionsDescription":"플러그인을 통해 모델 프로바이더를 연결, 구성 및 검사합니다.","providers":"프로바이더","searchProviders":"프로바이더 검색","noProvidersFound":"검색과 일치하는 프로바이더가 없습니다.","selectProvider":"프로바이더 선택","selectProviderDescription":"연결 및 모델 카탈로그를 검사할 프로바이더를 선택하세요.","addNew":"새 플러그인 추가","upload":"플러그인 업로드","addJson":"JSON 추가","uploading":"업로드 중...","jsonPlaceholder":"플러그인 JSON 구성 붙여넣기...","install":"플러그인 설치","noPlugins":"설치된 플러그인 없음","noPluginsDescription":"기능을 확장하려면 플러그인을 추가하세요","loading":"플러그인 로딩 중...","installed":"설치된 플러그인","active":"활성 플러그인","activeLabel":"활성","inactive":"비활성","activate":"활성화","deactivate":"비활성화","models":"모델","apiKeySet":"API 키 설정됨","apiKeyConfiguration":"API 키 구성","apiKeyDescription":"{{name}}의 개인 API 키를 저장합니다.","apiKeyEnvAlternative":"또는 다음을 설정하세요:","environmentVariable":"환경 변수","apiKeyConfigured":"API 키가 구성됨","apiKeyPlaceholder":"API 키를 입력하세요...","saveApiKey":"API 키 저장","showApiKey":"API 키 표시","hideApiKey":"API 키 숨기기","configure":"구성","providerSettings":"프로바이더 설정","status":"상태","defaultEndpoint":"기본 엔드포인트","modelCatalog":"모델 카탈로그","modelCatalogDescription":"이 프로바이더에 대해 검색 및 구성된 모델과 기능입니다.","refreshModels":"모델 새로고침","noModelsConfigured":"이 제공자에 대해 구성된 모델이 없습니다.","modelId":"모델 ID","capabilities":"기능","modelCatalogUpdated":"모델 카탈로그가 업데이트되었습니다: {{count}}개 모델.","modelCatalogUnchanged":"모델 카탈로그가 이미 최신 상태입니다.","modelCatalogNeedsApiKey":"이 제공자의 실시간 모델 목록을 불러오려면 유효한 API 키를 추가하세요.","modelCatalogUnavailable":"제공자의 모델 목록을 불러올 수 없습니다.","modelCatalogRefreshFailed":"모델 카탈로그를 새로고침하지 못했습니다.","capability":{"chat":"채팅","embedding":"임베딩","image":"이미지","speech":"음성","transcription":"전사"},"exportPlugin":"플러그인 내보내기","deletePlugin":"플러그인 삭제","apiKey":{"title":"API 키","placeholder":"API 키 입력","save":"키 저장","remove":"키 제거","configured":"API 키 구성됨","notConfigured":"API 키 필요","saved":"API 키가 성공적으로 저장되었습니다","removed":"API 키가 제거되었습니다","saveFailed":"API 키 저장 실패","removeFailed":"API 키 제거 실패","enterKey":"API 키를 입력하세요"},"variables":"Variables"},"generation":{"title":"생성 옵션","description":"AI가 응답을 생성하는 방식 구성","scopeLabel":"적용 대상","scopeAll":"모든 모델","scopeModel":"{{model}}만","scopeAllHint":"개별 설정이 없는 한 모든 모델이 사용하는 값입니다.","scopeModelHint":"이 모델에만 저장되며 전체 값보다 우선합니다.","advancedSettings":"고급 생성 설정","advancedSettingsDescription":"샘플링, 토큰 제한, 컨텍스트, 페널티 및 정지 시퀀스","coreParameters":"핵심 매개변수","temperature":"온도","temperatureDescription":"무작위성을 제어합니다. 낮은 값은 더 집중적이고, 높은 값은 더 창의적입니다.","topP":"Top P","topPDescription":"핵 샘플링을 통해 다양성을 제어합니다. 낮은 값은 가능성 높은 토큰에 집중합니다.","topK":"Top K","topKDescription":"토큰 선택을 상위 K개로 제한합니다. 0으로 설정하면 비활성화됩니다.","minP":"Min P","minPDescription":"토큰 선택을 위한 최소 확률 임계값입니다.","generationControl":"생성 제어","maxTokens":"최대 토큰","maxTokensDescription":"응답에서 생성할 최대 토큰 수입니다.","repeatPenalty":"반복 페널티","repeatPenaltyDescription":"반복된 토큰에 페널티를 부여합니다. 높은 값은 반복을 줄입니다.","contextLength":"컨텍스트 길이","contextLengthDescription":"대화의 최대 컨텍스트 창 크기입니다.","seed":"시드","optional":"선택사항","random":"무작위","seedDescription":"재현 가능한 출력을 위해 특정 시드를 설정합니다.","advancedOptions":"고급 옵션","presencePenalty":"존재 페널티","presencePenaltyDescription":"컨텍스트에 나타나는 토큰에 페널티를 부여합니다.","frequencyPenalty":"빈도 페널티","frequencyPenaltyDescription":"자주 사용되는 토큰에 페널티를 부여합니다.","stopSequences":"중지 시퀀스","commaSeparated":"쉼표로 구분","stopSequencesDescription":"발견 시 생성을 중지하는 사용자 정의 토큰입니다.","resetDefaults":"기본값으로 재설정","saveOptions":"옵션 저장","embeddingSettings":"임베딩 설정","enableEmbeddings":"문서 임베딩 활성화","thinking":"사고","thinkingDescription":"답변의 기본 사고 수준. 채팅마다 변경할 수 있습니다.","thinkingLevels":{"default":"모델 기본값","defaultWith":"모델 기본값 ({{level}})","off":"끄기","on":"켜기","low":"낮음","medium":"보통","high":"높음"}},"documents":{"title":"문서 설정","embeddings":{"title":"임베딩","enable":"문서 임베딩 활성화","model":"임베딩 모델","modelDescription":"문서 임베딩에 사용할 모델 선택","chunkSize":"청크 크기","chunkSizeInTokens":"(토큰 단위)","chunkSizeDescription":"임베딩을 위한 텍스트 청크 크기","chunkOverlap":"청크 겹침","chunkOverlapInTokens":"(토큰 단위)","chunkOverlapDescription":"연속 청크 간의 겹침","similarityThreshold":"유사도 임계값","similarityDescription":"결과를 포함하기 위한 최소 유사도 점수","status":"임베딩 상태","statusLabel":"상태","available":"사용 가능","unavailable":"사용 불가","chunksWithEmbeddings":"임베딩이 있는 청크","coverage":"커버리지","regenerate":"임베딩 재생성","regenerating":"재생성 중..."},"collections":{"title":"지식 컬렉션","description":"문서를 컬렉션으로 묶어 어느 채팅에나 첨부하세요.","namePlaceholder":"컬렉션 이름","create":"만들기","none":"컬렉션 없음","deleteConfirm":"이 컬렉션을 삭제할까요? 안의 문서는 유지됩니다.","createFailed":"컬렉션을 만들지 못했습니다","deleteFailed":"컬렉션을 삭제하지 못했습니다","assignFailed":"문서를 이동하지 못했습니다","share":"컬렉션 공유","shared":"공유됨"},"library":{"title":"업로드된 문서","description":"채팅 컨텍스트로 사용할 수 있는 문서입니다. 채팅에서 업로드한 문서는 해당 대화에만 남고, 채팅과 컬렉션이 없는 문서는 모든 대화에 포함됩니다.","empty":"아직 업로드된 문서가 없습니다.","chatScope":"단일 채팅","everyChatScope":"모든 채팅","deleteConfirm":"\\"{{name}}\\"을(를) 삭제할까요? 모든 채팅에서 사라집니다.","deleteFailed":"문서를 삭제하지 못했습니다"}},"tts":{"title":"음성 합성","description":"메시지를 소리로 읽어주는 텍스트 음성 변환 설정 구성","loadingProviders":"TTS 제공자 로딩 중...","noProviders":"TTS 제공자 없음","noProvidersDescription":"음성 합성을 활성화하려면 TTS를 지원하는 플러그인을 구성하세요","enable":"TTS 활성화","enableDescription":"어시스턴트 메시지에 대한 음성 합성 허용","autoPlay":"응답 자동 재생","autoPlayDescription":"새 어시스턴트 메시지를 자동으로 소리로 읽기","streamSentences":"자연스러운 일괄 재생","streamSentencesDescription":"구문을 고려한 여러 묶음을 미리 생성한 뒤 하나의 연속된 응답처럼 재생합니다.","voiceConfiguration":"음성 구성","model":"TTS 모델","modelDescription":"음성 합성에 사용할 모델 선택","voice":"음성","selectVoice":"음성 선택","voiceDescription":"음성 합성에 사용할 음성 선택","providerDefaultVoice":"음성을 생성할 때 참조 녹음을 제공하지 않으면 이 모델은 기본 음성을 사용합니다.","voiceCloningAvailable":"음성 복제를 사용할 수 있음","voiceCloningAvailableDescription":"상상 → 오디오에서 동의를 받은 참조 녹음과 정확한 녹취록으로 음성을 만드세요. 참조 자료를 재사용 가능한 음성으로 저장할 수도 있습니다.","savedVoiceOption":"{{name}}(저장된 음성)","savedVoices":"저장된 음성","loadingSavedVoices":"저장된 음성 불러오는 중…","deleteSavedVoice":"저장된 음성 {{name}} 삭제","deleteSavedVoiceConfirm":"저장된 음성 ‘{{name}}’을(를) 삭제할까요? 참조 녹음과 녹취록도 삭제됩니다.","savedVoiceDeleted":"저장된 음성을 삭제했습니다","savedVoicePreferenceCleanupFailed":"저장된 음성을 삭제했지만 음성 설정을 초기화하지 못했습니다","savedVoiceDeleteFailed":"저장된 음성을 삭제하지 못했습니다","speed":"속도","speedSlow":"0.5배","speedNormal":"1.0배","speedFast":"2.0배","availableProviders":"사용 가능한 제공자","models":"모델","test":"테스트","testing":"테스트 중...","stop":"중지","consentRevoked":"동의 철회됨","consentExpired":"동의 만료됨","transferCount":"제공업체로 {{total}}회 전송됨","consentExpires":"동의 유효기간 {{date}}","revokeSavedVoice":"{{name}}에 대한 동의 철회","revokeSavedVoiceConfirm":"“{{name}}”에 대한 동의를 철회할까요? 저장된 음성은 더 이상 사용할 수 없지만 동의 기록은 유지됩니다.","savedVoiceRevoked":"동의가 철회되었습니다","savedVoiceRevokeFailed":"동의를 철회하지 못했습니다"},"imageGen":{"title":"이미지 생성","description":"이미지 생성 설정 및 제공자 구성","loadingProviders":"이미지 생성 제공자 로딩 중...","noProviders":"이미지 생성 제공자 없음","noProvidersDescription":"이미지 생성을 지원하는 플러그인을 구성하세요","enable":"이미지 생성 활성화","enableDescription":"대화에서 AI 이미지 생성 허용","configuration":"구성","model":"모델","modelDescription":"이미지 생성에 사용할 모델 선택","size":"크기","sizeDescription":"생성된 이미지의 해상도","quality":"품질","qualityDescription":"생성된 이미지의 품질 수준","style":"스타일","styleDescription":"생성된 이미지의 스타일 프리셋","availableProviders":"사용 가능한 제공자","models":"모델"},"data":{"title":"데이터 관리","export":"데이터 내보내기","exportDescription":"환경설정, 채팅 폴더, 세션과 메시지, 노트, 지식 컬렉션, 추출된 문서 텍스트가 포함된 이동식 아카이브를 다운로드합니다.","archiveScopeV3":"환경설정, 채팅, 폴더, 노트, 지식 컬렉션, 추출된 문서 텍스트를 포함합니다. 계정과 비밀 정보, 생체정보 기반 복제 음성, 생성된 미디어, 페르소나와 메모리, Work 데이터나 볼륨은 제외됩니다.","exportAll":"모든 데이터 내보내기","import":"데이터 가져오기","importDescription":"이전 내보내기에서 데이터를 가져옵니다.","importData":"데이터 가져오기","importing":"가져오는 중...","clearSessions":"세션 지우기","clearSessionsDescription":"모든 채팅 세션을 삭제합니다. 이 작업은 취소할 수 없습니다.","clearAll":"모두 지우기","clearing":"지우는 중...","importOptions":"가져오기 옵션","importOptionsDescription":"기존 데이터 처리 방법 선택","validatingArchive":"아카이브를 검증하고 변경 사항을 계산하는 중…","archiveValidationFailed":"아카이브 검증 실패","preflightReport":"가져오기 미리보기","preflightIncoming":"폴더 {{folders}}개 · 채팅 {{sessions}}개 · 메시지 {{messages}}개 · 노트 {{notes}}개 · 컬렉션 {{collections}}개 · 문서 {{documents}}개 · 청크 {{chunks}}개","preflightRemappedIds":"다른 계정의 데이터를 보호하기 위해 ID {{count}}개가 다시 매핑됩니다.","skipDuplicates":"중복 건너뛰기","overwrite":"기존 항목 덮어쓰기","importResults":"가져오기 결과","preferences":"환경설정","imported":"가져옴","failed":"실패","sessions":"세션","sessionFolders":"세션 폴더","notes":"노트","knowledgeCollections":"지식 컬렉션","importedLabel":"가져옴","overwrittenLabel":"덮어씀","skipped":"건너뜀","toCreate":"생성 예정","toOverwrite":"덮어쓰기 예정","toSkip":"건너뛰기 예정","documents":"문서","warnings":"경고","refreshAfterImportFailed":"데이터를 가져왔지만 일부 화면을 새로 고치지 못했습니다. 모든 변경 사항을 보려면 Libre WebUI를 다시 로드하세요.","errors":"오류","archivedChats":{"title":"보관된 채팅","empty":"보관된 채팅이 없습니다","unarchive":"보관 해제"}},"about":{"title":"정보","versionLabel":"버전","ollama":{"title":"Ollama 상태","version":"버전","healthy":"정상","unhealthy":"비정상"},"stats":{"models":"모델","sessions":"세션"},"features":{"privacy":{"title":"프라이버시 우선","description":"데이터가 기기에 저장됩니다"},"openSource":{"title":"오픈 소스","description":"무료 오픈 소스 소프트웨어"},"localInference":{"title":"로컬 추론","description":"Ollama로 로컬에서 AI 모델 실행"}},"openSourceBy":"{{company}}의 오픈 소스","links":{"title":"링크","github":"GitHub","githubDescription":"소스 코드 보기 및 기여","website":"웹사이트","websiteDescription":"웹사이트 방문","documentation":"문서","reportIssue":"문제 보고","reportIssueDescription":"버그 보고서 및 기능 요청","documentationDescription":"가이드, 튜토리얼 및 API 레퍼런스","forgejo":"Forgejo 미러","forgejoDescription":"자체 호스팅 Forgejo 저장소","sponsor":"후원","sponsorDescription":"프로젝트 운영을 후원하기","star":"GitHub에 스타 남기기","starDescription":"스타는 다른 사람들이 프로젝트를 발견하는 데 도움이 됩니다"},"version":"버전 {{version}}","updates":{"checking":"업데이트 확인 중…","upToDate":"최신 버전을 사용 중입니다","updateAvailable":"{{version}} 버전이 있습니다","ahead":"최신 릴리스보다 앞서 있습니다 ({{version}})","checkFailed":"업데이트를 확인할 수 없습니다","viewChangelog":"변경 내역 보기"}},"groups":{"general":"일반","chat":"채팅","media":"음성 및 이미지","connections":"연결"},"search":{"title":"웹 검색","description":"자체 호스팅 SearXNG 인스턴스로 웹을 검색합니다. 활성화하면 채팅 입력창에 검색 토글이 표시되고 네트워크 접근이 있는 Work 작업도 검색할 수 있습니다.","enableLabel":"웹 검색 활성화","enableDescription":"채팅과 Work 작업에 웹 검색을 제공합니다. 검색은 구성된 인스턴스에 대해 서버 측에서 실행됩니다.","urlLabel":"SearXNG URL","urlDescription":"서버에서 접근 가능한 SearXNG 인스턴스의 기본 URL. 포함된 프라이빗 배포 스택은 http://searxng:8080 을 제공합니다.","maxResultsLabel":"검색당 결과 수","maxResultsDescription":"답변이나 도구 호출에 사용할 결과 수, 1-100.","maxResultsInvalid":"검색당 결과 수는 1에서 100 사이여야 합니다.","safeSearchLabel":"세이프서치","safeSearchDescription":"엔진에 노골적인 결과 필터링을 요청합니다.","test":"연결 테스트","testing":"테스트 중…","testOk":"검색 작동 — {{results}}개의 결과 반환","testFailed":"검색 테스트 실패","save":"저장","saved":"검색 설정이 저장되었습니다","saveFailed":"검색 설정을 저장할 수 없습니다"},"compaction":{"title":"컨텍스트 압축","description":"대화가 토큰 임계값을 넘으면 서버가 오래된 메시지를 요약하고 최신 메시지만 그대로 유지합니다. 이 서버의 모든 사용자에게 적용됩니다.","thresholdLabel":"토큰 임계값","thresholdDescription":"이 추정 컨텍스트 토큰 수를 넘으면 오래된 기록을 요약합니다. 500~1,000,000.","thresholdInvalid":"토큰 임계값은 500에서 1,000,000 사이여야 합니다.","keepRecentLabel":"그대로 유지할 최근 메시지","keepRecentDescription":"최근 메시지 중 항상 그대로 남길 개수입니다. 2~200.","keepRecentInvalid":"그대로 유지할 최근 메시지 수는 2에서 200 사이여야 합니다.","modelLabel":"압축 모델","modelDescription":"요약을 작성하는 모델입니다. 선택하지 않으면 해당 대화의 모델을 사용합니다.","sessionModelOption":"대화의 모델 사용","promptLabel":"사용자 지정 요약 프롬프트","promptPlaceholder":"비워 두면 기본 프롬프트를 사용합니다","promptDescription":"템플릿 변수 {{previousSummaryVariable}} 및 {{messagesVariable}}는 이전 요약과 요약할 메시지로 바뀝니다.","saved":"압축 설정을 저장했습니다","saveFailed":"압축 설정을 저장하지 못했습니다","loadFailed":"압축 설정을 불러오지 못했습니다"},"sessions":{"title":"세션","description":"이 계정이 로그인되어 있는 모든 위치입니다. 세션을 로그아웃하면 즉시 적용되며, 다시 로그인하면 액세스가 복원됩니다.","signOutOthers":"다른 세션 모두 로그아웃","signingOutOthers":"로그아웃 중…","signOut":"로그아웃","signingOut":"로그아웃 중…","revoked":"세션이 로그아웃되었습니다.","revokeFailed":"세션을 로그아웃하지 못했습니다.","othersRevoked":"로그아웃된 다른 세션: {{count}}개","loadFailed":"세션을 불러오지 못했습니다.","empty":"세션이 없습니다.","current":"현재 세션","revokedBadge":"로그아웃됨","unknownDevice":"알 수 없는 기기","createdAt":"로그인 시각","lastSeenAt":"마지막 활동","expiresAt":"만료"},"apiKeys":{"title":"API 키","description":"스크립트와 통합을 위한 범위 지정 토큰입니다. 각 키는 선택한 범위에만 액세스할 수 있습니다.","newKeyTitle":"새 API 키","copy":"복사","copied":"클립보드에 복사되었습니다.","copyFailed":"복사하지 못했습니다.","showOnceWarning":"지금 복사하세요. 다시 표시되지 않습니다.","dismiss":"완료","createTitle":"키 만들기","nameLabel":"이름","namePlaceholder":"예: CI 파이프라인","nameRequired":"키 이름을 입력하세요.","expiryLabel":"만료 기간(일, 선택 사항)","expiryPlaceholder":"만료 없음","expiryInvalid":"만료 기간은 정수(일)여야 합니다.","scopesLabel":"범위","scopesRequired":"범위를 하나 이상 선택하세요.","create":"키 만들기","creating":"만드는 중…","created":"API 키가 생성되었습니다.","createFailed":"API 키를 만들지 못했습니다.","revoke":"폐기","revoking":"폐기 중…","revoked":"API 키가 폐기되었습니다.","revokeFailed":"API 키를 폐기하지 못했습니다.","revokedBadge":"폐기됨","loadFailed":"API 키를 불러오지 못했습니다.","empty":"아직 API 키가 없습니다.","createdAt":"생성됨","lastUsedAt":"마지막 사용","expiresAt":"만료","neverExpires":"만료 없음"}}`),models:{title:`모델`,subtitle:`Ollama 모델 풀, 관리 및 모니터링`,installed:`설치된 모델`,available:`사용 가능한 모델`,pull:`모델 풀`,pulling:`풀 중...`,delete:`모델 삭제`,deleting:`삭제 중...`,size:`크기`,modified:`수정됨`,family:`계열`,parameters:`매개변수`,quantization:`양자화`,noModels:`설치된 모델 없음`,pullFirst:`시작하려면 모델을 풀하세요`,noModelsFound:`모델을 찾을 수 없습니다`},personas:{title:`페르소나`,create:`페르소나 만들기`,edit:`페르소나 편집`,delete:`페르소나 삭제`,name:`이름`,description:`설명`,systemPrompt:`시스템 프롬프트`,model:`모델`,avatar:`아바타`,background:`배경`,noPersonas:`만들어진 페르소나 없음`,createFirst:`채팅 경험을 사용자 정의하려면 첫 번째 페르소나를 만드세요`},gallery:{title:`갤러리`,subtitle:`AI 생성 이미지 갤러리`,imageCount:`이미지 {{count}}개`,generate:`이미지 생성`,generateDescription:`AI로 이미지 만들기`,generating:`생성 중...`,prompt:`프롬프트`,promptPlaceholder:`생성하려는 이미지를 설명하세요...`,noImages:`아직 생성된 이미지 없음`,download:`다운로드`,delete:`삭제`,regenerate:`재생성`,model:`모델`,size:`크기`,quality:`품질`,created:`생성됨`},errors:{generic:`오류가 발생했습니다`,network:`네트워크 오류. 연결을 확인하세요.`,unauthorized:`이 작업을 수행할 권한이 없습니다.`,notFound:`요청한 리소스를 찾을 수 없습니다.`,serverError:`서버 오류. 나중에 다시 시도하세요.`,validation:`입력을 확인하고 다시 시도하세요.`},keyboard:{title:`키보드 단축키`,toggleSidebar:`사이드바 전환`,openSettings:`설정 열기`,toggleDarkMode:`다크 모드 전환`,showShortcuts:`키보드 단축키 표시`,closeModals:`모달 닫기`,groups:{navigation:`탐색`,general:`일반`,chat:`채팅`,workspace:`작업 공간`},actions:{sendMessage:`메시지 보내기`,newLine:`메시지에 새 줄`,saveEdit:`편집한 메시지 저장`,cancelEdit:`편집 취소`,saveFile:`파일 저장`,formatCode:`코드 서식 정리`},description:`Libre WebUI에서 사용할 수 있는 모든 키보드 단축키입니다.`,newChat:`새 채팅`,newWork:`새 Work 세션`,openPalette:`명령 팔레트 열기`},modelManager:{title:`모델`,loading:`모델 로딩 중...`,systemStatus:{online:`Ollama 온라인`,offline:`Ollama 오프라인`,models:`모델`,models_plural:`모델`,running:`실행 중`,vram:`VRAM`},sections:{pull:`새 모델 풀`,library:`라이브러리 찾아보기`,huggingface:`HuggingFace Hub`,running:`실행 중인 모델`,local:`로컬 모델`,advanced:`고급 작업`,catalog:`모델 카탈로그`},catalog:{searchPlaceholder:`이름 또는 제공자로 모델 검색...`,noModels:`아직 사용할 수 있는 모델이 없습니다.`,empty:`검색과 일치하는 모델이 없습니다.`,providerOllama:`Ollama`,hidden:`숨김`,visibilityFailed:`모델 표시 설정을 변경하지 못했습니다.`,filterAll:`모든 모델`,filterLocal:`로컬`,filterProviders:`제공자`,filterHidden:`숨김`,enableAll:`표시된 항목 켜기`,disableAll:`표시된 항목 끄기`,rename:`이름과 사진 편집`,setPicture:`사진 설정`,clearPicture:`사진 제거`,pictureInvalid:`이미지 파일을 선택하세요.`,pictureTooLarge:`사진은 192KB 미만이어야 합니다.`,saving:`저장 중…`,hide:`사용자에게 숨기기`,show:`사용자에게 표시`},pull:{placeholder:`모델 이름 입력 (예: llama3.2:3b, deepseek-r1:14b)`,button:`풀`,cancel:`취소`,popular:`인기 모델:`,browseAll:`ollama.com에서 모든 모델 찾아보기`,success:`모델 {{name}}이(가) 성공적으로 풀되었습니다`,cancelled:`모델 풀이 취소되었습니다`,failed:`모델 풀 실패`,enterName:`모델 이름을 입력하세요`,restricted:`이 인스턴스에서 모델 설치는 관리자만 가능합니다.`},progress:{starting:`초기화 중...`,pulling:`모델 다운로드 중...`,pullingLayer:`다운로드 중`,verifying:`무결성 확인 중...`,verifyingDigest:`sha256 다이제스트 확인 중`,writing:`매니페스트 작성 중...`,cleaning:`정리 중...`},library:{available:`사용 가능`,search:`모델 검색...`,noResults:`기준에 맞는 모델을 찾을 수 없습니다`,installed:`설치됨`,more:`+{{count}}개 더`,refresh:`라이브러리 새로고침`},huggingface:{browseAll:`HuggingFace에서 모두 보기`,checkingGguf:`GGUF 파일 확인 중...`,noGgufAvailable:`Ollama로 직접 풀할 수 있는 GGUF 파일이 없습니다`,ggufFilesCount:`GGUF 파일 ({{count}}) - Ollama로 직접 풀`,noModelsFound:`모델을 찾을 수 없습니다`,noResults:`모델을 찾을 수 없습니다. 검색어나 필터를 조정해 보세요.`,browseAllLink:`모두 보기`,search:`HuggingFace 모델 검색...`,by:`작성자`,gated:`제한된 액세스`,viewOnHF:`HuggingFace에서 보기`,sortDownloads:`다운로드`,sortLikes:`좋아요`,sortRecent:`최근`,taskTextGeneration:`텍스트 생성`,taskTextToSpeech:`텍스트 음성 변환`,taskTextToImage:`텍스트 이미지 변환`,taskSpeechRecognition:`음성 인식`,tasks:{textGen:`텍스트 생성`,tts:`텍스트 음성 변환`,image:`텍스트 이미지 변환`,stt:`음성 인식`},sort:{downloads:`다운로드 순`,likes:`인기 순`,recent:`최근 업데이트`}},local:{noModels:`아직 설치된 모델 없음`,pullToStart:`시작하려면 위에서 모델을 풀하세요`,installed:`설치됨`,running:`실행 중`,info:`정보`,copy:`복사`,delete:`삭제`,deleteConfirm:`모델 "{{name}}"을(를) 삭제하시겠습니까?`,deleteSuccess:`모델 {{name}}이(가) 성공적으로 삭제되었습니다`,deleteFailed:`모델 삭제 실패`},advanced:{createModel:`모델 만들기`,fromModelfile:`Modelfile에서`,copyModel:`모델 복사`,duplicateExisting:`기존 항목 복제`,testEmbeddings:`임베딩 테스트`,generateVectors:`벡터 생성`,healthCheck:`상태 점검`,testConnection:`연결 테스트`,healthy:`Ollama가 정상입니다!`},modals:{details:{title:`모델 세부정보`,info:`모델 정보`,family:`계열`,parameters:`매개변수`,quantization:`양자화`,format:`형식`,systemPrompt:`시스템 프롬프트`,template:`템플릿`,license:`라이선스`,modelfile:`Modelfile`,noDetails:`사용 가능한 세부정보 없음`},copy:{title:`모델 복사`,source:`소스 모델`,selectModel:`모델 선택...`,newName:`새 모델 이름`,placeholder:`예: my-custom-model`,copying:`복사 중...`,button:`모델 복사`,success:`모델이 {{name}}(으)로 복사되었습니다`,failed:`모델 복사 실패`,enterBoth:`소스와 대상 이름을 모두 입력하세요`},create:{title:`사용자 정의 모델 만들기`,name:`모델 이름`,namePlaceholder:`예: my-assistant`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
|
|
2
|
+
SYSTEM You are a helpful assistant.`,see:`참조:`,docs:`Modelfile 문서`,docsLink:`구문 참조용`,creating:`만드는 중...`,button:`모델 만들기`,success:`모델 {{name}}이(가) 성공적으로 만들어졌습니다`,failed:`모델 만들기 실패`,enterBoth:`모델 이름과 Modelfile 내용을 입력하세요`},embeddings:{title:`임베딩 테스트`,model:`임베딩 모델`,selectModel:`모델 선택...`,recommended:`권장: nomic-embed-text, mxbai-embed-large`,input:`입력 텍스트`,placeholder:`임베딩을 생성할 텍스트를 입력하세요...`,generating:`생성 중...`,button:`임베딩 생성`,result:`결과 ({{count}}차원)`,success:`{{count}}차원 임베딩 벡터가 생성되었습니다`,failed:`임베딩 생성 실패`,enterBoth:`모델을 선택하고 텍스트를 입력하세요`}}},personaManager:{title:`페르소나`,subtitle:`사용자 정의 성격, 메모리 및 행동을 가진 AI 페르소나 생성 및 관리`,loading:`페르소나 로딩 중...`,createButton:`페르소나 만들기`,importExport:`가져오기/내보내기`,stats:{title:`내 페르소나`,count:`페르소나 {{count}}개 생성됨`,count_plural:`페르소나 {{count}}개 생성됨`},empty:{title:`아직 페르소나 없음`,description:`개인화된 AI 상호작용을 시작하려면 첫 번째 페르소나를 만드세요`,button:`첫 번째 페르소나 만들기`},deleteConfirm:`"{{name}}"을(를) 삭제하시겠습니까?`,deleteSuccess:`페르소나 "{{name}}"이(가) 성공적으로 삭제되었습니다`,downloadSuccess:`페르소나 "{{name}}"이(가) 성공적으로 다운로드되었습니다`,failed:`페르소나 {{action}} 실패`},personaForm:{title:{create:`새 페르소나 만들기`,edit:`페르소나 편집`},subtitle:{create:`사용자 정의 성격, 메모리 시스템 및 적응형 학습 기능을 가진 새 AI 페르소나 만들기`,edit:`고급 메모리, 적응형 학습 및 지능형 매개변수로 AI 페르소나 사용자 정의`},loading:`양식 로딩 중...`,saved:`저장됨`,tabs:{basic:`기본`,parameters:`매개변수`,memory:`메모리 및 학습`,advanced:`고급`,bindings:`바인딩`},basic:{name:`이름`,namePlaceholder:`페르소나 이름 입력`,model:`모델`,selectModel:`모델 선택`,description:`설명`,descriptionPlaceholder:`페르소나를 설명하세요...`,systemPrompt:`시스템 프롬프트`,systemPromptPlaceholder:`페르소나 행동을 정의하는 시스템 프롬프트를 입력하세요...`,systemPromptHint:`시스템 프롬프트는 페르소나가 어떻게 행동하고 응답할지를 정의합니다.`},parameters:{temperature:`온도`,temperatureHint:`창의성 대 일관성 제어`,topP:`Top-P`,topPHint:`응답 다양성 제어`,topK:`Top-K`,topKHint:`어휘를 상위 k개 토큰으로 제한`,contextWindow:`컨텍스트 창`,contextWindowHint:`최대 대화 기록 길이`,maxTokens:`최대 토큰`,maxTokensHint:`최대 응답 길이`,repeatPenalty:`반복 페널티`,repeatPenaltyHint:`반복적인 응답 감소`},memory:{title:`메모리 시스템`,subtitle:`페르소나가 시간이 지남에 따라 대화를 기억합니다`,enableHint:`메모리 시스템을 활성화하여 페르소나가 대화를 기억하고 시간이 지남에 따라 컨텍스트를 구축하게 하세요.`,loading:`메모리 상태 로딩 중...`,noData:`아직 메모리 데이터 없음`,memories:`메모리`,mbUsed:`MB 사용됨`,lastBackup:`마지막 백업`,never:`없음`,maxMemories:`최대 메모리`,maxMemoriesHint:`이 페르소나가 저장할 수 있는 메모리 수`,retention:`메모리 보존`,retentionHint:`정리 전 메모리 보존 기간(일)`,autoCleanup:`오래된 메모리 자동 정리`,wipeAll:`모든 메모리 지우기`,wipeCannot:`이 작업은 취소할 수 없습니다`,wipeButton:`지우기`,wiping:`지우는 중...`,wipeConfirm:`모든 메모리를 지우시겠습니까? 이 작업은 취소할 수 없습니다.`,wipeSuccess:`메모리 {{count}}개가 지워졌습니다`},learning:{title:`적응형 학습`,subtitle:`페르소나가 상호작용에 따라 진화합니다`,enableHint:`적응형 학습을 활성화하여 페르소나가 상호작용에 따라 진화하고 응답을 개인화하게 하세요.`,speed:`학습 속도`,slow:`느림`,slowDesc:`점진적 변화`,balanced:`균형`,balancedDesc:`보통 속도`,fast:`빠름`,fastDesc:`빠른 적응`,autoAdapt:`사용자 선호도에 자동 적응`,whatLearns:`페르소나가 학습하는 것:`,conversationTone:`대화 톤`,responseStyle:`응답 스타일`,userPreferences:`사용자 선호도`,topicInterests:`주제 관심사`},advanced:{embeddingModel:`임베딩 모델`,embeddingHint:`메모리 인코딩 및 의미 검색에 사용할 모델을 선택하세요. 임베딩 모델이 먼저 표시되고 다른 사용 가능한 모델이 뒤따릅니다.`,noModels:`모델을 찾을 수 없음`,embeddingModels:`임베딩 모델`,otherModels:`다른 모델`,installHint:`임베딩 모델 설치:`,recommended:`권장: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`고급 설정 정보`,aboutDescription:`임베딩 모델은 메모리 시스템에서 의미를 이해하고 대화 중 관련 메모리를 찾는 데 사용됩니다. 사용 사례와 가용 리소스에 맞는 모델을 선택하세요.`},actions:{cancel:`취소`,save:`저장`,saving:`저장 중...`,saveClose:`저장 후 닫기`,create:`만들기`},success:{created:`페르소나가 생성되었습니다`,updated:`페르소나가 업데이트되었습니다`},error:{saveFailed:`저장 실패`},bindings:{toolServers:`도구 서버`,toolServersHint:`이 페르소나가 호출할 수 있는 서버입니다. 비워 두면 사용자가 이미 접근할 수 있는 모든 서버가 대상이 됩니다.`,noToolServers:`사용할 수 있는 도구 서버가 없습니다.`,builtinTools:`기본 제공 도구`,builtinToolsHint:`서버가 직접 구현한 도구입니다. 비워 두면 전부 제공됩니다.`,noBuiltinTools:`사용할 수 있는 기본 제공 도구가 없습니다.`,builtin:{web_search:`웹 검색`,search_documents:`문서 검색`,load_skill:`스킬 불러오기`},skills:`스킬`,skillsHint:`이 페르소나가 활성일 때 모델이 불러올 수 있는 스킬입니다.`,noSkills:`아직 만든 스킬이 없습니다.`,collections:`지식 컬렉션`,collectionsHint:`이 페르소나가 검색할 수 있는 문서 컬렉션입니다.`,noCollections:`아직 만든 컬렉션이 없습니다.`,prompt:`프롬프트`,promptHint:`이 페르소나로 시작하는 모든 새 대화에 넣을 프롬프트입니다.`,noPrompt:`프롬프트 없음`,version:`바인딩 리비전 {{version}}`}},personaCard:{enhanced:`향상됨`,systemPrompt:`시스템 프롬프트`,memories:`메모리`,use:`사용`,editTooltip:`페르소나 편집`,downloadTooltip:`페르소나 다운로드`,backup:`백업`,exportDNA:`DNA 내보내기`,wipeMemories:`메모리 지우기`,wipeConfirm:`이 페르소나의 모든 메모리를 지우시겠습니까? 이 작업은 취소할 수 없습니다.`,wipeSuccess:`메모리 {{count}}개가 지워졌습니다`,backupSuccess:`페르소나 백업이 성공적으로 다운로드되었습니다`,dnaSuccess:`페르소나 DNA가 성공적으로 내보내졌습니다`,failed:`{{action}} 실패`,shareTooltip:`이 페르소나 공유`},userManager:{title:`사용자 관리`,subtitle:`사용자 계정 및 권한 관리`,pageDescription:`Libre WebUI 인스턴스의 사용자 계정, 권한 및 액세스 제어를 관리합니다.`,loading:`사용자 로딩 중...`,createUser:`사용자 만들기`,search:`사용자 검색...`,noUsers:`사용자 없음`,noUsersMatching:`검색과 일치하는 사용자 없음`,columns:{user:`사용자`,email:`이메일`,role:`역할`,created:`생성됨`,actions:`작업`},roles:{admin:`관리자`,user:`사용자`},noEmail:`이메일 없음`,deleteConfirm:`사용자 "{{name}}"을(를) 삭제하시겠습니까?`,deleteSuccess:`사용자가 성공적으로 삭제되었습니다`,deleteFailed:`사용자 삭제 실패`,cannotDeleteSelf:`자신의 계정은 삭제할 수 없습니다`,approval:{title:`대기 중인 승인`,description:`이 인스턴스에 들어오기 전에 새 등록을 검토하세요.`,registered:`등록됨`,activate:`계정 활성화`,reject:`등록 거부`,approved:`{{name}}님이 이제 로그인할 수 있습니다.`,failed:`계정을 승인할 수 없습니다.`,notification:`{{count}}건의 등록이 승인을 기다리고 있습니다.`,notificationBadge:`{{count}}건의 대기 중인 사용자 승인`},form:{title:{create:`사용자 만들기`,edit:`사용자 편집`},username:`사용자 이름`,usernamePlaceholder:`사용자 이름 입력`,email:`이메일`,emailPlaceholder:`이메일 입력 (선택사항)`,password:`비밀번호`,passwordPlaceholder:`비밀번호 입력`,passwordHint:`현재 비밀번호를 유지하려면 비워두세요`,role:`역할`,creating:`만드는 중...`,updating:`업데이트 중...`,createButton:`사용자 만들기`,updateButton:`사용자 업데이트`,createSuccess:`사용자가 성공적으로 만들어졌습니다`,updateSuccess:`사용자가 성공적으로 업데이트되었습니다`,createFailed:`사용자 만들기 실패`,updateFailed:`사용자 업데이트 실패`},workAccess:{title:`Work 접근`,description:`모든 활성 사용자가 격리된 샌드박스에서 Work 작업을 만들고 실행할 수 있도록 허용합니다. 관리자는 항상 접근할 수 있으며, 호스트 폴더 워크스페이스는 관리자 전용으로 유지됩니다.`,saved:`Work 접근이 업데이트되었습니다`,saveFailed:`Work 접근을 업데이트할 수 없습니다`},workPolicies:{title:`Work 정책`,description:`작업을 만들 때 선택할 수 있는 이름 있는 런타임 프리셋(이미지, 제한, 유휴 중지)입니다. 빈 필드는 전역 기본값을 상속합니다.`,add:`정책 추가`,name:`이름`,image:`이미지`,memory:`메모리`,cpu:`CPU`,pids:`PID 제한`,workspaceSize:`워크스페이스 크기`,idleMinutes:`유휴 중지(분)`,networkDefault:`네트워크 기본값`,networkInherit:`기본값 상속`,networkOn:`사용`,networkOff:`사용 안 함`,save:`저장`,cancel:`취소`,edit:`정책 편집`,delete:`정책 삭제`,deleteConfirm:`이 정책을 삭제할까요? 이 정책을 사용하는 작업은 전역 기본값으로 돌아갑니다.`,empty:`아직 정책이 없습니다. 작업은 전역 런타임 기본값을 사용합니다.`,saved:`Work 정책이 저장되었습니다`,deleted:`Work 정책이 삭제되었습니다`,failed:`Work 정책을 저장할 수 없습니다`,invalidNumber:`PID 제한과 유휴 중지는 숫자여야 합니다.`},modelAccess:{title:`모델 다운로드`,description:`모든 활성 사용자가 Ollama와 Hugging Face 브라우저에서 모델을 가져올 수 있도록 허용합니다. 관리자는 항상 모델을 다운로드할 수 있습니다.`,saved:`모델 다운로드 접근이 업데이트되었습니다`,saveFailed:`모델 다운로드 접근을 업데이트할 수 없습니다`},webSearchAccess:{title:`웹 검색`,description:`모든 활성 사용자가 채팅과 Work 작업에서 웹 검색을 사용할 수 있도록 허용합니다. 관리자는 항상 사용할 수 있습니다. 엔진은 설정 > 검색에서 구성합니다.`,saved:`웹 검색 접근이 업데이트되었습니다`,saveFailed:`웹 검색 접근을 업데이트할 수 없습니다`},agentAccess:{title:`에이전트`,description:`관리자에게 에이전트 섹션(Libre Claw)을 제공합니다. 에이전트 CLI는 Work 샌드박스 밖에서 서버 사용자로 호스트에서 실행됩니다.`,saved:`에이전트 접근이 업데이트되었습니다`,saveFailed:`에이전트 접근을 업데이트할 수 없습니다`,lockedByEnv:`AGENT_CLI_MODELS_ENABLED 환경 변수로 고정되어 있습니다.`},groups:{title:`그룹`,description:`계정을 그룹으로 묶어 공유 액세스를 관리하고, 각 계정이 실제로 무엇을 할 수 있는지 확인하세요.`,newGroup:`새 그룹`,nameLabel:`이름`,nameRequired:`그룹 이름을 입력하세요.`,descriptionLabel:`설명(선택 사항)`,create:`그룹 만들기`,creating:`만드는 중…`,created:`그룹이 생성되었습니다.`,createFailed:`그룹을 만들지 못했습니다.`,deleted:`그룹이 삭제되었습니다.`,deleteFailed:`그룹을 삭제하지 못했습니다.`,deleteGroup:`그룹 삭제`,loadFailed:`그룹을 불러오지 못했습니다.`,empty:`아직 그룹이 없습니다.`,memberCount:`구성원: {{count}}명`,noMembers:`아직 구성원이 없습니다.`,addedAt:`추가됨`,addMember:`구성원 추가`,add:`추가`,selectUser:`사용자 선택…`,memberAdded:`구성원이 추가되었습니다.`,memberAddFailed:`구성원을 추가하지 못했습니다.`,removeMember:`구성원 제거`,memberRemoved:`구성원이 제거되었습니다.`,memberRemoveFailed:`구성원을 제거하지 못했습니다.`,effectiveTitle:`유효 액세스`,effectiveDescription:`계정을 선택하면 역할, 그룹, 권한 부여를 종합한 최종 액세스를 확인할 수 있습니다.`,accessLookupFailed:`유효 액세스를 불러오지 못했습니다.`,roleLabel:`역할`,statusLabel:`상태`,memberOf:`그룹`,featuresLabel:`기능 액세스`,grantsLabel:`권한 부여`,grantVia:`경유`},audit:{title:`보안 감사 로그`,description:`이 인스턴스의 최근 로그인, 권한 확인, 관리 작업 변경 내역입니다.`,actionFilter:`작업`,actionPlaceholder:`예: auth.login`,resultFilter:`결과`,resultSuccess:`성공`,resultDenied:`거부됨`,resultFailure:`실패`,limitFilter:`표시 개수`,loadFailed:`감사 로그를 불러오지 못했습니다.`,empty:`아직 기록된 감사 이벤트가 없습니다.`,actor:`수행자`,target:`대상`},tools:{title:`도구 접근 권한`,description:`모두가 도구 서버를 호출할 수 있게 합니다. 꺼 두면 관리자만 호출할 수 있습니다.`,saved:`도구 접근 권한을 업데이트했습니다`,saveFailed:`도구 접근 권한을 업데이트하지 못했습니다.`,lockedByEnv:`이 서버의 환경 변수로 잠겨 있습니다.`},voice:{title:`음성 접근`,description:`음성 기능을 사용할 수 있는 사용자를 제어합니다. 관리자는 항상 접근할 수 있습니다.`,lockedByEnv:`환경 변수로 고정됨`,saved:`음성 접근이 업데이트되었습니다`,saveFailed:`음성 접근을 업데이트하지 못했습니다`,features:{stt:`음성을 텍스트로`,tts:`텍스트를 음성으로`,voiceMode:`음성 모드`,voiceCloning:`음성 복제`}}},usageAnalytics:{eyebrow:`관리`,title:`제공자 사용량`,description:`이 인스턴스에서 활성화된 플러그인의 아웃바운드 API 호출 및 모델 소비를 추적하세요.`,days:`{{count}}일`,refresh:`사용량 새로고침`,loadFailed:`제공자 사용량을 불러올 수 없습니다.`,metrics:{calls:`호출`,tokens:`토큰`},cards:{calls:`API 호출`,callsDetail:`{{count}}명의 활성 사용자 기준`,tokens:`보고된 토큰`,tokensDetail:`{{count}}건의 호출에 보고된 사용량`,success:`성공률`,successDetail:`{{count}}건의 실패한 호출`,latency:`평균 지연 시간`,latencyDetail:`엔드투엔드 제공자 시간`},activity:{title:`시간 경과에 따른 사용량`,callsDescription:`활성화된 플러그인에 대한 일일 아웃바운드 요청`,tokensDescription:`제공자가 보고한 일일 토큰 총량`,chartLabel:`일일 제공자 {{metric}} 차트`},models:{title:`모델 사용량`,description:`이 기간 동안 트래픽이 가장 많은 모델입니다.`,model:`모델`,success:`성공`,latency:`지연 시간`},providers:{title:`활성화된 플러그인 트래픽`},capabilities:{title:`기능 분포`,characters:`{{count}}자`,bytes:`{{count}}바이트`,images:`{{count}}개 이미지`,jobs:`{{count}}개 비디오 작업`,inputs:`{{count}}개 입력`,reportedTokens:`{{count}}개 보고된 토큰`},empty:{title:`아직 제공자 호출이 없습니다`,description:`활성화된 플러그인이 채팅, Work, 임베딩, 이미지, 음성, 소리 또는 비디오 요청을 처리하면 호출이 여기에 표시됩니다.`},privacyNote:`사용량은 아웃바운드 플러그인 경계에서 서버를 통해 측정됩니다. Libre WebUI는 제공자, 모델, 타이밍, 상태 및 보고된 카운터를 저장하며, 프롬프트, 응답, 엔드포인트, 자격 증명 또는 제공자 오류 본문은 절대 저장하지 않습니다. 토큰 총량에는 제공자가 사용 메타데이터를 반환한 호출만 포함됩니다.`,heatmap:{title:`1년간의 활동`,description:`지난 1년간의 일별 프로바이더 호출을 그날 가장 많이 사용된 모델별 색상으로 표시합니다.`,calls:`회 호출`,noCalls:`호출 없음`,other:`기타 모델`,less:`적음`,more:`많음`,yearTotal:`지난 1년간 {{formatted}}회 호출`}},systemPage:{eyebrow:`관리`,title:`시스템`,description:`이 Libre WebUI 인스턴스를 호스팅하는 머신과 런타임을 모니터링합니다.`,updated:`{{date}}에 업데이트됨`,refresh:`시스템 정보 새로고침`,loadFailed:`시스템 정보를 불러올 수 없습니다.`,cards:{uptime:`호스트 가동 시간`,uptimeDetail:`{{date}}부터 실행 중`,memory:`사용된 메모리`,memoryDetail:`{{total}} 중 {{used}}`,freeSpace:`여유 공간`,freeSpaceDetail:`{{label}} · 총 {{total}}`,containers:`실행 중인 컨테이너`,containersDetail:`Docker에 알려진 컨테이너 {{total}}개`,dockerUnavailable:`Docker 사용 불가`,unavailable:`사용 불가`},host:{title:`호스트 및 런타임`,description:`운영 체제, 프로세서 및 Libre WebUI 프로세스 세부 정보입니다.`,container:`컨테이너 런타임`,native:`네이티브 런타임`,hostname:`호스트 이름`,operatingSystem:`운영 체제`,processor:`프로세서`,logicalCpus:`논리 CPU`,loadAverage:`평균 부하 · 1 / 5 / 15분`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`프로세스`,workingDirectory:`작업 디렉터리`},memory:{title:`메모리`,description:`런타임에서 보이는 시스템 메모리 및 애플리케이션 프로세스 사용량.`,usedOf:`{{total}} 중 {{used}} 사용`,free:`{{value}} 여유`,processRss:`프로세스 RSS`,heapUsed:`V8 힙 사용량`,heapTotal:`V8 전체 힙`,external:`외부 메모리`},storage:{title:`저장소`,description:`런타임 파일 시스템 및 영구 애플리케이션 데이터에 사용 가능한 공간.`,used:`{{value}} 사용`,free:`{{value}} 여유`,empty:`이 런타임에서는 파일 시스템 정보를 사용할 수 없습니다.`},docker:{title:`Docker`,description:`읽기 전용 Docker Engine 상태 및 축소된 컨테이너 목록.`,connected:`연결됨`,unavailable:`사용 불가`,unavailableDetail:`Docker Engine 진단을 사용할 수 없습니다.`,socketStatus:`로컬 소켓: {{status}}`,mounted:`마운트됨`,notMounted:`마운트되지 않음`,running:`실행 중`,stopped:`중지됨`,paused:`일시 정지됨`,total:`전체`,version:`버전`,host:`호스트`,architecture:`아키텍처`,cpus:`CPU`,memory:`메모리`,container:`컨테이너`,image:`이미지`,state:`상태`,created:`생성됨`,empty:`Docker에 연결되었으며 현재 나열된 컨테이너가 없습니다.`},network:{title:`네트워크`,description:`런타임에 표시되는 인터페이스, 주소 및 Linux 트래픽 카운터.`,internal:`내부`,empty:`애플리케이션 런타임에 표시되는 네트워크 인터페이스가 없습니다.`},securityNote:`이 페이지는 관리자 전용입니다. 서버는 운영 요약만 반환합니다: 환경 변수, 자격 증명, Docker 레이블, 마운트, 컨테이너 명령 또는 검사 페이로드를 노출하지 않습니다. Libre WebUI가 컨테이너에서 실행될 때 로컬 소켓을 사용할 수 있는 경우 호스트 수준 CPU 및 메모리 세부 정보는 Docker Engine에서 가져옵니다. 다른 값은 애플리케이션 런타임을 설명합니다.`,work:{title:`Work`,description:`모든 사용자의 샌드박스`,access:`접근`,accessAdmins:`관리자만`,accessAllUsers:`모든 사용자`,runtimeAvailable:`사용 가능`,runtimeUnavailable:`사용 불가`,activeRuntimes:`활성 런타임`,pendingCleanups:`대기 중인 정리`,orphans:`고아 컨테이너`,owner:`소유자`,task:`작업`,state:`상태`,preview:`미리보기`,terminals:`터미널`,updated:`업데이트됨`,stateRunning:`실행 중`,stateStopped:`중지됨`,stateStarting:`시작 중`,stateUnknown:`알 수 없음`,noTasks:`아직 Work 작업이 없습니다.`}},chatHistory:{label:`대화 기록`,jumpToTurn:`{{total}}개 중 {{index}}번째 대화로 이동`},chatMessage:{you:`나`,assistant:`어시스턴트`,system:`시스템`,conversationSummary:`대화 요약`,restoreCompacted:`요약된 메시지 복원`,restoreFailed:`요약된 메시지를 복원하지 못했습니다`,copy:`복사`,copyMessage:`메시지 복사`,copied:`복사됨!`,regenerate:`재생성`,regenerateResponse:`응답 재생성`,edit:`편집`,editSystemMessage:`시스템 메시지 편집`,saveChanges:`변경사항 저장`,cancelEditing:`편집 취소`,saveAndSubmit:`저장 후 전송`,goodResponse:`좋은 응답`,badResponse:`나쁜 응답`,delete:`삭제`,deleteConfirm:`이 메시지를 삭제하시겠습니까?`,branch:`분기`,speaking:`말하는 중...`,speakMessage:`메시지 읽기`,stopSpeaking:`읽기 중지`,showMore:`더 보기`,showLess:`접기`,thinking:`생각 중`,thoughtFor:`{{duration}} 동안 생각함`,hiddenLines:`숨겨진 줄: {{count}}`,systemMessagePlaceholder:`시스템 메시지를 입력하세요...`,fullSizeImage:`전체 크기 이미지`,startConversation:`대화 시작하기`,startConversationDescription:`AI 어시스턴트와 채팅을 시작하려면 메시지를 보내세요. 질문하고, 코드 도움을 받거나, 자연스러운 대화를 나누세요.`,scrollToBottom:`맨 아래로 스크롤`,newMessages:`새 메시지`,feedbackTags:{accuracy:`정확성`,style:`문체`,incomplete:`불완전`,harmful:`유해함`,formatting:`서식`},feedbackComment:`댓글 추가…`},imageGallery:{title:`이미지 갤러리`,noImages:`아직 이미지 없음`,noImagesHint:`오른쪽 패널을 사용하여 첫 번째 이미지를 생성하세요`,delete:`삭제`,download:`다운로드`,deleteConfirm:`이 이미지를 삭제하시겠습니까?`,deleteSuccess:`이미지가 삭제되었습니다`,deleteFailed:`이미지 삭제 실패`,downloadFailed:`이미지 다운로드 실패`,loadMore:`더 보기 ({{current}}/{{total}})`,loadFailed:`갤러리 로드 실패`},imageGeneration:{title:`이미지 생성`,prompt:`프롬프트`,promptPlaceholder:`만들고 싶은 이미지를 설명하세요...`,model:`모델`,selectModel:`모델 선택`,noModels:`사용 가능한 이미지 생성 모델 없음`,configurePlugin:`이미지 생성을 지원하는 플러그인을 구성하세요`,size:`크기`,quality:`품질`,style:`스타일`,generate:`생성`,generating:`생성 중...`,success:`이미지가 성공적으로 생성되었습니다`,failed:`이미지 생성 실패`,enterPrompt:`프롬프트를 입력하세요`,promptTooLong:`프롬프트가 최대 {{max}}자를 초과합니다`},mediaGeneration:{title:`미디어 생성`,description:`활성화된 미디어 제공자로 비디오, 사운드, 음악 또는 음성을 생성합니다.`,image:`이미지`,video:`비디오`,audio:`오디오`,sound:`사운드`,speech:`음성`,model:`모델`,voice:`음성 또는 음성 ID`,cloneVoice:`참조 음성 복제`,cloneVoiceDescription:`미리 설정된 음성 대신 참조 녹음을 바탕으로 이 음성을 생성합니다.`,referenceAudio:`참조 오디오`,referenceTranscript:`정확한 참조 녹취록`,referenceTranscriptPlaceholder:`참조 녹음에서 말한 내용을 정확히 입력하세요…`,referenceAudioTooLarge:`참조 오디오는 {{max}} 이하여야 합니다.`,cloneConsent:`화자의 허가를 받은 경우에만 음성을 복제하세요. 이 생성 작업을 위해 녹음이 선택한 제공업체로 전송되며 Libre WebUI에는 저장되지 않습니다.`,saveVoiceProfile:`재사용 가능한 음성으로 저장`,saveVoiceProfileDescription:`이 참조 녹음과 녹취록을 안전하게 저장합니다. 이 음성을 사용하는 모든 음성 배치마다 Libre WebUI가 두 자료를 선택한 제공업체로 전송합니다.`,voiceProfileName:`저장된 음성 이름`,voiceProfileNamePlaceholder:`예: 내 목소리`,voiceStorageConsent:`이 음성을 복제하고 저장할 수 있도록 화자의 허가를 받았음을 확인합니다. 참조 자료는 삭제할 때까지 저장됩니다.`,resolution:`해상도`,aspectRatio:`화면 비율`,duration:`길이`,providerDefault:`제공자 기본값`,generateAudio:`지원되는 경우 비디오와 함께 오디오 생성`,prompt:`프롬프트`,text:`음성으로 변환할 텍스트`,videoPlaceholder:`장면, 동작, 카메라 및 조명을 설명하세요...`,audioPlaceholder:`음성으로 말할 텍스트를 입력하세요...`,soundPlaceholder:`원하는 사운드, 음악, 분위기 또는 음성 응답을 설명하세요...`,generate:`생성`,generating:`생성 중… 몇 분 정도 걸릴 수 있습니다`,success:`미디어가 생성되어 Imagine에 저장되었습니다`,successWithSavedVoice:`미디어가 생성되었으며 이제 음성 설정에서 ‘{{name}}’을(를) 사용할 수 있습니다`,failed:`미디어 생성 실패`,loadFailed:`미디어 제공자 로드 실패`,noModels:`사용 가능한 {{kind}} 모델이 없습니다. 호환되는 제공자를 활성화하고 자격 증명을 먼저 저장하세요.`,consentTtl:{label:`동의 유효 기간`,never:`철회할 때까지`,days30:`30일`,days90:`90일`,days365:`1년`}},mediaGallery:{itemCount:`{{count}}개 항목`,empty:`아직 생성된 미디어가 없습니다`,emptyHint:`이미지, 비디오 또는 음성 클립을 생성하면 여기에 표시됩니다.`,filters:{all:`전체`,image:`이미지`,video:`동영상`,audio:`오디오`}},errorBoundary:{title:`문제가 발생했습니다`,description:`예기치 않은 오류가 발생했습니다. 페이지를 새로고침해 보세요.`,tryAgain:`페이지 새로고침`,goHome:`홈으로 가기`,errorDetails:`오류 세부정보 (개발용)`},documents:{title:`문서`,upload:`문서 업로드`,uploading:`업로드 중...`,noDocuments:`업로드된 문서 없음`,uploadHint:`대화에서 사용할 문서를 업로드하세요`,delete:`삭제`,deleteConfirm:`이 문서를 삭제하시겠습니까?`,deleteSuccess:`문서가 삭제되었습니다`,deleteFailed:`문서 삭제 실패`,uploadSuccess:`문서가 성공적으로 업로드되었습니다`,uploadFailed:`문서 업로드 실패`,types:`지원: PDF, TXT, MD, DOCX`,unsupportedFileType:`지원되지 않는 파일 형식입니다`,fileSizeTooLarge:`파일 크기는 10MB 미만이어야 합니다`,uploadSuccessWithName:`문서 "{{name}}"이(가) 성공적으로 업로드되었습니다`,removeSuccess:`문서가 성공적으로 제거되었습니다`,removeFailed:`문서 제거 실패`,removeError:`문서를 제거하는 중 오류가 발생했습니다`,clickToUpload:`클릭하여 업로드`,orDragAndDrop:`또는 드래그 앤 드롭`,fileTypesAndSize:`PDF, Office, Markdown, HTML, 코드, CSV 파일(최대 10MB)`,uploadedDocuments:`업로드된 문서`,removeDocument:`문서 제거`,fullContextToggle:`전체 문서 보내기`,fullContextEstimate:`≈ {{tokens}} 토큰`,fullContextTooLarge:`첨부 문서가 전체 컨텍스트 한도를 초과하여 검색이 대신 사용되었습니다`,fullDocument:`전체 문서`},ttsButton:{speak:`읽기`,stop:`중지`,speaking:`읽는 중...`,generateFailed:`음성 생성 실패`,playbackFailed:`오디오 재생 실패`,stopSpeaking:`읽기 중지`,preparingSpeech:`음성 준비 중...`,generatingSpeech:`음성 생성 중...`,bufferingSpeech:`음성 버퍼링 중...`,enableAudio:`오디오를 켜고 소리 내어 읽기`,enableAudioShort:`오디오 켜기`,readAloud:`소리로 읽기`},artifacts:{title:`아티팩트`,code:`코드`,preview:`미리보기`,copy:`코드 복사`,copied:`복사됨!`,download:`다운로드`,expand:`확장`,collapse:`접기`,openInNewTab:`새 탭에서 열기`,invalidSvg:`잘못된 SVG 콘텐츠`,invalidJson:`잘못된 JSON 콘텐츠`,previewMode:`미리보기 모드`,codeMode:`코드 모드`,copyContent:`콘텐츠 복사`,openInPanel:`패널에서 열기`,openInNewWindow:`새 창에서 열기`,created:`생성됨`,closePanelEsc:`패널 닫기 (Esc)`,copyButton:`복사`,open:`열기`,dragEdgeToResize:`가장자리를 끌어 크기 조절`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`버전 {{current}} / {{total}}`,previousVersion:`이전 버전`,nextVersion:`다음 버전`},personaImportExport:{title:`페르소나 가져오기 및 내보내기`,description:`페르소나를 공유하기 위해 내보내거나 다른 사람의 페르소나를 가져오세요`,exportPersonas:`페르소나 내보내기`,importPersonas:`페르소나 가져오기`,noPersonasToExport:`내보낼 페르소나 없음`,personasAvailable:`페르소나 {{count}}개 사용 가능`,personasAvailable_plural:`페르소나 {{count}}개 사용 가능`,exportAll:`모두 내보내기`,uploadJsonFile:`JSON 파일 업로드`,pasteJsonLabel:`JSON 데이터 붙여넣기`,pasteJsonPlaceholder:`여기에 페르소나 JSON 데이터를 붙여넣으세요...`,importing:`가져오는 중...`,importButton:`페르소나 가져오기`,expectedFormat:`예상 JSON 형식:`,exportSuccess:`페르소나 "{{name}}"이(가) 성공적으로 내보내졌습니다`,exportFailed:`페르소나 내보내기 실패`,exportAllSuccess:`모든 {{count}}개 페르소나가 성공적으로 내보내졌습니다`,exportAllFailed:`페르소나 내보내기 실패`,pasteJsonData:`페르소나 JSON 데이터를 붙여넣으세요`,importMultipleSuccess:`페르소나 {{count}}개가 성공적으로 가져왔습니다`,importMultipleFailed:`페르소나 {{count}}개 가져오기 실패`,importNoneFailed:`페르소나를 가져오지 못했습니다`,importSuccess:`페르소나가 성공적으로 가져왔습니다`,importFailed:`페르소나 가져오기 실패`},generationStats:{details:`세부 정보`,promptTokens:`프롬프트 토큰:`,generatedTokens:`생성된 토큰:`,totalTokens:`총 토큰:`,speed:`속도:`,promptEval:`프롬프트 평가:`,generation:`생성:`,modelLoad:`모델 로드:`,totalTime:`총 시간:`,generatedAt:`생성 시각:`},userMenu:{loggedOut:`로그아웃되었습니다`,pictureUpdated:`프로필 사진이 업데이트되었습니다`,failedUpdateAvatar:`아바타 업데이트 실패`,failedUpdatePicture:`프로필 사진 업데이트 실패`,noEmail:`이메일 없음`,changePicture:`사진 변경`,settings:`설정`,userManagement:`사용자 관리`,signOut:`로그아웃`,changeProfilePicture:`프로필 사진 변경`},pluginManager:{title:`플러그인 관리자`,upload:`업로드`,addJson:`JSON 추가`,browseHF:`HF Hub 찾아보기`,confirmDelete:`이 플러그인을 삭제하시겠습니까?`,uploading:`플러그인 업로드 중...`,pasteJson:`플러그인 JSON을 여기에 붙여넣기...`,installPlugin:`플러그인 설치`,loading:`플러그인 로딩 중...`,noPlugins:`설치된 플러그인 없음`,noPluginsDescription:`시작하려면 플러그인 파일을 업로드하거나 JSON에서 추가하세요.`,active:`활성`,id:`ID`,endpoint:`엔드포인트`,activate:`활성화`,deactivate:`비활성화`,activePlugin:`활성 플러그인`,activePluginDescription:`모든 채팅 요청이 이 플러그인을 통해 라우팅됩니다`,variables:{title:`변수`,save:`저장`,saving:`저장 중...`,saved:`변수가 저장되었습니다`,saveFailed:`변수 저장 실패`,resetDefaults:`기본값으로 재설정`,reset:`변수가 재설정되었습니다`,resetFailed:`변수 초기화 실패`,sensitiveSet:`값이 설정됨 (변경하려면 새 값 입력)`,showValue:`{{label}} 값 표시`,hideValue:`{{label}} 값 숨기기`,connection:`연결`,advanced:`고급 매개변수`,inherited:`제공자 기본값 사용`,inheritedValue:`제공자 기본값 사용 ({{value}})`,enabled:`활성화됨`,disabled:`비활성화됨`,required:`값이 필요합니다`,fullApiEndpoint:`전체 API 엔드포인트 URL`,endpointHelp:`제공자 기본 URL이 아닌 작업 경로(예: /v1/chat/completions)를 포함한 전체 요청 URL을 입력하세요.`,invalidUrl:`유효한 전체 API 엔드포인트 URL을 입력하세요. 예: https://provider.example/v1/chat/completions`,insecureUrl:`API 엔드포인트는 HTTP 또는 HTTPS를 사용해야 합니다.`,httpWarning:`HTTP는 자격 증명이나 트래픽을 암호화하지 않습니다. 신뢰할 수 있는 네트워크에서만 사용하세요.`,invalidBaseUrl:`기본 URL에는 쿼리 문자열이나 프래그먼트가 포함될 수 없습니다.`,invalidApiPath:`/로 시작해야 하며 URL, 쿼리, 프래그먼트 또는 .. 세그먼트를 포함할 수 없습니다.`,tooLong:`값이 너무 깁니다`}},huggingface:{title:`HuggingFace 모델 브라우저`,subtitle:`Hub에서 모델을 찾아 선택하세요`,searchPlaceholder:`모델 검색...`,filters:`필터`,task:`태스크`,sortBy:`정렬`,noModels:`모델을 찾을 수 없습니다`,adjustSearch:`검색어나 필터를 조정해보세요`,gated:`제한됨`,selected:`선택됨`,select:`선택`,refresh:`새로고침`,modelsFound:`개 모델 발견`},demoMode:{title:`데모 모드`,github:`GitHub`},libreClaw:{title:`에이전트`,subtitle:`로컬 에이전트 실행, 승인, 일정, 메모리, 도구 및 사용량입니다.`,dashboard:`대시보드`,connection:{disconnectedTitle:`Libre Claw 데몬이 연결되지 않았습니다`,disconnectedDescription:`<command>libre-claw start</command>로 로컬에서 시작하거나 백엔드 환경에서 <env>LIBRE_CLAW_BASE_URL</env>을 설정하세요.`},status:{connected:`연결됨`,disconnected:`연결이 끊김`,activeRuns:`{{count}} 활성`,activeRuns_plural:`{{count}} 활성`},states:{queued:`대기 중`,running:`실행 중`,blocked:`차단됨`,done:`완료`,failed:`실패`,cancelled:`취소됨`},startRun:{title:`에이전트 실행 시작`,placeholder:`저장소 검사, 버그 수정, 검토 실행, 보고서 예약 등을 Libre Claw에 요청하세요.`,chatRun:`채팅 실행`,goalMode:`목표 모드`,providerOverride:`공급자 재정의`,modelOverride:`모델 재정의`,run:`실행`},modelRoute:{title:`모델 루트`,providerPlaceholder:`공급자`,modelPlaceholder:`모델`,persistGlobal:`Libre Claw 전역 구성 유지`,saveModel:`모델 저장`,theme:`Libre Claw 테마`,saveTheme:`테마 저장`},runs:{title:`실행`,empty:`아직 Libre Claw 실행이 없습니다.`},timeline:{title:`실행 타임라인`,empty:`이벤트를 검사하려면 실행을 선택하세요.`,streaming:`스트리밍 중...`,assistantResponse:`어시스턴트 응답`,resultOk:`알았어`,resultError:`오류`,labels:{userMessage:`사용자 메시지`,toolCall:`도구 호출`,toolResult:`도구 결과`,approvalRequest:`승인 요청`,approvalResponse:`승인 응답`,runStarted:`실행 시작됨`,runFinished:`실행 완료됨`,usage:`사용법`,error:`오류`}},approvals:{needed:`승인 필요`,allowOnce:`한 번만 허용`,alwaysAllowTool:`항상 도구 허용`,deny:`거부`,toolApprovalRequested:`도구 승인이 요청되었습니다.`},automations:{title:`자동화`,namePlaceholder:`이름`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`자동화 프롬프트`,create:`만들기`,empty:`예정된 Libre Claw 자동화가 없습니다.`,runNow:`지금 실행`,pause:`일시중지`,resume:`재개`,routes:{report:`신고`,telegram:`Telegram`},status:{active:`활성`,paused:`일시중지됨`}},usageFallback:{title:`사용법 및 대체`,usage:`사용법`,fallbackRoute:`대체 경로`,noUsage:`아직 이용기록이 없습니다.`},metrics:{provider:`공급자`,model:`모델`,input:`입력`,output:`출력`,cached:`캐시됨`,reasoning:`추론`,cost:`비용`,tool:`도구`,resolution:`해상도`,state:`상태`,stopReason:`중지 이유`,tokens:`{{formatted}} 토큰`,tokens_plural:`{{formatted}} 토큰`},fallbacks:{tool:`도구`,unknown:`알 수 없음`,resolved:`해결됨`,unknownError:`알 수 없는 오류`},toasts:{loadStatusFailed:`Libre Claw 상태를 로드할 수 없습니다.`,enterTask:`Libre Claw에 대한 작업을 입력하세요.`,runStarted:`Libre Claw 실행이 시작되었습니다`,startRunFailed:`Libre Claw 실행을 시작할 수 없습니다`,runCancelled:`실행이 취소되었습니다`,cancelRunFailed:`실행을 취소할 수 없습니다`,approved:`승인됨`,denied:`거부됨`,resolvePermissionFailed:`권한을 확인할 수 없습니다.`,providerModelRequired:`제공업체 및 모델이 필요합니다.`,modelUpdated:`Libre Claw 모델이 업데이트되었습니다`,updateModelFailed:`모델을 업데이트할 수 없습니다.`,themeUpdated:`Libre Claw 테마가 업데이트되었습니다`,updateThemeFailed:`테마를 업데이트할 수 없습니다.`,automationRequired:`자동화 이름, 일정, 프롬프트가 필요합니다.`,automationCreated:`자동화가 생성되었습니다.`,createAutomationFailed:`자동화를 생성할 수 없습니다.`,automationUpdated:`자동화 업데이트됨`,updateAutomationFailed:`자동화를 업데이트할 수 없습니다.`}},work:{title:`작업`,subtitle:`격리된 모델 워크스페이스`,tasks:{title:`작업 태스크`,subtitle:`영구 로컬 워크스페이스`,new:`새 태스크`,emptyTitle:`아직 작업 태스크가 없습니다`,empty:`첫 메시지를 보내면 작업 태스크가 여기에 표시됩니다.`,untitled:`제목 없는 태스크`,actions:`태스크 작업`,delete:`태스크 삭제`,deleteNamed:`{{title}} 삭제`,deleteConfirm:`“{{title}}” 및 해당 워크스페이스를 영구적으로 삭제할까요?`,close:`작업 태스크 닫기`,open:`작업 태스크 열기`,rename:`태스크 제목`,loading:`태스크 불러오는 중…`,notFound:`이 작업 태스크를 사용할 수 없습니다`,back:`새 태스크 시작`,status:`상태: {{status}}`},landing:{title:`새 작업 태스크 시작`,description:`로컬 모델 또는 설정된 제공자 모델에 영구적이고 격리된 워크스페이스를 제공합니다. 모델은 파일을 확인하고 도구를 실행하며, 나중에 돌아와 이어서 작업할 수 있습니다.`,isolated:`격리`,isolatedBody:`각 태스크에는 전용 컨테이너와 파일이 있습니다.`,durable:`영구`,durableBody:`나중에 대화와 워크스페이스로 돌아올 수 있습니다.`,controlled:`제어`,controlledBody:`런타임과 태스크 파일은 호스트에서 격리됩니다.`},composer:{placeholder:`만들거나 변경할 내용을 설명하세요…`,model:`작업 모델`,noModels:`작업 호환 모델이 없습니다`,cancel:`중지`,send:`실행`,hint:`각 태스크는 자체 파일과 기록을 보관합니다. 사용하기 전에 모델 출력을 검토하세요.`,remoteTitle:`원격 제공자`,remoteHint:`대화와 도구 출력이 설정된 서비스로 전송됩니다. 한 번의 자율 실행에서 제공자를 여러 번 호출해 비용이 발생할 수 있습니다. 도구가 파일 내용을 반환하지 않는 한 워크스페이스 파일은 로컬에 유지됩니다.`,remoteDismiss:`닫기`,remoteDismissLabel:`원격 제공자 안내 닫기`,remoteDismissFailed:`원격 제공자 설정을 저장할 수 없습니다.`,noModelSelected:`선택된 작업 호환 모델이 없습니다.`},conversation:{ready:`워크스페이스 준비 완료`,empty:`아래에서 태스크를 계속하세요. 이 대화와 파일은 해당 워크스페이스에 계속 연결됩니다.`,loadOlder:`이전 메시지 불러오기`},status:{preparing:`격리된 워크스페이스 준비 중…`,running:`로컬 워크스페이스에서 작업 중…`},statusLabels:{idle:`대기`,thinking:`생각 중`,complete:`완료`,needsInput:`입력 필요`,error:`오류`},live:{connecting:`실시간 업데이트에 연결하는 중…`,reconnecting:`실시간 업데이트에 다시 연결하는 중…`,unavailable:`실시간 업데이트를 사용할 수 없습니다`,newActivity:`새 활동`,skillsLoaded:`워크스페이스 기술 · {{count}}`},runtime:{unavailable:`런타임을 사용할 수 없습니다`,ready:`런타임 준비 완료`,readyOllama:`Docker 준비 완료`,readyPlugin:`Docker + 플러그인 준비 완료`,readyHybrid:`Docker + 모델 준비 완료`,reason:`Docker와 사용 가능한 Ollama 또는 플러그인 모델 제공자가 필요합니다.`},workspace:{label:`워크스페이스 보기`,files:`파일`,activity:`활동`,preview:`미리보기`,resize:`대화 및 워크스페이스 크기 조절`,resizeHint:`드래그하여 크기를 조절하세요. 세밀하게 조절하려면 화살표 키를 사용하세요. 재설정하려면 두 번 클릭하거나 Enter를 누르세요.`,splitSize:`대화 {{conversation}}%, 워크스페이스 {{workspace}}%`,terminal:`터미널`,git:`Git`},files:{discard:`저장하지 않은 파일 변경 사항을 버릴까요?`,leaveWithDraft:`이 파일을 닫을까요? 저장하지 않은 편집 내용은 브라우저 초안으로 유지됩니다.`,up:`상위 폴더`,back:`파일로 돌아가기`,empty:`이 폴더에는 아직 파일이 없습니다.`,select:`확인하고 편집할 파일을 선택하세요.`,editorLabel:`파일 편집기: {{path}}`,format:`서식 정리`,formatted:`코드 서식을 정리했습니다.`,formatFailed:`이 파일의 서식을 정리할 수 없습니다.`,formatShortcut:`서식 정리(Shift+Alt+F)`,formatTooLarge:`서식 정리는 100,000자 및 4,000줄 미만의 파일로 제한됩니다.`,formatUnsupported:`이 파일 형식은 서식 정리를 지원하지 않습니다.`,saveShortcut:`저장(⌘/Ctrl+S)`,highlightPaused:`편집 반응성을 유지하기 위해 큰 파일의 실시간 강조 표시를 일시 중지했습니다.`,plainTextLarge:`일반 텍스트 · 큰 파일`,changes:`변경 사항`,changesSince:`마지막 턴 이후 변경된 내용`,diffLabel:`마지막 턴 이후 변경 사항: {{path}}`,diffFolded:`변경되지 않은 줄 {{count}}개`},activity:{empty:`명령, 파일 작업 및 도구 결과가 여기에 표시됩니다.`,toolActivity:`도구 활동`,details:`세부 정보`,kinds:{message:`메시지`,toolCall:`도구 호출`,toolResult:`도구 결과`,error:`오류`}},preview:{command:`선택적 시작 명령`,start:`미리보기 시작`,stop:`미리보기 중지`,open:`열기`,starting:`미리보기 시작 중…`,frameTitle:`워크스페이스 미리보기`,failed:`미리보기를 시작할 수 없습니다. 활동을 확인한 다음 다른 명령을 시도하세요.`,empty:`이 워크스페이스에서 앱을 시작하면 여기에서 확인할 수 있습니다.`},mobile:{surface:`태스크 화면`,conversation:`대화`,workspace:`워크스페이스`},toasts:{runFailed:`작업 태스크를 시작할 수 없습니다.`,updateFailed:`이 태스크를 업데이트할 수 없습니다.`,renameFailed:`이 태스크의 이름을 변경할 수 없습니다.`,cancelled:`작업 실행을 중지했습니다.`,cancelFailed:`작업 실행을 중지할 수 없습니다.`,deleteFailed:`이 작업 태스크를 삭제할 수 없습니다.`,saveFailed:`이 파일을 저장할 수 없습니다.`,saved:`파일을 저장했습니다.`,previewFailed:`미리보기를 시작할 수 없습니다.`,previewStopFailed:`미리보기를 중지할 수 없습니다.`},terminal:{connecting:`샌드박스에서 셸을 여는 중…`,closed:`터미널 세션이 종료되었습니다.`,failed:`터미널 세션을 시작할 수 없습니다.`,reconnect:`다시 연결`,unavailable:`이 배포에서는 대화형 터미널을 사용할 수 없습니다.`,blockedByRun:`모델이 이 컨테이너를 사용 중입니다. 턴이 끝나면 터미널이 열립니다.`,taskRunning:`모델 턴 진행 중`},policy:{label:`런타임 정책`,default:`기본값(전역 제한)`},git:{actionFailed:`Git 작업이 실패했습니다.`,blockedByPreview:`Git 상태를 변경하기 전에 미리보기를 중지하세요.`,blockedByRun:`Git 쓰기 작업은 모델 턴이 끝나면 잠금 해제됩니다.`,branchCreated:`{{name}} 생성됨.`,branchSwitched:`{{name}}(으)로 전환했습니다.`,clean:`작업 트리가 깨끗합니다.`,commit:`스테이징된 변경 사항 커밋`,commitMessage:`커밋 메시지`,committed:`커밋이 생성되었습니다.`,detached:`분리된 HEAD`,diff:`디프 미리보기`,diffFailed:`이 디프를 불러올 수 없습니다.`,history:`로컬 기록`,initialize:`Git 초기화`,initializeDescription:`상태, 디프, 브랜치, 커밋을 위한 로컬 저장소를 만듭니다. 원격 자격 증명은 연결되지 않습니다.`,initialized:`Git 저장소가 초기화되었습니다.`,loadFailed:`Git 상태를 불러올 수 없습니다.`,localOnly:`로컬 Git 전용. push, pull, 풀 리퀘스트에는 별도의 신뢰할 수 있는 자격 증명 브로커가 필요합니다.`,newBranch:`새 로컬 브랜치`,noCommits:`아직 커밋이 없습니다.`,noDiff:`아직 텍스트 디프가 없습니다. 추적되지 않은 파일은 스테이징 후 표시됩니다.`,notInitialized:`Git이 초기화되지 않았습니다`,selectChange:`디프를 확인할 변경된 파일을 선택하세요.`,selectPath:`{{path}} 선택`,stageAll:`모두 스테이징`,stageSelected:`{{count}}개 스테이징`,staged:`변경 사항이 스테이징되었습니다.`,switchBranch:`로컬 브랜치 전환`,changes:`변경 사항`,createBranch:`만들기`,filterFiles:`변경된 파일 필터링`,noFilterMatches:`이 필터와 일치하는 변경된 파일이 없습니다.`,allChanges:`모든 변경 사항`,diffTruncated:`이 diff는 잘렸습니다.`,binaryFile:`바이너리 파일이므로 텍스트 diff가 없습니다.`},hostWorkspace:{hint:`격리된 작업 공간을 쓰려면 비워 두고, 아니면 이 컴퓨터의 폴더를 지정하세요.`,label:`작업 공간 폴더(선택)`,warning:`작업이 이 폴더를 직접 읽고 쓸 수 있습니다. 격리된 작업 공간을 쓰려면 비워 두세요.`}},personaBackground:{label:`배경 이미지`,uploadBackgroundImage:`배경 이미지 업로드`,dragAndDrop:`이미지를 끌어다 놓거나 클릭하여 찾아보기`,chooseImage:`이미지 선택`,uploading:`업로드 중...`,enterImageUrl:`또는 이미지 URL 입력`,supportedFormats:`지원 형식: JPG, PNG, GIF, WebP (최대 5MB). 넓은 가로 이미지가 가장 잘 작동합니다.`,customBackground:`사용자 정의 배경 이미지`,clickToChange:`클릭하여 변경 또는 제거`,removed:`배경 제거됨`,uploaded:`배경이 성공적으로 업로드되었습니다`,invalidFile:`유효한 이미지 파일을 선택하세요`,fileTooLarge:`배경 이미지 크기는 5MB 미만이어야 합니다`,readFailed:`이미지 파일을 읽지 못했습니다`,uploadFailed:`배경 이미지를 업로드하지 못했습니다`},modelSelector:{searchInstalled:`설치된 모델 검색...`,searchOllama:`Ollama 라이브러리 검색...`,searchHuggingFace:`HuggingFace 검색...`,selectModel:`모델 선택`,personas:`페르소나`,ollamaModels:`Ollama 모델`,pluginModels:`플러그인 모델`,actions:`작업`,installed:`설치됨`,use:`사용`,pull:`다운로드`,pullRestricted:`이 인스턴스에서 모델 설치는 관리자만 가능합니다.`,adminOnlyPull:`관리자만`,legacyProvider:`프로바이더 미기록`,providerNotRecorded:`프로바이더 미기록`,providerUnavailable:`프로바이더 사용 불가`,reselectProvider:`이 모델을 고정하려면 프로바이더를 다시 선택하세요`,unavailable:`사용 불가`,unavailableSelections:`사용할 수 없는 선택`,agentModels:`에이전트`},whatsNew:{title:`새로운 기능`,releaseNotes:`릴리스 노트`,cta:`좋아요, 시작하죠`,starAsk:`Libre WebUI가 마음에 드시나요? GitHub에 스타를 남겨주세요`},notes:{title:`노트`,new:`새 노트`,untitled:`제목 없음`,empty:`아직 노트가 없습니다`,selectOrCreate:`노트를 선택하거나 새로 만드세요`,contentPlaceholder:`Markdown으로 작성…`,saved:`저장됨`,saveFailed:`노트를 저장하지 못했습니다`,createFailed:`노트를 만들지 못했습니다`,deleteConfirm:`이 노트를 삭제할까요?`,deleteFailed:`노트를 삭제하지 못했습니다`,tools:`노트 도구`,revisions:`기록`,attachments:`첨부 파일`,share:`공유`,assist:`AI 편집`,noRevisions:`이전 버전이 아직 없습니다`,restore:`복원`,revisionRestored:`버전을 복원했습니다`,revisionRestoreFailed:`이 버전을 복원할 수 없습니다`,addAttachment:`첨부 파일 추가`,noAttachments:`첨부 파일이 아직 없습니다`,attachmentAdded:`첨부 파일을 추가했습니다`,attachmentFailed:`첨부 파일을 추가할 수 없습니다`,attachmentDownloadFailed:`첨부 파일을 다운로드할 수 없습니다`,shareUsernamePlaceholder:`사용자 이름`,permissionRead:`보기 가능`,permissionWrite:`편집 가능`,shareAction:`공유`,notShared:`아직 아무와도 공유하지 않았습니다`,revokeShare:`접근 권한 회수`,shareHint:`공유된 노트는 상대방의 노트 목록에 표시됩니다. 접근 권한은 언제든지 회수할 수 있습니다.`,shareUserNotFound:`해당 이름의 사용자가 없습니다`,shareAdded:`{{username}}님과 공유했습니다`,shareFailed:`노트를 공유할 수 없습니다`,assistPlaceholder:`변경 사항을 설명하세요. 예: 요약을 간결하게, 문법 교정`,assistGenerate:`편집 제안`,assistNoModel:`먼저 채팅에서 모델을 선택하세요`,assistNoChanges:`모델이 변경을 제안하지 않았습니다`,assistApply:`적용`,assistDiscard:`취소`,assistApplied:`편집을 적용했습니다`,assistRevisionHint:`적용하면 이전 버전이 기록에 남으므로 모든 AI 편집을 되돌릴 수 있습니다.`,assistFailed:`편집을 생성할 수 없습니다`,pin:`노트 고정`,unpin:`노트 고정 해제`,pinned:`고정됨`,export:`Markdown으로 다운로드`,sharedWithYou:`나와 공유됨`},calendar:{title:`캘린더`,today:`오늘`,month:`월`,week:`주`,previous:`이전`,next:`다음`,newEvent:`새 일정`,editEvent:`일정 편집`,eventTitle:`제목`,titlePlaceholder:`일정 제목`,date:`날짜`,start:`시작`,end:`종료`,allDay:`종일`,repeat:`반복`,repeatNone:`반복 안 함`,repeatDaily:`매일`,repeatWeekly:`매주`,repeatMonthly:`매월`,repeatYearly:`매년`,notes:`메모`,more:`+{{n}}개 더`,loadFailed:`캘린더를 불러오지 못했습니다`,saveFailed:`일정을 저장하지 못했습니다`,deleteFailed:`일정을 삭제하지 못했습니다`,day:`일`,calendarLabel:`캘린더`,personalCalendar:`개인`,reminderLabel:`미리 알림`,reminderNone:`알림 없음`,reminderMinutes:`{{minutes}}분 전`,reminderHour:`1시간 전`,reminderDay:`1일 전`,sharedReadOnly:`이 일정은 보기 전용으로 공유되었습니다.`,sharedBadge:`공유됨`,shareCalendar:`캘린더 공유`,newCalendarPlaceholder:`새 캘린더…`,calendarSaveFailed:`캘린더를 저장하지 못했습니다`,exportFailed:`캘린더를 내보내지 못했습니다`,importFailed:`파일을 가져오지 못했습니다`,importResult:`{{total}}개의 일정을 가져왔습니다`,importIcs:`가져오기`,exportIcs:`내보내기`},automations:{title:`자동화`,tab:{automations:`자동화`,runs:`실행 기록`},newAutomation:`새 자동화`,editAutomation:`자동화 편집`,empty:`아직 자동화가 없습니다. 일정에 따라 작업을 실행하려면 하나 만들어 보세요.`,loadFailed:`자동화를 불러오지 못했습니다`,saveFailed:`자동화를 저장하지 못했습니다`,actionFailed:`작업이 실패했습니다`,runQueued:`실행이 시작되었습니다`,status:{active:`활성`,paused:`일시중지`},nextRun:`다음 실행 {{when}}`,actions:`작업`,pause:`일시중지`,resume:`재개`,runNow:`지금 실행`,openChat:`채팅 열기`,noRuns:`아직 실행 기록이 없습니다`,deletedAutomation:`삭제된 자동화`,runHistory:`실행 기록 (최근 30일)`,succeeded:`성공`,failed:`실패`,form:{name:`이름`,namePlaceholder:`내 자동화`,triggers:`트리거`,addTrigger:`트리거 추가`,instructions:`지침`,instructionsPlaceholder:`이 일정에 무엇을 실행할까요?`,model:`모델`,modelAuto:`자동`,notification:`알림`,notifyApp:`앱`,notifyOff:`끄기`,frequency:`빈도`,time:`시간`,minute:`분`,fromHour:`시작`,toHour:`종료`,weekday:`요일`,dayOfMonth:`일`,month:`월`},kind:{once:`한 번`,hourly:`매시간`,daily:`매일`,weekly:`매주`,monthly:`매월`,yearly:`매년`},trigger:{once:`{{when}}에 한 번`,hourly:`매시 {{minute}}분`,daily:`매일 {{time}}`,weekly:`매주 {{day}} {{time}}`,monthly:`매월 {{day}}일 {{time}}`,yearly:`매년 {{date}} {{time}}`},finishedNotification:`자동화 실행 {{n}}건이 완료되었습니다`,templatesTitle:`템플릿`,templates:{morningBrief:{name:`아침 브리핑`,description:`헤드라인과 우선순위로 하루를 시작하세요.`},newsDigest:{name:`AI 뉴스 다이제스트`,description:`중요한 모델 출시, 연구, 투자 소식.`},weeklyReview:{name:`주간 리뷰`,description:`한 주 마무리: 성과, 남은 일, 다음 우선순위.`},monthlyReport:{name:`월간 보고서`,description:`매월 1일 상태 보고서 개요.`}}},home:{active:`활성`,continue:`계속`,start:`시작`,explore:`둘러보기`},palette:{empty:`일치 항목 없음.`,placeholder:`채팅, Work, 작업 검색…`,toggleTheme:`테마 전환`,actions:`작업`,chats:`채팅`,search:`검색`,settings:`설정`,work:`작업`,messages:`메시지`,notes:`노트`,documents:`문서`},tabs:{actions:`탭 작업`,close:`탭 닫기`,closeAll:`모든 탭 닫기`,closeOthers:`다른 탭 닫기`,closeRight:`오른쪽 탭 닫기`,home:`홈`,label:`열린 탭`,new:`새 탭`,newWork:`새 Work`,chat:`채팅`,newChat:`새 채팅`,work:`작업`},tools:{arguments:`인수`,result:`결과`,callStatus:{awaiting_approval:`승인 대기 중`,running:`실행 중`,succeeded:`완료`,failed:`실패`,denied:`거부됨`,cancelled:`취소됨`},approval:{title:`도구 승인이 필요합니다`,description:`모델이 {{server}}에서 {{tool}}을(를) 실행하려고 합니다. 이 호출은 이 대화 밖의 데이터를 바꿀 수 있습니다.`,builtinSource:`이 서버`,allowOnce:`한 번만 허용`,allowSession:`이 대화에서 허용`,allowAlways:`항상 허용`,deny:`거부`}},promptsPage:{title:`프롬프트`,description:`타입이 지정된 변수를 갖춘 재사용 프롬프트 템플릿입니다. 입력창에 / 를 입력하면 삽입됩니다.`,newPrompt:`새 프롬프트`,editPrompt:`프롬프트 편집`,empty:`아직 프롬프트가 없습니다`,emptyHint:`프롬프트는 저장해 둔 메시지 템플릿입니다. 하나 만들어 두면 입력창에 /slug 를 입력했을 때 삽입되고, 선언한 변수를 물어봅니다.`,loadFailed:`프롬프트를 불러오지 못했습니다.`,saved:`프롬프트를 저장했습니다`,saveFailed:`프롬프트를 저장하지 못했습니다.`,deleted:`프롬프트를 삭제했습니다`,deleteFailed:`프롬프트를 삭제하지 못했습니다.`,deleteTitle:`프롬프트 삭제`,deleteConfirm:`"{{title}}"을(를) 삭제할까요? 버전 기록도 함께 사라집니다.`,exportFailed:`프롬프트를 내보내지 못했습니다.`,imported:`프롬프트를 가져왔습니다`,importFailed:`그 파일을 가져오지 못했습니다.`,historyFailed:`버전 기록을 불러오지 못했습니다.`,rolledBack:`프롬프트를 되돌렸습니다`,rollbackFailed:`프롬프트를 되돌리지 못했습니다.`,versionLabel:`v{{version}}`,updated:`{{when}}에 업데이트됨`,form:{slug:`슬러그`,slugPlaceholder:`weekly-report`,slugHint:`입력창에서 /slug 형태로 사용합니다.`,slugInvalid:`소문자, 숫자, 하이픈만 사용할 수 있습니다.`,title:`제목`,titlePlaceholder:`주간 보고서`,description:`설명`,descriptionPlaceholder:`이 프롬프트의 용도`,content:`내용`,contentPlaceholder:`프롬프트를 작성하세요. 나중에 채울 부분은 이중 중괄호로 감싸면 됩니다.`,contentHint:`자리 표시자는 이중 중괄호 안에 적은 이름입니다. 아래에서 선언하면 라벨이나 기본값을 줄 수 있습니다.`,tags:`태그`,tagsPlaceholder:`리서치, 글쓰기`,variables:`변수`,variablesHint:`선택 사항입니다. 여기서 자리 표시자를 선언하면 라벨, 기본값, 선택지를 줄 수 있습니다.`,variableName:`이름`,variableType:`유형`,variableLabel:`라벨`,variableDefault:`기본값`,variableRequired:`필수`,variableOptions:`선택지`,variableOptionsPlaceholder:`쉼표로 구분한 선택지`,addVariable:`변수 추가`,removeVariable:`변수 삭제`},variableTypes:{text:`텍스트`,number:`숫자`,select:`선택`,boolean:`예 또는 아니요`},history:{open:`버전 기록`,title:`{{title}} 기록`,subtitle:`되돌리면 고른 리비전이 새 버전으로 저장됩니다. 덮어쓰는 것은 없습니다.`,empty:`아직 이전 버전이 없습니다.`,current:`현재`,rollback:`되돌리기`,rollingBack:`되돌리는 중...`},templatesTitle:`템플릿으로 시작하기`,templates:{reviewPr:{name:`풀 리퀘스트 리뷰`,description:`엄격도를 조절할 수 있는 구조적 코드 리뷰.`},summarize:{name:`대상 독자에 맞춘 요약`,description:`독자에 맞춰 정리한 요점 요약.`},translate:{name:`번역`,description:`어조와 서식을 유지하는 번역.`},explainCode:{name:`코드 설명`,description:`단계별 설명과 함께 예외 상황과 위험 요소까지.`}}},skillsPage:{title:`스킬`,description:`모델이 작업 중 필요할 때 불러올 수 있는, 이름 붙은 지침 모음입니다.`,newSkill:`새 스킬`,editSkill:`스킬 편집`,empty:`아직 스킬이 없습니다`,emptyHint:`스킬은 모델이 필요할 때만 불러오는 지침 모음입니다. 메시지에서 $slug 로 언급하거나, load_skill 도구를 통해 모델이 직접 가져가게 하세요.`,loadFailed:`스킬을 불러오지 못했습니다.`,saved:`스킬을 저장했습니다`,saveFailed:`스킬을 저장하지 못했습니다.`,toggleFailed:`스킬을 변경하지 못했습니다.`,deleted:`스킬을 삭제했습니다`,deleteFailed:`스킬을 삭제하지 못했습니다.`,deleteTitle:`스킬 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제할까요? 버전 기록도 함께 사라집니다.`,exportFailed:`스킬을 내보내지 못했습니다.`,imported:`스킬을 가져왔습니다`,importFailed:`그 파일을 가져오지 못했습니다.`,historyFailed:`버전 기록을 불러오지 못했습니다.`,rolledBack:`스킬을 되돌렸습니다`,rollbackFailed:`스킬을 되돌리지 못했습니다.`,versionLabel:`v{{version}}`,updated:`{{when}}에 업데이트됨`,form:{slug:`슬러그`,slugPlaceholder:`code-review`,slugHint:`스킬을 언급할 때 $slug 형태로 사용합니다.`,slugInvalid:`소문자, 숫자, 하이픈만 사용할 수 있습니다.`,name:`이름`,namePlaceholder:`코드 리뷰`,description:`설명`,descriptionPlaceholder:`이 스킬을 언제 쓰는지`,descriptionHint:`모델이 보는 매니페스트입니다. 스킬을 불러오지 않고도 언제 쓸지 판단할 수 있게 써 주세요.`,instructions:`지침`,instructionsPlaceholder:`이 스킬을 불러온 모델이 읽을 Markdown 지침입니다.`,instructionsHint:`스킬을 쓸 때만 불러오므로, 그전까지는 길이가 비용이 되지 않습니다.`,enabled:`활성화됨`,enabledHint:`비활성화된 스킬은 저장은 유지되지만 모델에 제공되지 않습니다.`},history:{open:`버전 기록`,title:`{{name}} 기록`},templatesTitle:`템플릿으로 시작하기`,templates:{citeSources:{name:`출처 표기`,description:`URL이 포함된 번호 매긴 참고 문헌, 출처 없는 주장은 금지.`},releaseNotes:{name:`릴리스 노트 스타일`,description:`내부 ID 없이 사용자 관점으로 묶은 항목.`},meetingNotes:{name:`회의록 형식`,description:`대화 기록에서 결정 사항, 실행 항목, 남은 질문을 정리.`}},importUrl:{button:`URL에서`,title:`URL에서 스킬 가져오기`,hint:`skills.sh 또는 GitHub 링크, owner/repo/skill, 또는 SKILL.md 파일 직접 링크를 붙여넣으세요.`,placeholder:`https://skills.sh/owner/repo/skill 또는 owner/repo/skill`,overwrite:`슬러그가 이미 있으면 내 스킬 덮어쓰기`},files:{title:`번들 파일`,hint:`모델이 read_skill_file로 필요할 때 읽는 참조 문서와 스크립트입니다.`,add:`파일 추가`,empty:`아직 번들 파일이 없습니다.`,pathPlaceholder:`docs/reference.md`,contentPlaceholder:`파일 내용…`,loadFailed:`파일을 불러오지 못했습니다`,saveFailed:`파일을 저장하지 못했습니다`,deleteFailed:`파일을 삭제하지 못했습니다`},folderImport:{button:`폴더에서`,missingSkillMd:`폴더에 SKILL.md 파일이 필요합니다`,done:`번들 파일 {{count}}개와 함께 스킬을 가져왔습니다`}},toolsPage:{title:`도구`,description:`모델이 호출할 수 있는 도구 서버와, 여러분이 부여한 승인입니다.`,approvalNotice:`대화 밖의 데이터를 바꾸는 도구는 항상 승인을 요청합니다. 해당 도구에 항상 허용이나 대화별 승인을 부여한 경우는 예외입니다.`,registerServer:`서버 등록`,registerHint:`Libre WebUI는 서버를 한 번 읽어 노출된 도구를 고정합니다. 변경 사항을 반영하려면 나중에 서버를 새로 고치세요.`,editServer:`서버 편집`,empty:`도구 서버가 없습니다`,emptyHintAdmin:`OpenAPI 또는 MCP 서버를 등록해 모델이 호출할 대상을 마련하세요.`,emptyHintUser:`관리자가 아직 도구 서버를 공유하지 않았습니다.`,loadFailed:`도구 서버를 불러오지 못했습니다.`,saved:`도구 서버를 저장했습니다`,saveFailed:`도구 서버를 저장하지 못했습니다.`,deleted:`도구 서버를 삭제했습니다`,deleteFailed:`도구 서버를 삭제하지 못했습니다.`,deleteTitle:`도구 서버 삭제`,deleteConfirm:`"{{name}}"을(를) 삭제할까요? 모두가 그 도구에 접근할 수 없게 됩니다.`,refresh:`도구 새로 고침`,refreshed:`서버에서 도구를 다시 읽었습니다`,refreshFailed:`서버를 읽지 못했습니다.`,toolsLoadFailed:`고정된 도구를 불러오지 못했습니다.`,overrideFailed:`도구를 변경하지 못했습니다.`,pinnedTools:`고정된 도구`,noPinnedTools:`이 서버는 도구를 노출하지 않았습니다.`,sideEffect:`부수 효과`,sideEffectOverride:`부수 효과`,specRevision:`리비전 {{revision}}`,credential:`개인 자격 증명`,credentialHint:`암호화해 저장하며, 이 서버로 보내는 여러분 본인의 호출에만 사용합니다.`,credentialPlaceholder:`토큰을 붙여넣으세요`,credentialSet:`자격 증명 설정됨`,credentialMissing:`자격 증명 필요`,credentialSaved:`자격 증명을 저장했습니다`,credentialSaveFailed:`자격 증명을 저장하지 못했습니다.`,credentialRemove:`삭제`,credentialRemoved:`자격 증명을 삭제했습니다`,credentialRemoveFailed:`자격 증명을 삭제하지 못했습니다.`,builtinSource:`이 서버`,kinds:{openapi:`OpenAPI`,mcp:`MCP`},authModes:{none:`인증 없음`,bearer:`Bearer 토큰`,header:`사용자 지정 헤더`},accessModes:{"admins-only":`관리자만`,"all-users":`모두`,granted:`접근 권한을 받은 사람만`},form:{name:`이름`,namePlaceholder:`날씨 API`,kind:`종류`,description:`설명`,descriptionPlaceholder:`이 서버가 하는 일`,baseUrl:`기본 URL`,specUrl:`스펙 URL`,specUrlHint:`선택 사항입니다. 비워 두면 기본 URL을 사용합니다.`,authMode:`인증`,authHeader:`헤더 이름`,accessMode:`사용할 수 있는 사람`,timeoutMs:`제한 시간(ms)`,maxResponseBytes:`최대 응답(바이트)`,serverDefault:`서버 기본값`,enabled:`활성화됨`,enabledHint:`비활성화된 서버는 등록은 유지되지만 모델에 제공되지 않습니다.`},approvals:{title:`상시 승인`,description:`다시 묻지 않고 실행하도록 허용한 도구입니다. 취소하면 다음번에 다시 물어봅니다.`,empty:`상시 승인이 없습니다.`,revoke:`취소`,revoked:`승인을 취소했습니다`,revokeFailed:`승인을 취소하지 못했습니다.`,scope:{once:`한 번`,session:`이 대화`,always:`항상`}},templatesTitle:`템플릿으로 시작하기`,templates:{petstore:{name:`Petstore 데모`,description:`안전하게 처음 엔드투엔드로 시험해 볼 수 있는 공개 데모 API.`},internalOpenApi:{name:`내부 API`,description:`직접 만든 OpenAPI 서비스를 위한 출발점.`},mcpServer:{name:`MCP 서버`,description:`Streamable HTTP 기반 MCP 서버를 위한 출발점.`}}},composer:{promptMenu:{label:`프롬프트 라이브러리`,empty:`아직 프롬프트가 없습니다. 설정 → 프롬프트에서 만들거나 슬러그를 입력하세요.`},skillMenu:{label:`스킬`,empty:`아직 스킬이 없습니다. 설정 → 스킬에서 만드세요.`},variables:{title:`{{title}} 채우기`,insert:`삽입`,cancel:`취소`,required:`{{name}}은(는) 필수입니다`},toolsMenu:{enable:`이 메시지에 도구 사용`,builtin:`기본 제공 도구`,servers:`도구 서버`,hint:`부작용이 있는 호출은 실행 전에 여전히 승인을 요청합니다.`}},share:{title:`“{{name}}” 공유`,subtitle:`사용자나 그룹에게 접근 권한을 부여합니다. 공유 관리는 본인만 할 수 있습니다.`,kindUser:`사용자`,kindGroup:`그룹`,usernamePlaceholder:`정확한 사용자 이름`,groupPlaceholder:`정확한 그룹 이름`,permissionRead:`보기 가능`,permissionWrite:`편집 가능`,action:`공유`,empty:`아직 아무와도 공유하지 않았습니다.`,hint:`정확한 사용자 또는 그룹 이름을 입력하세요. 상대의 작업 공간에 표시되며, 취소하면 즉시 접근이 제거됩니다.`,revoke:`접근 취소`,added:`{{name}} 님과 공유했습니다`,failed:`공유하지 못했습니다`,userNotFound:`해당 이름의 사용자가 없습니다`,groupNotFound:`해당 이름의 그룹이 없습니다`},channels:{title:`채널`,browsePublic:`공개 채널 둘러보기`,newDm:`새 다이렉트 메시지`,newChannel:`새 채널`,empty:`아직 채널이 없습니다. 새로 만들거나 공개 채널을 둘러보세요.`,selectPrompt:`채널을 선택해 시작하세요`,pins:`고정됨`,members:`멤버`,settings:`채널 설정`,sendFailed:`메시지를 보내지 못했습니다`,uploadFailed:`파일을 업로드하지 못했습니다`,memberAdded:`멤버를 추가했습니다`,memberAddFailed:`해당 사용자를 추가하지 못했습니다`,attach:`파일 첨부`,askModel:`이 메시지로 모델에게 질문`,noModel:`모델 없음`,composerPlaceholder:`메시지를 입력하세요…`,thread:`스레드`,replyPlaceholder:`답글…`,invitePlaceholder:`초대할 사용자 이름`,roleOwner:`소유자`,removeMember:`채널에서 내보내기`,leave:`채널 나가기`,noPins:`아직 고정된 메시지가 없습니다.`,noMessages:`아직 메시지가 없습니다. 인사해 보세요.`,create:`만들기`,createFailed:`채널을 만들지 못했습니다`,nameLabel:`이름`,typeLabel:`유형`,typePublic:`공개 — 누구나 참여 가능`,typePrivate:`비공개 — 초대 전용`,descriptionLabel:`설명`,openDm:`대화 열기`,dmFailed:`대화를 열지 못했습니다`,dmHint:`다이렉트 메시지는 두 사람만 볼 수 있습니다.`,dmPlaceholder:`정확한 사용자 이름`,noPublic:`공개 채널이 없습니다.`,joined:`참여 중`,join:`참여`,save:`저장`,delete:`채널 삭제`,modelAuthor:`모델`,unknownAuthor:`누군가`,edited:`수정됨`,deletedMessage:`삭제된 메시지입니다`,modelThinking:`모델이 생각 중…`,react:`반응 추가`,reply:`스레드에 답글`,pin:`메시지 고정`,unpin:`고정 해제`,edit:`메시지 수정`,deleteMessage:`메시지 삭제`,replyCount:`답글 {{total}}개`},notifications:{title:`알림`,empty:`모두 확인했습니다.`,markAllRead:`모두 읽음으로 표시`,markRead:`읽음으로 표시`},voiceMode:{title:`음성 모드`,open:`음성 모드 시작`,close:`음성 모드 닫기`,starting:`시작 중…`,listening:`듣는 중…`,muted:`마이크 음소거됨`,transcribing:`텍스트 변환 중…`,generating:`생각 중…`,speaking:`말하는 중…`,mute:`마이크 음소거`,unmute:`음소거 해제`,finishTurn:`말하기 완료`,skipReply:`응답 건너뛰기`,microphoneFailed:`마이크를 사용할 수 없음`,transcriptionFailed:`텍스트 변환 실패`,replyTimeout:`응답이 너무 오래 걸렸습니다`,unsupported:`음성 모드를 사용할 수 없습니다`,unsupportedHint:`음성 모드에는 마이크와 음성-텍스트 제공업체 또는 브라우저 음성 인식이 필요합니다.`},imageEdit:{title:`이미지 편집`,prompt:`변경 내용을 설명하세요`,promptPlaceholder:`예: 하늘을 노을로 바꾸기`,model:`모델`,apply:`편집 적용`,maskHint:`다시 그릴 영역을 칠하세요. 캔버스를 그대로 두면 전체 이미지가 편집됩니다.`,brushSize:`브러시 크기`,clearMask:`마스크 지우기`,referenceImages:`참조 이미지 (최대 {{total}}장)`,noModels:`이미지 편집을 지원하는 구성된 모델이 없습니다.`,saved:`편집된 이미지가 갤러리에 저장되었습니다`,failed:`이미지 편집 실패`,loadFailed:`원본 이미지를 불러오지 못했습니다`},costs:{title:`비용 및 예산`,description:`타리프 가격을 사용 기록에 적용합니다. 예산은 지출을 관찰하거나 제한합니다.`,loadFailed:`비용 데이터를 불러오지 못했습니다`,saveFailed:`저장 실패`,exportFailed:`내보내기 실패`,exportCsv:`CSV 내보내기`,totalSpend:`총 지출`,meteredEvents:`가격 책정된 이벤트`,unmeteredEvents:`가격 미책정 이벤트`,topModel:`상위 모델`,budgets:`예산`,noBudgets:`아직 예산이 없습니다.`,budgetName:`예산 이름`,principalId:`사용자 또는 그룹 ID`,addBudget:`예산 추가`,deleteBudget:`예산 삭제`,budgetSaved:`예산 저장됨`,scope:{instance:`전체 인스턴스`,user:`사용자`,group:`그룹`},period:{daily:`매일`,weekly:`매주`,monthly:`매월`},mode:{observe:`관찰`,soft:`경고`,hard:`경고 및 차단`},tariffs:`타리프`,noTariffs:`아직 타리프가 없습니다. 가격을 추가할 때까지 비용은 미책정 상태입니다.`,plugin:`플러그인`,model:`모델`,modelOptional:`모델(선택)`,allModels:`모든 모델`,inputPerMillion:`입력 $/M 토큰`,outputPerMillion:`출력 $/M 토큰`,unitPrice:`단가`,effectiveFrom:`적용 시작일`,addTariff:`타리프 추가`,deleteTariff:`타리프 삭제`,tariffSaved:`타리프 저장됨`},evaluations:{title:`평가`,description:`블라인드 아레나 대결, Elo 리더보드, 재사용 가능한 평가 세트, 피드백 데이터셋.`,loadFailed:`평가를 불러오지 못했습니다`,matchFailed:`아레나 대결에 실패했습니다`,voteRecorded:`투표가 기록되었습니다`,voteFailed:`투표를 기록하지 못했습니다`,saveFailed:`저장 실패`,exportFailed:`내보내기 실패`,setSaved:`평가 세트 저장됨`,runStarted:`평가 실행 시작됨`,pickModel:`모델 선택`,tabs:{arena:`아레나`,leaderboard:`리더보드`,sets:`평가 세트`,feedback:`피드백`},arenaModelA:`모델 A`,arenaModelB:`모델 B`,arenaPrompt:`두 모델에 같은 질문을 하세요…`,startMatch:`대결 시작`,arenaHint:`투표할 때까지 모델 이름은 숨겨집니다.`,candidate:`응답 {{letter}}`,voteFirst:`첫 번째가 더 좋음`,voteSecond:`두 번째가 더 좋음`,voteTie:`무승부`,voteBothBad:`둘 다 나쁨`,model:`모델`,rating:`점수`,record:`전적`,votes:`투표 수`,noVotes:`아직 투표가 없습니다. 대결을 시작해 리더보드를 만들어 보세요.`,newSet:`새 평가 세트`,setName:`세트 이름`,setPrompts:`한 줄에 프롬프트 하나…`,saveSet:`세트 저장`,yourSets:`내 세트`,noSets:`아직 평가 세트가 없습니다.`,itemCount:`프롬프트 {{total}}개`,run:`실행`,deleteSet:`세트 삭제`,cancelRun:`실행 취소`,exportRun:`실행 내보내기`,status:{queued:`대기 중`,running:`실행 중`,completed:`완료`,failed:`실패`,cancelled:`취소됨`},noFeedback:`아직 피드백이 없습니다. 응답을 평가해 데이터셋을 만들어 보세요.`}};export{e as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,
|
|
1
|
+
import{_ as e,b as t,g as n,v as r,y as i}from"./router-vendor-CbexJIsv.js";import{O as a}from"../assets/index-BPsH9FII.js";var o,s,c,l,u,d,f,p,m=Object.create,h=Object.defineProperty,g=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,v=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty,b=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(e){throw t=0,e}},x=(e,t)=>{for(var n in t)h(e,n,{get:t[n],enumerable:!0})},S=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of _(t))!y.call(e,i)&&i!==n&&h(e,i,{get:()=>t[i],enumerable:!(r=g(t,i))||r.enumerable});return e},C=(e,t,n)=>(n=e==null?{}:m(v(e)),S(t||!e||!e.__esModule?h(n,`default`,{value:e,enumerable:!0}):n,e)),w=b((e,t)=>{t.exports=m;var n=9,r=10,i=32,a=33,o=58,s=91,c=92,l=93,u=94,d=96,f=4,p=1024;function m(e){var t=this.Parser,n=this.Compiler;h(t)&&_(t,e),g(n)&&v(n)}function h(e){return!!(e&&e.prototype&&e.prototype.blockTokenizers)}function g(e){return!!(e&&e.prototype&&e.prototype.visitors)}function _(e,t){for(var m=t||{},h=e.prototype,g=h.blockTokenizers,_=h.inlineTokenizers,v=h.blockMethods,x=h.inlineMethods,S=g.definition,C=_.reference,w=[],T=-1,E=v.length,D;++T<E;)D=v[T],D!==`newline`&&D!==`indentedCode`&&D!==`paragraph`&&D!==`footnoteDefinition`&&w.push([D]);w.push([`footnoteDefinition`]),m.inlineNotes&&(y(x,`reference`,`inlineNote`),_.inlineNote=A),y(v,`definition`,`footnoteDefinition`),y(x,`reference`,`footnoteCall`),g.definition=M,g.footnoteDefinition=O,_.footnoteCall=k,_.reference=j,h.interruptFootnoteDefinition=w,j.locator=C.locator,k.locator=N,A.locator=P;function O(e,t,a){for(var c=this,d=c.interruptFootnoteDefinition,m=c.offset,h=t.length+1,_=0,v=[],y,x,S,C,w,T,E,D,O,k,A,j,M;_<h&&(C=t.charCodeAt(_),C===n||C===i);)_++;if(t.charCodeAt(_++)===s&&t.charCodeAt(_++)===u){for(x=_;_<h;){if(C=t.charCodeAt(_),C!==C||C===r||C===n||C===i)return;if(C===l){S=_,_++;break}_++}if(S!==void 0&&x!==S&&t.charCodeAt(_++)===o){if(a)return!0;for(y=t.slice(x,S),w=e.now(),O=0,k=0,A=_,j=[];_<h;){if(C=t.charCodeAt(_),C!==C||C===r)M={start:O,contentStart:A||_,contentEnd:_,end:_},j.push(M),C===r&&(O=_+1,k=0,A=void 0,M.end=O);else if(k!==void 0)if(C===i||C===n)k+=C===i?1:f-k%f,k>f&&(k=void 0,A=_);else{if(k<f&&M&&(M.contentStart===M.contentEnd||b(d,g,c,[e,t.slice(_,p),!0])))break;k=void 0,A=_}_++}for(_=-1,h=j.length;h>0&&(M=j[h-1],M.contentStart===M.contentEnd);)h--;for(T=e(t.slice(0,M.contentEnd));++_<h;)M=j[_],m[w.line+_]=(m[w.line+_]||0)+(M.contentStart-M.start),v.push(t.slice(M.contentStart,M.end));return E=c.enterBlock(),D=c.tokenizeBlock(v.join(``),w),E(),T({type:`footnoteDefinition`,identifier:y.toLowerCase(),label:y,children:D})}}}function k(e,t,a){var o=t.length+1,c=0,d,f,p,m;if(t.charCodeAt(c++)===s&&t.charCodeAt(c++)===u){for(f=c;c<o;){if(m=t.charCodeAt(c),m!==m||m===r||m===n||m===i)return;if(m===l){p=c,c++;break}c++}if(p!==void 0&&f!==p)return a?!0:(d=t.slice(f,p),e(t.slice(0,c))({type:`footnoteReference`,identifier:d.toLowerCase(),label:d}))}}function A(e,t,n){var r=this,i=t.length+1,a=0,o=0,f,p,m,h,g,_,v;if(t.charCodeAt(a++)===u&&t.charCodeAt(a++)===s){for(m=a;a<i;){if(p=t.charCodeAt(a),p!==p)return;if(_===void 0)if(p===c)a+=2;else if(p===s)o++,a++;else if(p===l)if(o===0){h=a,a++;break}else o--,a++;else if(p===d){for(g=a,_=1;t.charCodeAt(g+_)===d;)_++;a+=_}else a++;else if(p===d){for(g=a,v=1;t.charCodeAt(g+v)===d;)v++;a+=v,_===v&&(_=void 0),v=void 0}else a++}if(h!==void 0)return n?!0:(f=e.now(),f.column+=2,f.offset+=2,e(t.slice(0,a))({type:`footnote`,children:r.tokenizeInline(t.slice(m,h),f)}))}}function j(e,t,n){var r=0;if(t.charCodeAt(r)===a&&r++,t.charCodeAt(r)===s&&t.charCodeAt(r+1)!==u)return C.call(this,e,t,n)}function M(e,t,r){for(var a=0,o=t.charCodeAt(a);o===i||o===n;)o=t.charCodeAt(++a);if(o===s&&t.charCodeAt(a+1)!==u)return S.call(this,e,t,r)}function N(e,t){return e.indexOf(`[`,t)}function P(e,t){return e.indexOf(`^[`,t)}}function v(e){var t=e.prototype.visitors,n=` `;t.footnote=r,t.footnoteReference=i,t.footnoteDefinition=a;function r(e){return`^[`+this.all(e).join(``)+`]`}function i(e){return`[^`+(e.label||e.identifier)+`]`}function a(e){for(var t=this.all(e).join(`
|
|
2
2
|
|
|
3
3
|
`).split(`
|
|
4
4
|
`),r=0,i=t.length,a;++r<i;)a=t[r],a!==``&&(t[r]=n+a);return`[^`+(e.label||e.identifier)+`]: `+t.join(`
|
|
@@ -42,7 +42,7 @@ Expected it to be 'string' or 'object'.`;if(Ks(e))throw Error(`doc is valid.`);l
|
|
|
42
42
|
Expected it to be ${r}.`}var Ys=class extends Error{constructor(e){((...e)=>(super(...e),n(this,`name`,`InvalidDocError`),this))(Js(e)),this.doc=e}},Xs={};function Zs(e,t,n,r){let i=[e];for(;i.length>0;){let e=i.pop();if(e===Xs){n(i.pop());continue}n&&i.push(e,Xs);let a=Ks(e);if(!a)throw new Ys(e);if(t?.(e)!==!1)switch(a){case ks:case Fs:{let t=a===ks?e:e.parts;for(let e=t.length-1;e>=0;--e)i.push(t[e]);break}case Is:i.push(e.flatContents,e.breakContents);break;case Ps:if(r&&e.expandedStates)for(let t=e.expandedStates.length,n=t-1;n>=0;--n)i.push(e.expandedStates[n]);else i.push(e.contents);break;case Ms:case js:case Ls:case Vs:case Rs:i.push(e.contents);break;case Os:case As:case Ns:case zs:case Bs:case Hs:break;default:throw new Ys(e)}}}var Qs=Zs;function $s(e,t){if(typeof e==`string`)return t(e);let n=new Map;return r(e);function r(e){return Ws(n,e,i)}function i(e){switch(Ks(e)){case ks:return t(e.map(r));case Fs:return t({...e,parts:e.parts.map(r)});case Is:return t({...e,breakContents:r(e.breakContents),flatContents:r(e.flatContents)});case Ps:{let{expandedStates:n,contents:i}=e;return n?(n=n.map(r),i=n[0]):i=r(i),t({...e,contents:i,expandedStates:n})}case Ms:case js:case Ls:case Vs:case Rs:return t({...e,contents:r(e.contents)});case Os:case As:case Ns:case zs:case Bs:case Hs:return t(e);default:throw new Ys(e)}}}function ec(e){if(e.length>0){let t=Ra(0,e,-1);!t.expandedStates&&!t.break&&(t.break=`propagated`)}return null}function tc(e){let t=new Set,n=[];function r(e){if(e.type===Hs&&ec(n),e.type===Ps){if(n.push(e),t.has(e))return!1;t.add(e)}}function i(e){e.type===Ps&&n.pop().break&&ec(n)}Qs(e,r,i,!0)}function nc(e,t=vc){return $s(e,e=>typeof e==`string`?mc(t,e.split(`
|
|
43
43
|
`)):e)}var rc=Ba,ic=Ba,ac=Ba,oc=Ba;function sc(e){return rc(e),{type:js,contents:e}}function cc(e,t){return oc(e),rc(t),{type:Ms,contents:t,n:e}}function lc(e){return cc({type:`root`},e)}var uc={type:Hs};function dc(e){return ac(e),{type:Fs,parts:e}}function fc(e,t={}){return rc(e),ic(t.expandedStates,!0),{type:Ps,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function pc(e,t=``,n={}){return rc(e),t!==``&&rc(t),{type:Is,breakContents:e,flatContents:t,groupId:n.groupId}}function mc(e,t){rc(e),ic(t);let n=[];for(let r=0;r<t.length;r++)r!==0&&n.push(e),n.push(t[r]);return n}var hc={type:Bs},gc={type:Bs,soft:!0},_c={type:Bs,hard:!0},$=[_c,uc],vc=[{type:Bs,hard:!0,literal:!0},uc],yc=`cr`,bc=`crlf`,xc=`\r`,Sc=`\r
|
|
44
44
|
`,Cc=`
|
|
45
|
-
`;function wc(e){return e===yc?xc:e===bc?Sc:Cc}var Tc=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,Ec=12288,Dc=65510,Oc=[12288,12288,65281,65376,65504,65510],kc=4352,Ac=262141,jc=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],Mc=(e,t)=>{let n=0,r=Math.floor(e.length/2)-1;for(;n<=r;){let i=Math.floor((n+r)/2),a=i*2;if(t<e[a])r=i-1;else if(t>e[a+1])n=i+1;else return!0}return!1},Nc=19968,[Pc,Fc]=Ic(jc);function Ic(e){let t=e[0],n=e[1];for(let r=0;r<e.length;r+=2){let i=e[r],a=e[r+1];if(Nc>=i&&Nc<=a)return[i,a];a-i>n-t&&(t=i,n=a)}return[t,n]}var Lc=e=>e<Ec||e>Dc?!1:Mc(Oc,e),Rc=e=>e>=Pc&&e<=Fc?!0:e<kc||e>Ac?!1:Mc(jc,e),zc=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])$/,Bc=e=>zc.test(e),Vc=/[^\x20-\x7F]/;function Hc(e){if(!e)return 0;if(!Vc.test(e))return e.length;let t=0;e=e.replace(Tc(),e=>(t+=Bc(e)?1:2,``));for(let n of e){let e=n.codePointAt(0);e<=31||e>=127&&e<=159||e>=768&&e<=879||e>=65024&&e<=65039||(t+=Lc(e)||Rc(e)?2:1)}return t}var Uc=Hc,Wc={type:0},Gc={type:1},Kc={value:``,length:0,queue:[],get root(){return Kc}};function qc(e,t,n){let r=t.type===1?e.queue.slice(0,-1):[...e.queue,t],i=``,a=0,o=0,s=0;for(let e of r)switch(e.type){case 0:u(),n.useTabs?c(1):l(n.tabWidth);break;case 3:{let{string:t}=e;u(),i+=t,a+=t.length;break}case 2:{let{width:t}=e;o+=1,s+=t;break}default:throw Error(`Unexpected indent comment '${e.type}'.`)}return f(),{...e,value:i,length:a,queue:r};function c(e){i+=` `.repeat(e),a+=n.tabWidth*e}function l(e){i+=` `.repeat(e),a+=e}function u(){n.useTabs?d():f()}function d(){o>0&&c(o),p()}function f(){s>0&&l(s),p()}function p(){o=0,s=0}}function Jc(e,t,n){if(!t)return e;if(t.type===`root`)return{...e,root:e};if(t===-1/0)return e.root;let r;return r=typeof t==`number`?t<0?Gc:{type:2,width:t}:{type:3,string:t},qc(e,r,n)}function Yc(e,t){return qc(e,Wc,t)}function Xc(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];if(r===` `||r===` `)t++;else break}return t}function Zc(e){let t=Xc(e);return{text:t===0?e:e.slice(0,e.length-t),count:t}}var Qc=(o=new WeakMap,s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakSet,class{constructor(){a(this,d),i(this,o,[]),i(this,s,``),i(this,c,0),i(this,l,[]),i(this,u,[])}markPosition(){if(t(l,this).length+t(u,this).length>=2)throw Error(`There are too many 'cursor' in doc.`);t(u,this).push(t(c,this)+t(s,this).length)}write(n){e(s,this,t(s,this)+n)}trim(){let{text:n,count:i}=Zc(t(s,this));return e(s,this,n),r(d,this,$c).call(this),i}finish(){return r(d,this,$c).call(this),{text:t(o,this).join(``),positions:t(l,this)}}});function $c(){let n=t(s,this);n!==``&&(t(o,this).push(n),e(c,this,t(c,this)+n.length),e(s,this,``));for(let e of t(u,this))t(l,this).push(Math.min(e,t(c,this)));t(u,this).length=0}var el=Symbol(`MODE_BREAK`),tl=Symbol(`MODE_FLAT`),nl=Symbol(`DOC_FILL_PRINTED_LENGTH`);function rl(e,t,n,r,i,a){if(n===1/0)return!0;let o=t.length,s=!1,c=[e],l=``;for(;n>=0;){if(c.length===0){if(o===0)return!0;c.push(t[--o]);continue}let{mode:e,doc:u}=c.pop(),d=Ks(u);switch(d){case Os:u&&(s&&(l+=` `,--n,s=!1),l+=u,n-=Uc(u));break;case ks:case Fs:{let t=d===ks?u:u.parts,n=u[nl]??0;for(let r=t.length-1;r>=n;r--)c.push({mode:e,doc:t[r]});break}case js:case Ms:case Ls:case Vs:c.push({mode:e,doc:u.contents});break;case Ns:{let{text:e,count:t}=Zc(l);l=e,n+=t;break}case Ps:{if(a&&u.break)return!1;let t=u.break?el:e,n=u.expandedStates&&t===el?Ra(0,u.expandedStates,-1):u.contents;c.push({mode:t,doc:n});break}case Is:{let t=(u.groupId?i[u.groupId]||tl:e)===el?u.breakContents:u.flatContents;t&&c.push({mode:e,doc:t});break}case Bs:if(e===el||u.hard)return!0;u.soft||(s=!0);break;case Rs:r=!0;break;case zs:if(r)return!1}}return!1}function il(e,t){let n=Object.create(null),r=t.printWidth,i=wc(t.endOfLine),a=0,o=[{indent:Kc,mode:el,doc:e}],s=!1,c=[],l=new Qc;for(tc(e);o.length>0;){let{indent:e,mode:u,doc:d}=o.pop();switch(Ks(d)){case Os:{let e=i===`
|
|
45
|
+
`;function wc(e){return e===yc?xc:e===bc?Sc:Cc}var Tc=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,Ec=12288,Dc=65510,Oc=[12288,12288,65281,65376,65504,65510],kc=4352,Ac=262141,jc=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],Mc=(e,t)=>{let n=0,r=Math.floor(e.length/2)-1;for(;n<=r;){let i=Math.floor((n+r)/2),a=i*2;if(t<e[a])r=i-1;else if(t>e[a+1])n=i+1;else return!0}return!1},Nc=19968,[Pc,Fc]=Ic(jc);function Ic(e){let t=e[0],n=e[1];for(let r=0;r<e.length;r+=2){let i=e[r],a=e[r+1];if(Nc>=i&&Nc<=a)return[i,a];a-i>n-t&&(t=i,n=a)}return[t,n]}var Lc=e=>e<Ec||e>Dc?!1:Mc(Oc,e),Rc=e=>e>=Pc&&e<=Fc?!0:e<kc||e>Ac?!1:Mc(jc,e),zc=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])$/,Bc=e=>zc.test(e),Vc=/[^\x20-\x7F]/;function Hc(e){if(!e)return 0;if(!Vc.test(e))return e.length;let t=0;e=e.replace(Tc(),e=>(t+=Bc(e)?1:2,``));for(let n of e){let e=n.codePointAt(0);e<=31||e>=127&&e<=159||e>=768&&e<=879||e>=65024&&e<=65039||(t+=Lc(e)||Rc(e)?2:1)}return t}var Uc=Hc,Wc={type:0},Gc={type:1},Kc={value:``,length:0,queue:[],get root(){return Kc}};function qc(e,t,n){let r=t.type===1?e.queue.slice(0,-1):[...e.queue,t],i=``,a=0,o=0,s=0;for(let e of r)switch(e.type){case 0:u(),n.useTabs?c(1):l(n.tabWidth);break;case 3:{let{string:t}=e;u(),i+=t,a+=t.length;break}case 2:{let{width:t}=e;o+=1,s+=t;break}default:throw Error(`Unexpected indent comment '${e.type}'.`)}return f(),{...e,value:i,length:a,queue:r};function c(e){i+=` `.repeat(e),a+=n.tabWidth*e}function l(e){i+=` `.repeat(e),a+=e}function u(){n.useTabs?d():f()}function d(){o>0&&c(o),p()}function f(){s>0&&l(s),p()}function p(){o=0,s=0}}function Jc(e,t,n){if(!t)return e;if(t.type===`root`)return{...e,root:e};if(t===-1/0)return e.root;let r;return r=typeof t==`number`?t<0?Gc:{type:2,width:t}:{type:3,string:t},qc(e,r,n)}function Yc(e,t){return qc(e,Wc,t)}function Xc(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];if(r===` `||r===` `)t++;else break}return t}function Zc(e){let t=Xc(e);return{text:t===0?e:e.slice(0,e.length-t),count:t}}var Qc=(o=new WeakMap,s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakSet,class{constructor(){a(this,d),t(this,o,[]),t(this,s,``),t(this,c,0),t(this,l,[]),t(this,u,[])}markPosition(){if(e(l,this).length+e(u,this).length>=2)throw Error(`There are too many 'cursor' in doc.`);e(u,this).push(e(c,this)+e(s,this).length)}write(t){r(s,this,e(s,this)+t)}trim(){let{text:t,count:n}=Zc(e(s,this));return r(s,this,t),i(d,this,$c).call(this),n}finish(){return i(d,this,$c).call(this),{text:e(o,this).join(``),positions:e(l,this)}}});function $c(){let t=e(s,this);t!==``&&(e(o,this).push(t),r(c,this,e(c,this)+t.length),r(s,this,``));for(let t of e(u,this))e(l,this).push(Math.min(t,e(c,this)));e(u,this).length=0}var el=Symbol(`MODE_BREAK`),tl=Symbol(`MODE_FLAT`),nl=Symbol(`DOC_FILL_PRINTED_LENGTH`);function rl(e,t,n,r,i,a){if(n===1/0)return!0;let o=t.length,s=!1,c=[e],l=``;for(;n>=0;){if(c.length===0){if(o===0)return!0;c.push(t[--o]);continue}let{mode:e,doc:u}=c.pop(),d=Ks(u);switch(d){case Os:u&&(s&&(l+=` `,--n,s=!1),l+=u,n-=Uc(u));break;case ks:case Fs:{let t=d===ks?u:u.parts,n=u[nl]??0;for(let r=t.length-1;r>=n;r--)c.push({mode:e,doc:t[r]});break}case js:case Ms:case Ls:case Vs:c.push({mode:e,doc:u.contents});break;case Ns:{let{text:e,count:t}=Zc(l);l=e,n+=t;break}case Ps:{if(a&&u.break)return!1;let t=u.break?el:e,n=u.expandedStates&&t===el?Ra(0,u.expandedStates,-1):u.contents;c.push({mode:t,doc:n});break}case Is:{let t=(u.groupId?i[u.groupId]||tl:e)===el?u.breakContents:u.flatContents;t&&c.push({mode:e,doc:t});break}case Bs:if(e===el||u.hard)return!0;u.soft||(s=!0);break;case Rs:r=!0;break;case zs:if(r)return!1}}return!1}function il(e,t){let n=Object.create(null),r=t.printWidth,i=wc(t.endOfLine),a=0,o=[{indent:Kc,mode:el,doc:e}],s=!1,c=[],l=new Qc;for(tc(e);o.length>0;){let{indent:e,mode:u,doc:d}=o.pop();switch(Ks(d)){case Os:{let e=i===`
|
|
46
46
|
`?d:Z(0,d,`
|
|
47
47
|
`,i);e&&(l.write(e),o.length>0&&(a+=Uc(e)));break}case ks:for(let t=d.length-1;t>=0;t--)o.push({indent:e,mode:u,doc:d[t]});break;case As:l.markPosition();break;case js:o.push({indent:Yc(e,t),mode:u,doc:d.contents});break;case Ms:o.push({indent:Jc(e,d.n,t),mode:u,doc:d.contents});break;case Ns:a-=l.trim();break;case Ps:{let t=(function(){if(u===tl&&!s)return{indent:e,mode:d.break?el:tl,doc:d.contents};s=!1;let t=r-a,i=c.length>0,l={indent:e,mode:tl,doc:d.contents};if(!d.break&&rl(l,o,t,i,n))return l;if(!d.expandedStates)return{indent:e,mode:el,doc:d.contents};if(!d.break)for(let r=1;r<d.expandedStates.length-1;r++){let a={indent:e,mode:tl,doc:d.expandedStates[r]};if(rl(a,o,t,i,n))return a}return{indent:e,mode:el,doc:Ra(0,d.expandedStates,-1)}})();o.push(t),d.id&&(n[d.id]=t.mode);break}case Fs:{let t=r-a,i=d[nl]??0,{parts:s}=d,l=s.length-i;if(l===0)break;let f=s[i+0],p=s[i+1],m={indent:e,mode:tl,doc:f},h={indent:e,mode:el,doc:f},g=rl(m,[],t,c.length>0,n,!0);if(l===1){g?o.push(m):o.push(h);break}let _={indent:e,mode:tl,doc:p},v={indent:e,mode:el,doc:p};if(l===2){g?o.push(_,m):o.push(v,h);break}let y=s[i+2],b={indent:e,mode:u,doc:{...d,[nl]:i+2}},x=rl({indent:e,mode:tl,doc:[f,p,y]},[],t,c.length>0,n,!0);o.push(b),x?o.push(_,m):g?o.push(v,m):o.push(v,h);break}case Is:case Ls:{let t=d.groupId?n[d.groupId]:u;if(t===el){let t=d.type===Is?d.breakContents:d.negate?d.contents:sc(d.contents);t&&o.push({indent:e,mode:u,doc:t})}if(t===tl){let t=d.type===Is?d.flatContents:d.negate?sc(d.contents):d.contents;t&&o.push({indent:e,mode:u,doc:t})}break}case Rs:c.push({indent:e,mode:u,doc:d.contents});break;case zs:c.length>0&&o.push({indent:e,mode:u,doc:_c});break;case Bs:switch(u){case tl:if(!d.hard){d.soft||(l.write(` `),a+=1);break}s=!0;case el:if(c.length>0){o.push({indent:e,mode:u,doc:d},...c.reverse()),c.length=0;break}d.literal?(l.write(i),a=0,e.root&&(e.root.value&&l.write(e.root.value),a=e.root.length)):(l.trim(),l.write(i+e.value),a=e.length)}break;case Vs:o.push({indent:e,mode:u,doc:d.contents});break;case Hs:break;default:throw new Ys(d)}o.length===0&&c.length>0&&(o.push(...c.reverse()),c.length=0)}let{text:u,positions:d}=l.finish();if(d.length!==2)return{formatted:u};let[f,p]=d;return{formatted:u,cursorNodeStart:f,cursorNodeText:u.slice(f,p)}}var al=Array.prototype.toReversed??function(){return[...this].reverse()},ol=Ia(`toReversed`,function(){if(Array.isArray(this))return al});function sl(){let e=globalThis,t=e.process?.platform;if(typeof t==`string`)return t.startsWith(`win`);let n=e.Deno?.build?.os;return typeof n==`string`?n===`windows`:e.navigator?.platform?.startsWith(`Win`)??!1}var cl=sl();function ll(e){if(e=e instanceof URL?e:new URL(e),e.protocol!==`file:`)throw TypeError(`URL must be a file URL: received "${e.protocol}"`);return e}function ul(e){return e=ll(e),decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g,`%25`))}function dl(e){e=ll(e);let t=decodeURIComponent(e.pathname.replace(/\//g,`\\`).replace(/%(?![0-9A-Fa-f]{2})/g,`%25`)).replace(/^\\*([A-Za-z]:)(\\|$)/,`$1\\`);return e.hostname!==``&&(t=`\\\\${e.hostname}${t}`),t}function fl(e){return cl?dl(e):ul(e)}var pl=e=>String(e).split(/[/\\]/).pop(),ml=e=>String(e).startsWith(`file:`);function hl(e,t){if(!t)return;let n=pl(t).toLowerCase();return e.find(({filenames:e})=>e?.some(e=>e.toLowerCase()===n))??e.find(({extensions:e})=>e?.some(e=>n.endsWith(e)))}function gl(e,t){if(t)return e.find(({name:e})=>e.toLowerCase()===t)??e.find(({aliases:e})=>e?.includes(t))??e.find(({extensions:e})=>e?.includes(`.${t}`))}var _l=void 0;function vl(e,t){if(t){if(ml(t))try{t=fl(t)}catch{return}if(typeof t==`string`)return e.find(({isSupported:e})=>e?.({filepath:t}))}}function yl(e,t){let n=ol(0,e.plugins).flatMap(e=>e.languages??[]);return(gl(n,t.language)??hl(n,t.physicalFile)??hl(n,t.file)??vl(n,t.physicalFile)??vl(n,t.file)??_l?.(n,t.physicalFile))?.parsers[0]}var bl=yl;function xl(e){return!!e?.[Ua]}var Sl=xl,Cl=function(){let e=this.Parser.prototype;e.blockMethods=[`frontMatter`,...e.blockMethods],e.blockTokenizers.frontMatter=t;function t(e,t){let{frontMatter:n}=qa(t);if(n)return e(n.raw)({...n,type:`frontMatter`})}t.onlyAtStart=!0},wl=/(?:[\u{2c7}\u{2c9}-\u{2cb}\u{2d9}\u{2ea}-\u{2eb}\u{305}\u{323}\u{1100}-\u{11ff}\u{2e80}-\u{2e99}\u{2e9b}-\u{2ef3}\u{2f00}-\u{2fd5}\u{2ff0}-\u{303f}\u{3041}-\u{3096}\u{3099}-\u{30ff}\u{3105}-\u{312f}\u{3131}-\u{318e}\u{3190}-\u{4dbf}\u{4e00}-\u{9fff}\u{a700}-\u{a707}\u{a960}-\u{a97c}\u{ac00}-\u{d7a3}\u{d7b0}-\u{d7c6}\u{d7cb}-\u{d7fb}\u{f900}-\u{fa6d}\u{fa70}-\u{fad9}\u{fe10}-\u{fe1f}\u{fe30}-\u{fe6f}\u{ff00}-\u{ffef}\u{16fe3}\u{16ff2}-\u{16ff6}\u{1aff0}-\u{1aff3}\u{1aff5}-\u{1affb}\u{1affd}-\u{1affe}\u{1b000}-\u{1b122}\u{1b132}\u{1b150}-\u{1b152}\u{1b155}\u{1b164}-\u{1b167}\u{1f200}\u{1f250}-\u{1f251}\u{20000}-\u{2a6df}\u{2a700}-\u{2b81d}\u{2b820}-\u{2cead}\u{2ceb0}-\u{2ebe0}\u{2ebf0}-\u{2ee5d}\u{2f800}-\u{2fa1d}\u{30000}-\u{3134a}\u{31350}-\u{33479}])(?:[\u{fe00}-\u{fe0f}\u{e0100}-\u{e01ef}])?/u,Tl=/(?:[\u{21}-\u{2f}\u{3a}-\u{40}\u{5b}-\u{60}\u{7b}-\u{7e}\u{3000}\u{ff5e}]|\p{General_Category=Connector_Punctuation}|\p{General_Category=Dash_Punctuation}|\p{General_Category=Close_Punctuation}|\p{General_Category=Final_Punctuation}|\p{General_Category=Initial_Punctuation}|\p{General_Category=Other_Punctuation}|\p{General_Category=Open_Punctuation})/u,El=new Set([`liquidNode`,`inlineCode`,`emphasis`,`esComment`,`strong`,`delete`,`wikiLink`,`link`,`linkReference`,`image`,`imageReference`,`footnote`,`footnoteReference`,`sentence`,`whitespace`,`word`,`break`,`inlineMath`]),Dl=new Set([...El,`tableCell`,`paragraph`,`heading`]),Ol=`non-cjk`,kl=`cj-letter`,Al=`k-letter`,jl=`cjk-punctuation`,Ml=/\p{Script_Extensions=Hangul}/u;function Nl(e){let t=[],n=e.split(/([\t\n ]+)/);for(let[e,i]of n.entries()){if(e%2==1){t.push({type:`whitespace`,value:/\n/.test(i)?`
|
|
48
48
|
`:` `});continue}if((e===0||e===n.length-1)&&i===``)continue;let a=i.split(RegExp(`(${wl.source})`,`u`));for(let[e,t]of a.entries())if(e!==0&&e!==a.length-1||t!==``){if(e%2==0){t!==``&&r({type:`word`,value:t,kind:Ol,isCJ:!1,hasLeadingPunctuation:Tl.test(t[0]),hasTrailingPunctuation:Tl.test(Ra(0,t,-1))});continue}if(Tl.test(t)){r({type:`word`,value:t,kind:jl,isCJ:!0,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0});continue}if(Ml.test(t)){r({type:`word`,value:t,kind:Al,isCJ:!1,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1});continue}r({type:`word`,value:t,kind:kl,isCJ:!0,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return t;function r(e){let n=Ra(0,t,-1);n?.type===`word`&&!r(Ol,jl)&&[n.value,e.value].every(e=>!/\u3000/.test(e))&&t.push({type:`whitespace`,value:``}),t.push(e);function r(t,r){return n.kind===t&&e.kind===r||n.kind===r&&e.kind===t}}}function Pl(e,t){let n=t.originalText.slice(e.position.start.offset,e.position.end.offset);if(t.parser!==`mdx`){let r=e.children[0];r&&(n=t.originalText.slice(e.position.start.offset,r.position.start.offset))}let{numberText:r,leadingSpaces:i}=n.match(/^\s*(?<numberText>\d+)(\.|\))(?<leadingSpaces>\s*)/).groups;return{number:Number(r),leadingSpaces:i}}function Fl(e,t){return!e.ordered||e.children.length<2||Pl(e.children[1],t).number!==1?!1:Pl(e.children[0],t).number!==0||e.children.length>2&&Pl(e.children[2],t).number===1}function Il(e,t){let{value:n}=e;return e.position.end.offset===t.length&&n.endsWith(`
|
|
@@ -60,7 +60,7 @@ ${e}`};function tu(e){return{astFormat:`mdast`,hasPragma:Ql,hasIgnorePragma:$l,l
|
|
|
60
60
|
`,a-1)+1,s=r.slice(o,a),c=Math.max(s.indexOf(`=`),s.indexOf(`-`)),l=s.slice(c);return[Cu(e,t,n),$,l]}function Mu(e,t,n){return t.parser!==`mdx`&&Hl(e.node)?ju(e,t,n):Au(e,t,n)}var Nu=999999999;function Pu(e,t,n){let{node:r}=e,i=Bl(r,e.parent),a=Fl(r,t),o=Iu(e);return Cu(e,t,n,{processor(){let s=l(),{node:c}=e;if(c.children.length===2&&c.children[1].type===`html`&&c.children[0].position.start.column!==c.children[1].position.start.column)return[s,Fu(e,t,n,s)];return[s,cc(` `.repeat(s.length),Fu(e,t,n,s))];function l(){let n=r.ordered?(e.isFirst?r.start:a?1:Math.min(r.start+e.index,Nu))+(i%2==0?`. `:`) `):i%2==0?`- `:`* `,s=r.isAligned&&r.ordered?zu(n,t):n;if(s.length>=o)return s;s=s.trimEnd();let c=Math.min(o-s.length,4);c>0&&(s+=` `.repeat(c));let l=Math.min(o-s.length,3);return l>0&&(s=` `.repeat(l)+s),s}}})}function Fu(e,t,n,r){let{node:i}=e,a=i.checked===null?``:i.checked?`[x] `:`[ ] `;return[a,Cu(e,t,n,{processor({node:e,isFirst:i}){if(i&&e.type!==`list`||e.type===`code`&&e.isIndented)return cc(` `.repeat(a.length),n());let o=` `.repeat(Bu(t.tabWidth-r.length,0,3));return[o,cc(o,n())]}})]}function Iu(e){let{node:t,next:n}=e;return t.checked===null||!(n?.type===`code`&&n.isIndented)?0:4+[.../^[ \t]*/.exec(n.value)?.[0]??``].reduce((e,t)=>e+(t===` `?4:1),0)+1}function Lu(e,t,n){let{node:r}=e,i=Bl(r,e.parent),a=Fl(r,t);return Cu(e,t,n,{processor(){let o=c(),{node:s}=e;if(s.children.length===2&&s.children[1].type===`html`&&s.children[0].position.start.column!==s.children[1].position.start.column)return[o,Ru(e,t,n,o)];return[o,cc(` `.repeat(o.length),Ru(e,t,n,o))];function c(){let n=r.ordered?(e.isFirst?r.start:a?1:r.start+e.index)+(i%2==0?`. `:`) `):i%2==0?`- `:`* `;return(r.isAligned||r.hasIndentedCodeblock)&&r.ordered?zu(n,t):n}}})}function Ru(e,t,n,r){let{node:i}=e,a=i.checked===null?``:i.checked?`[x] `:`[ ] `;return[a,Cu(e,t,n,{processor({node:e,isFirst:i}){if(i&&e.type!==`list`)return cc(` `.repeat(a.length),n());let o=` `.repeat(Bu(t.tabWidth-r.length,0,3));return[o,cc(o,n())]}})]}function zu(e,t){let n=r();return e+` `.repeat(n>=4?0:n);function r(){let n=e.length%t.tabWidth;return n===0?0:t.tabWidth-n}}function Bu(e,t,n){return Math.max(t,Math.min(e,n))}function Vu(e,t,n){return Hu(e.map(n,`children`))}function Hu(e){let t=[``];return(function e(n){for(let r of n){let n=Ks(r);if(n===ks){e(r);continue}let i=r,a=[];n===Fs&&([i,...a]=r.parts),t.push([t.pop(),i],...a)}})(e),dc(t)}function Uu(e,t){let n=[``];return e.each(()=>{let{node:r}=e,i=t();switch(r.type){case`whitespace`:if(Ks(i)!==Os){n.push(i,``);break}default:n.push([n.pop(),i])}},`children`),dc(n)}function Wu(e,t,n){let{node:r}=e,i=[],a=e.map(()=>e.map(({index:e})=>{let r=il(n(),t).formatted,a=Uc(r);return i[e]=Math.max(i[e]??3,a),{text:r,width:a}},`children`),`children`),o=s(!1);if(t.proseWrap!==`never`)return[uc,o];return[uc,fc(pc(s(!0),o))];function s(e){return mc(_c,[l(a[0],e),c(e),...a.slice(1).map(t=>l(t,e))].map(e=>`| ${e.join(` | `)} |`))}function c(e){return i.map((n,i)=>{if(t.parser!==`mdx`&&i>=a[0].length)return null;let o=r.align[i],s=o===`center`||o===`left`?`:`:`-`,c=o===`center`||o===`right`?`:`:`-`;return`${s}${e?`-`:`-`.repeat(n-2)}${c}`}).filter(e=>e!==null)}function l(e,t){return e.map(({text:e,width:n},a)=>{if(t)return e;let o=i[a]-n,s=r.align[a],c=0;s===`right`?c=o:s===`center`&&(c=Math.floor(o/2));let l=o-c;return`${` `.repeat(c)}${e}${` `.repeat(l)}`})}}var Gu=new Set([`tableCell`,`link`,`wikiLink`]),Ku=new Set(`!"#$%&'()*+,-./:;<=>?@[\\]^_\`{|}~`);function qu({parent:e}){if(e.usesCJSpaces===void 0){let t={" ":0,"":0},{children:n}=e;for(let e=1;e<n.length-1;++e){let r=n[e];if(r.type===`whitespace`&&(r.value===` `||r.value===``)){let i=n[e-1].kind,a=n[e+1].kind;(i===kl&&a===Ol||i===Ol&&a===kl)&&++t[r.value]}}e.usesCJSpaces=t[` `]>t[``]}return e.usesCJSpaces}function Ju(e,t){if(t)return!0;let{previous:n,next:r}=e;if(!n||!r)return!0;let i=n.kind,a=r.kind;return Yu(i)&&Yu(a)||i===Al&&a===kl||a===Al&&i===kl?!0:i===jl||a===jl||i===kl&&a===kl?!1:Ku.has(r.value[0])||Ku.has(Ra(0,n.value,-1))?!0:n.hasTrailingPunctuation||r.hasLeadingPunctuation?!1:qu(e)}function Yu(e){return e===Ol||e===Al}function Xu(e,t,n,r,i){if(n!==`always`||e.hasAncestor(e=>Gu.has(e.type)||e.type===`heading`&&(i.parser===`mdx`||!Hl(e))))return!1;if(r)return t!==``;let{previous:a,next:o}=e;return!a||!o?!0:t===``?!1:a.kind===Al&&o.kind===kl||o.kind===Al&&a.kind===kl||!(a.isCJ||o.isCJ)}function Zu(e,t,n,r,i){if(n===`preserve`&&t===`
|
|
61
61
|
`)return $;let a=t===` `||t===`
|
|
62
62
|
`&&Ju(e,r);return Xu(e,t,n,r,i)?a?hc:gc:a?` `:``}var Qu=/^(?:=+|-+)$/;function $u(e,t){let{node:n}=e,r=e.findAncestor(e=>e.type===`emphasis`||e.type===`strong`),i=n.value;return r?(e.isFirst&&(i.startsWith(`*`)||i.startsWith(`_`))&&e.callParent(()=>e.isFirst)&&e.grandparent===r&&(i=`\\${i}`),i=Z(0,i,/(\\+|^|.)(\*+|_+)($|.)/g,(t,n,r,i)=>[...n].every(e=>e===`\\`)&&n.length%2==1?t:ed(Ra(0,n,-1)||Ra(1,e.previous?.value,-1),r,i[0]||e.next?.value[0])?`${n}\\${r}${i}`:t),i):t.proseWrap===`preserve`&&e.parent.type===`sentence`&&Qu.test(i)&&Ul(e.previous)&&(e.isLast||Ul(e.next))?`\\${i}`:i}function ed(e,t,n){if(!e||!n)return null;let r=/[\p{Space_Separator}\t\n\f\r]/u.test(n),i=/[\p{Space_Separator}\t\n\f\r]/u.test(e),a=Tl.test(n),o=Tl.test(e),s=!r&&(!a||a&&(i||o)),c=!i&&(!o||o&&(r||a));return t[0]===`*`?s||c:s?!c||o:c?!s||a:!1}function td(e){let{node:t}=e,n=Z(0,Z(0,t.value,`*`,`\\*`),new RegExp([`(^|${Tl.source})(_+)`,`(_+)(${Tl.source}|$)`].join(`|`),`gu`),(e,t,n,r,i)=>Z(0,n?`${t}${n}`:`${r}${i}`,`_`,`\\_`)),r=(e,t,n)=>e.type===`sentence`&&n===0,i=(e,t,n)=>Rl(e.children[n-1]);return n!==t.value&&(e.match(void 0,r,i)||e.match(void 0,r,(e,t,n)=>e.type===`emphasis`&&n===0,i))&&(n=n.replace(/^(\\?[*_])+/,e=>Z(0,e,`\\`,``))),n}function nd(e){let{previous:t,next:n}=e;return t?.type===`sentence`&&Ra(0,t.children,-1)?.type===`word`&&!Ra(0,t.children,-1).hasTrailingPunctuation&&!/[\p{Space_Separator}\t\n\f\r]$/u.test(Ra(0,t.children,-1).value)||n?.type===`sentence`&&n.children[0]?.type===`word`&&!n.children[0].hasLeadingPunctuation&&!/^[\p{Space_Separator}\t\n\f\r]/u.test(n.children[0].value)}function rd(e){let{siblings:t,index:n}=e;if(!t||typeof n!=`number`)return!1;let r=t[n+2];return r?.type===`whitespace`&&r.value===``}function id(e){if(!Ul(e.node)||e.next?.value!==`-`)return!1;let t=e.siblings[e.index+2];return!t||Ul(t)}function ad(e,t,n){let{node:r}=e;if(cd(e)){let n=[``],i=Nl(t.originalText.slice(r.position.start.offset,r.position.end.offset));for(let r of i){if(r.type===`word`){n.push([n.pop(),r.value]);continue}let i=Zu(e,r.value,t.proseWrap,!0,t);if(Ks(i)===Os){n.push([n.pop(),i]);continue}n.push(i,``)}return dc(n)}switch(r.type){case`root`:return r.children.length===0?``:[od(e,t,n),$];case`paragraph`:return Vu(e,t,n);case`sentence`:return Uu(e,n);case`word`:return t.parser===`mdx`?td(e):$u(e,t);case`whitespace`:{let{next:n}=e,i=n&&/^>|^(?:[*+-]|#{1,6}|\d+[).])$/.test(n.value)&&!rd(e)&&!(t.proseWrap===`preserve`&&id(e))?`never`:t.proseWrap;return Zu(e,r.value,i,!1,t)}case`emphasis`:{let i;if(Rl(r.children[0]))i=t.originalText[r.position.start.offset];else{let t=nd(e),n=e.callParent(({node:t})=>t.type===`strong`&&nd(e));i=t||n||e.hasAncestor(e=>e.type===`emphasis`)?`*`:`_`}return[i,Cu(e,t,n),i]}case`strong`:return[`**`,Cu(e,t,n),`**`];case`delete`:return[`~~`,Cu(e,t,n),`~~`];case`inlineCode`:{let n=t.proseWrap===`preserve`?r.value:Z(0,r.value,`
|
|
63
|
-
`,` `);t.parser!==`mdx`&&e.hasAncestor(e=>e.type===`tableCell`)&&(n=Z(0,n,`|`,`\\|`));let i=gu(n,"`"),a="`".repeat(i),o=n.startsWith("`")||n.endsWith("`")||/^[\n ]/.test(n)&&/[\n ]$/.test(n)&&/[^\n ]/.test(n)?` `:``;return[a,o,n,o,a]}case`wikiLink`:{let e;return e=t.proseWrap===`preserve`?r.value:Z(0,r.value,/[\t\n]+/g,` `),[`[[`,e,`]]`]}case`link`:switch(t.originalText[r.position.start.offset]){case`<`:{let e=`mailto:`;return[`<`,r.url.startsWith(e)&&t.originalText.slice(r.position.start.offset+1,r.position.start.offset+1+7)!==e?r.url.slice(7):r.url,`>`]}case`[`:return[`[`,Cu(e,t,n),`](`,t.parser!==`mdx`&&r.url===``?`<>`:ud(r.url,`)`),dd(r.title,t),`)`];default:return t.originalText.slice(r.position.start.offset,r.position.end.offset)}case`image`:return[``),dd(r.title,t),`)`];case`blockquote`:return[`> `,cc(`> `,Cu(e,t,n))];case`heading`:return Mu(e,t,n);case`code`:{if(r.isIndented){let e=` `.repeat(4);return cc(e,[e,nc(r.value,$)])}let e=t.__inJsTemplate?`~`:"`",n=e.repeat(Math.max(3,ou(r.value,e)+1));return[n,r.lang||``,r.meta?` `+r.meta:``,$,nc(t.parser===`mdx`?Il(r,t.originalText):r.value,$),$,n]}case`html`:{let{parent:t,isLast:n}=e,i=t.type===`root`&&n?r.value.trimEnd():r.value;return nc(i,/^<!--.*-->$/s.test(i)?$:lc(vc))}case`list`:return t.parser===`mdx`?Lu(e,t,n):Pu(e,t,n);case`thematicBreak`:{let{ancestors:t}=e,n=t.findIndex(e=>e.type===`list`);return n===-1?`---`:Bl(t[n],t[n+1])%2==0?`***`:`---`}case`linkReference`:return[`[`,Cu(e,t,n),`]`,r.referenceType===`full`?fd(r):r.referenceType===`collapsed`?`[]`:``];case`imageReference`:{let e=md(r,t);return r.referenceType===`full`?[`![`,e,`]`,fd(r)]:[...t.parser===`mdx`?[`![`,e,`]`]:[`!`,fd(r)],r.referenceType===`collapsed`?`[]`:``]}case`definition`:{let e=t.proseWrap===`always`?hc:` `;return fc([fd(r),`:`,sc([e,t.parser!==`mdx`&&r.url===``?`<>`:ud(r.url),r.title===null?``:[e,dd(r.title,t,!1)]])])}case`footnote`:return[`[^`,Cu(e,t,n),`]`];case`footnoteReference`:return pd(r);case`footnoteDefinition`:{let i=r.children.length===1&&r.children[0].type===`paragraph`&&(t.proseWrap===`never`||t.proseWrap===`preserve`&&r.children[0].position.start.line===r.children[0].position.end.line);return[pd(r),`: `,i?Cu(e,t,n):fc([cc(` `.repeat(4),Cu(e,t,n,{processor:({isFirst:e})=>e?fc([gc,n()]):n()}))])]}case`table`:return Wu(e,t,n);case`tableCell`:return Cu(e,t,n);case`break`:return/\s/.test(t.originalText[r.position.start.offset])?[` `,lc(vc)]:[`\\`,$];case`liquidNode`:return nc(r.value,$);case`import`:case`export`:case`jsx`:return r.value.trimEnd();case`esComment`:return[`{/* `,r.value,` */}`];case`math`:return[`$$`,r.meta?` `+r.meta:``,$,r.value?[nc(r.value,$),$]:``,`$$`];case`inlineMath`:return t.originalText.slice(Tt(r),Et(r));case`text`:return nc(r.value,$);default:throw new Su(r,`Markdown`)}}function od(e,t,n){let r=[],i=null,{children:a}=e.node;for(let[e,t]of a.entries())switch(zl(t)){case`start`:i===null&&(i={index:e,offset:t.position.end.offset});break;case`end`:i!==null&&(r.push({start:i,end:{index:e,offset:t.position.start.offset}}),i=null);break;default:break}return Cu(e,t,n,{processor({index:e}){if(r.length>0){let n=r[0];if(e===n.start.index)return[sd(a[n.start.index]),t.originalText.slice(n.start.offset,n.end.offset),sd(a[n.end.index])];if(n.start.index<e&&e<n.end.index)return!1;if(e===n.end.index)return r.shift(),!1}return n()}})}function sd(e){if(e.type===`html`)return e.value;if(e.type===`paragraph`&&Array.isArray(e.children)&&e.children.length===1&&e.children[0].type===`esComment`)return[`{/* `,e.children[0].value,` */}`]}function cd(e){let t=e.findAncestor(e=>e.type===`linkReference`||e.type===`imageReference`);return t&&(t.type!==`linkReference`||t.referenceType!==`full`)}var ld=(e,t)=>{for(let n of t)e=Z(0,e,n,encodeURIComponent(n));return e};function ud(e,t=[]){let n=[` `,...Array.isArray(t)?t:[t]];return new RegExp(n.map(e=>Ya(e)).join(`|`)).test(e)?`<${ld(e,`<>`)}>`:e}function dd(e,t,n=!0){if(!e)return``;if(n)return` `+dd(e,t,!1);if(t.parser===`mdx`&&(e=Z(0,e,/\\(?=["')])/g,``)),e.includes(`"`)&&e.includes(`'`)&&!e.includes(`)`))return`(${e})`;let r=xu(e,t.singleQuote);return e=Z(0,e,`\\`,`\\\\`),e=Z(0,e,r,`\\${r}`),`${r}${e}${r}`}function fd(e,t){let n=(0,mu.default)(e.label);return t?.parser===`mdx`?`[${n}]`:`[${Z(0,n,/[\\[\]]/g,e=>`\\${e}`)}]`}function pd(e){return`[^${e.label}]`}function md(e,t){return t.parser!==`mdx`&&e.originalAltText?e.originalAltText:e.alt||``}var hd=(f=new WeakMap,p=new WeakSet,class{constructor(
|
|
63
|
+
`,` `);t.parser!==`mdx`&&e.hasAncestor(e=>e.type===`tableCell`)&&(n=Z(0,n,`|`,`\\|`));let i=gu(n,"`"),a="`".repeat(i),o=n.startsWith("`")||n.endsWith("`")||/^[\n ]/.test(n)&&/[\n ]$/.test(n)&&/[^\n ]/.test(n)?` `:``;return[a,o,n,o,a]}case`wikiLink`:{let e;return e=t.proseWrap===`preserve`?r.value:Z(0,r.value,/[\t\n]+/g,` `),[`[[`,e,`]]`]}case`link`:switch(t.originalText[r.position.start.offset]){case`<`:{let e=`mailto:`;return[`<`,r.url.startsWith(e)&&t.originalText.slice(r.position.start.offset+1,r.position.start.offset+1+7)!==e?r.url.slice(7):r.url,`>`]}case`[`:return[`[`,Cu(e,t,n),`](`,t.parser!==`mdx`&&r.url===``?`<>`:ud(r.url,`)`),dd(r.title,t),`)`];default:return t.originalText.slice(r.position.start.offset,r.position.end.offset)}case`image`:return[``),dd(r.title,t),`)`];case`blockquote`:return[`> `,cc(`> `,Cu(e,t,n))];case`heading`:return Mu(e,t,n);case`code`:{if(r.isIndented){let e=` `.repeat(4);return cc(e,[e,nc(r.value,$)])}let e=t.__inJsTemplate?`~`:"`",n=e.repeat(Math.max(3,ou(r.value,e)+1));return[n,r.lang||``,r.meta?` `+r.meta:``,$,nc(t.parser===`mdx`?Il(r,t.originalText):r.value,$),$,n]}case`html`:{let{parent:t,isLast:n}=e,i=t.type===`root`&&n?r.value.trimEnd():r.value;return nc(i,/^<!--.*-->$/s.test(i)?$:lc(vc))}case`list`:return t.parser===`mdx`?Lu(e,t,n):Pu(e,t,n);case`thematicBreak`:{let{ancestors:t}=e,n=t.findIndex(e=>e.type===`list`);return n===-1?`---`:Bl(t[n],t[n+1])%2==0?`***`:`---`}case`linkReference`:return[`[`,Cu(e,t,n),`]`,r.referenceType===`full`?fd(r):r.referenceType===`collapsed`?`[]`:``];case`imageReference`:{let e=md(r,t);return r.referenceType===`full`?[`![`,e,`]`,fd(r)]:[...t.parser===`mdx`?[`![`,e,`]`]:[`!`,fd(r)],r.referenceType===`collapsed`?`[]`:``]}case`definition`:{let e=t.proseWrap===`always`?hc:` `;return fc([fd(r),`:`,sc([e,t.parser!==`mdx`&&r.url===``?`<>`:ud(r.url),r.title===null?``:[e,dd(r.title,t,!1)]])])}case`footnote`:return[`[^`,Cu(e,t,n),`]`];case`footnoteReference`:return pd(r);case`footnoteDefinition`:{let i=r.children.length===1&&r.children[0].type===`paragraph`&&(t.proseWrap===`never`||t.proseWrap===`preserve`&&r.children[0].position.start.line===r.children[0].position.end.line);return[pd(r),`: `,i?Cu(e,t,n):fc([cc(` `.repeat(4),Cu(e,t,n,{processor:({isFirst:e})=>e?fc([gc,n()]):n()}))])]}case`table`:return Wu(e,t,n);case`tableCell`:return Cu(e,t,n);case`break`:return/\s/.test(t.originalText[r.position.start.offset])?[` `,lc(vc)]:[`\\`,$];case`liquidNode`:return nc(r.value,$);case`import`:case`export`:case`jsx`:return r.value.trimEnd();case`esComment`:return[`{/* `,r.value,` */}`];case`math`:return[`$$`,r.meta?` `+r.meta:``,$,r.value?[nc(r.value,$),$]:``,`$$`];case`inlineMath`:return t.originalText.slice(Tt(r),Et(r));case`text`:return nc(r.value,$);default:throw new Su(r,`Markdown`)}}function od(e,t,n){let r=[],i=null,{children:a}=e.node;for(let[e,t]of a.entries())switch(zl(t)){case`start`:i===null&&(i={index:e,offset:t.position.end.offset});break;case`end`:i!==null&&(r.push({start:i,end:{index:e,offset:t.position.start.offset}}),i=null);break;default:break}return Cu(e,t,n,{processor({index:e}){if(r.length>0){let n=r[0];if(e===n.start.index)return[sd(a[n.start.index]),t.originalText.slice(n.start.offset,n.end.offset),sd(a[n.end.index])];if(n.start.index<e&&e<n.end.index)return!1;if(e===n.end.index)return r.shift(),!1}return n()}})}function sd(e){if(e.type===`html`)return e.value;if(e.type===`paragraph`&&Array.isArray(e.children)&&e.children.length===1&&e.children[0].type===`esComment`)return[`{/* `,e.children[0].value,` */}`]}function cd(e){let t=e.findAncestor(e=>e.type===`linkReference`||e.type===`imageReference`);return t&&(t.type!==`linkReference`||t.referenceType!==`full`)}var ld=(e,t)=>{for(let n of t)e=Z(0,e,n,encodeURIComponent(n));return e};function ud(e,t=[]){let n=[` `,...Array.isArray(t)?t:[t]];return new RegExp(n.map(e=>Ya(e)).join(`|`)).test(e)?`<${ld(e,`<>`)}>`:e}function dd(e,t,n=!0){if(!e)return``;if(n)return` `+dd(e,t,!1);if(t.parser===`mdx`&&(e=Z(0,e,/\\(?=["')])/g,``)),e.includes(`"`)&&e.includes(`'`)&&!e.includes(`)`))return`(${e})`;let r=xu(e,t.singleQuote);return e=Z(0,e,`\\`,`\\\\`),e=Z(0,e,r,`\\${r}`),`${r}${e}${r}`}function fd(e,t){let n=(0,mu.default)(e.label);return t?.parser===`mdx`?`[${n}]`:`[${Z(0,n,/[\\[\]]/g,e=>`\\${e}`)}]`}function pd(e){return`[^${e.label}]`}function md(e,t){return t.parser!==`mdx`&&e.originalAltText?e.originalAltText:e.alt||``}var hd=(f=new WeakMap,p=new WeakSet,class{constructor(e){a(this,p),t(this,f,void 0),r(f,this,new Set(e))}getLeadingWhitespaceCount(t){let n=e(f,this),r=0;for(let e=0;e<t.length&&n.has(t.charAt(e));e++)r++;return r}getTrailingWhitespaceCount(t){let n=e(f,this),r=0;for(let e=t.length-1;e>=0&&n.has(t.charAt(e));e--)r++;return r}getLeadingWhitespace(e){let t=this.getLeadingWhitespaceCount(e);return e.slice(0,t)}getTrailingWhitespace(e){let t=this.getTrailingWhitespaceCount(e);return e.slice(e.length-t)}hasLeadingWhitespace(t){return e(f,this).has(t.charAt(0))}hasTrailingWhitespace(t){return e(f,this).has(Ra(0,t,-1))}trimStart(e){let t=this.getLeadingWhitespaceCount(e);return e.slice(t)}trimEnd(e){let t=this.getTrailingWhitespaceCount(e);return e.slice(0,e.length-t)}trim(e){return this.trimEnd(this.trimStart(e))}split(t,n=!1){let r=`[${Ya([...e(f,this)].join(``))}]+`,i=new RegExp(n?`(${r})`:r);return t.split(i)}hasWhitespaceCharacter(t){let n=e(f,this);return Array.prototype.some.call(t,e=>n.has(e))}hasNonWhitespaceCharacter(t){let n=e(f,this);return Array.prototype.some.call(t,e=>!n.has(e))}isWhitespaceOnly(t){let n=e(f,this);return Array.prototype.every.call(t,e=>n.has(e))}dedentString(e){let t=i(p,this,gd).call(this,e);return t===0?e:e.split(`
|
|
64
64
|
`).map(e=>e.slice(t)).join(`
|
|
65
65
|
`)}});function gd(e){let t=1/0;for(let n of e.split(`
|
|
66
66
|
`)){if(n.length===0)continue;let e=this.getLeadingWhitespaceCount(n);if(e===0)return 0;n.length!==e&&e<t&&(t=e)}return t===1/0?0:t}var _d=new hd([` `,`
|