AI 주별 요약

개요

이번 주 Meta Discourse의 AI 관련 토론은 AI 기능이 UX와 관리자 운영 모두에서 더 “네이티브”하고 신뢰할 수 있게 느껴지도록 하는 것에 중점을 두었습니다.

제품 측면에서, Discourse는 게시물의 원본(raw) 콘텐츠를 오염시키지 않으면서 접근성과 검색성을 향상시키는 백그라운드 AI 이미지 캡션을 출시했으며, 로컬라이즈된 캡션을 위한 AI Translate와의 시너지도 확인했습니다 (Making post images more accessible with Discourse AI, search indexing notes, translation workflow). 데이터 팀도 플러그인 UI에서 직접 AI가 생성한 Data Explorer SQL을 통해 큰 도움을 받았습니다 (Data Explorer :handshake: AI).

UX 측면에서는 **AI 봇 대화용 독킹된 컴포저(docked composer)**가 논쟁을 불러일으켰습니다—특히 Enter 키로 전송하는 동작에 대한 논쟁이었으며, 이는 커뮤니티 테마 컴포넌트 우회책과 관리자 토글을 위한 PR 제안으로 이어졌습니다 (Introducing a docked composer…, follow-up UX feedback, theme component fix, PR reference).

운영 측면에서는, 임베딩 차원 불일치로 인해 500 오류가 발생하는 AI 임베딩 시맨틱 검색에 대한 실질적인 문제 해결이 이루어졌으며, 올바른 차원 크기로 설정을 다시 생성하여 해결되었습니다 (AI Embeddings Semantic Search returns 500 error, dimension mismatch log, solution). 한편, AI Translate에는 개선 사항과 버그 수정이 적용되었습니다: 향상된 번역 진행률 그래프 경험과 삭제된 콘텐츠가 불필요하게 노출/번역되지 않도록 하는 버그 수정입니다 (AI Translation Progress Graph, Deleted posts still show full content…).


흥미로운 주제

  • 게시물 원본을 변경하지 않고 백그라운드 AI 이미지 캡션 (접근성 + 검색) (#Announcements ai ai-image-caption)
    nat은 캡션이 백그라운드에서 생성되어 별도로 저장되고, 게시물 본문에 삽입되는 대신 스크린 리더/검색/라이트박스에서 표시되도록 하는 리워크를 발표했습니다 (Making post images more accessible with Discourse AI). loginerror은 캡션이 크롤링 가능한지 물었고, nat은 캡션이 HTML의 aria-description으로 렌더링되어 Discourse 검색에 포함되지만 외부 크롤러의 가중치는 다르다고 설명했습니다 (crawler Q, aria-description answer). 해당 스레드에서는 번역 시너지도 강조되었는데, 캡션은 번역 컴포저 내에서 언어별로 로컬라이즈되고 편집될 수 있습니다 (AI Translate synergy).

  • Discourse AI로 Data Explorer SQL 생성 (프롬프트를 통한 반복적 쿼리 개선) (#Announcements data-explorer ai)
    Discourse는 관리자가 SQL을 수동으로 작성하거나 /new/edit에서 AI가 쿼리를 생성/수정하도록 하는 AI 헬퍼를 Data Explorer 내에 출시했습니다—이 설정은 디바이스에 저장됩니다 (Data Explorer :handshake: AI). 이번 릴리스는 더 스마트한 “SQL 헬퍼” 경험을 원하는 이전 커뮤니티 요청과도 연결되었습니다 (Empower the SQL helper).

  • 독킹된 AI 봇 컴포저의 마찰: Enter로 전송 vs 의도적인 작성 (#Announcements composer ai ai-bot)
    지속적인 피드백에서 tobiaseigen은 독킹된 컴포저를 “영구적인 변경”으로 묘사하며, 이는 실수로 제출하는 것을 부추긴다고 지적하고, 봇 상호작용을 위해 더 느리고 신중한 UI를 선호한다고 밝혔습니다 (feedback). 다른 사용자들도 Enter로 전송에 대한 불만을 공유했는데, 특히 다중 줄의 문제 해결 내용을 붙여넣을 때 그렇습니다 (more feedback, impact on longer replies). Shift+Enter와 같은 우회책이 언급되었지만, 사용성 논쟁은 계속되었습니다 (Shift+Enter suggestion, “no forgiveness” concern).

  • 커뮤니티 수정: AI 봇 메시지의 Enter 동작을 되돌리는 테마 컴포넌트 (PR 토론 포함) (#Theme component composer ai ai-bot)
    Enter로 전송에 따른 불편함을 해결하기 위해, Lilly은 AI 봇 메시지 제출(채팅이 아님)에서 “Enter = 줄바꿈”을 복원하고 전송하려면 클릭/탭을 요구하는 테마 컴포넌트를 게시했습니다 (Bot enter button fix for Discourse AI. 이후 독킹된 컴포저가 활성화되어 있거나 없거나 작동하도록 업데이트했습니다 (follow-up fix). 독킹된 컴포저 피드백 스레드에서 Lilly은 관리자 사이트 설정 토글을 추가하기 위한 제안된 PR도 링크했습니다 (theme component announcement in context, PR reference).

  • Enter로 전송은 사이트 전체 관리자 설정이어야 하는가, 사용자별 선호사항이어야 하는가? (#Announcements ai-bot composer)
    Lilly가 관리자 제어 토글을 선호하자 (admin toggle rationale), RGJ는 포럼 간 일관성 부족에 대한 우려를 제기하며 사용자 선호사항이 더 나을 수 있다고 주장했습니다 (preference vs site setting, cross-site inconsistency concern). Lilly은 “적절한” 접근 방식이 봇 메시지보다 더 많은 것을 영향을 미치는 더 넓은 사용자 선호사항일 수 있지만, 이는 훨씬 더 많은 작업이 필요하다고 언급했습니다 (broader preference idea).

  • 문제 해결: 임베딩 차원 불일치로 인한 AI 임베딩 시맨틱 검색 500 오류 (#Self-hosting search ai)
    akanora는 표준 검색은 작동하지만 시맨틱 검색이 500을 반환한다고 보고했습니다 (error report). Falco가 임베딩 모델이 구성되어야 한다고 확인한 후 (model setup check), 로그는 근본 원인을 드러냈습니다: Gemini 임베딩에 대해 기대값 768차원, 실제 3072차원 (log details). 임베딩 구성을 다시 생성하고 차원을 3072로 설정하여 해결되었습니다 (solution), nat은 “테스트 실행”이 자격 증명을 검증하지만 전체 시맨틱 검색 과정은 검증하지 않는다고 강조했습니다 (clarification).

  • 커스텀 사이드바 링크 및 섹션이 이제 번역 가능 (콘텐츠 로컬라이제이션 + dynaloc) (#Feature sidebar ai dynaloc content-localization)
    커스텀 사이드바 콘텐츠를 번역하라는 오랜 요청이 완료로 표시되었으며, nat은 병합된 PR을 가리키며 스크린샷을 공유했습니다 (completion update).

  • AI Translate 진행률 그래프 개선 (성능 + 명확성 + 콘텐츠 유형별 분류) (#Data & reporting translation ai)
    nat은 번역 진행률 그래프에 상당한 UI/UX 업데이트를 제공했는데, 캐시된 타이밍 표시기와 콘텐츠 유형(토픽/게시물 등)별 진행률 분류가 포함되었습니다 (translation graph update). LotusJeff는 업데이트가 “훨씬 더 유용하고 스스로 설명이 된다”고 확인하면서, “Eligible”에 대한 약간의 도움말 텍스트 불일치를 지적했습니다 (feedback).

  • 기능 요청: AI Translate “백필 이후” 설정을 위한 날짜 선택기 (토픽/게시물 불일치 방지) (#Feature ai dynaloc content-localization)
    번역 보고 개선에 기반하여, LotusJeff는 “과거 N일” 대신 날짜별 선택기를 요청하여 토픽/게시물 번역 윈도우가 정렬되도록 했습니다 (request context). nat은 동의하며, UI가 실행 중인 날짜를 표시했으므로 더 명확한 날짜 기반 설정이 필요하다고 언급했습니다 (Request for a date picker…, agreement).

  • 프로바이더 호환성: DeepSeek Open Platform “응답 없음”이 OpenAI API 지원 불완전으로 추적됨 (Support ai)
    중국어 지원 스레드에서, AkarinLiu는 DeepSeek 공식 Open Platform의 OpenAI 호환 API가 기능적으로 불완전하다고 결론 내리고, Xiaomi의 MIMO V.5로 전환하여 문제를 해결했습니다 (diagnosis, solution).


활동

읽어주셔서 감사하며, 다음 주에 다시 뵙겠습니다! :slight_smile:

개요

이번 주 Meta에서 AI 관련 논의는 주로 Discourse AI 출력을 더 신뢰할 수 있고, 제어 가능하며, 덜 예측 불가능하게 만드는 것에 집중되었습니다.

품질 측면에서, sam은 기존 AI 보고 파이프라인 위에 검증 워크플로를 추가하여 보고서 정확도를 높이는 방법에 대해 심층적인 검토를 시작했습니다 (검증을 통한 AI 보고 정확도 향상). 이는 Discourse AI 주기적 요약 보고서, Meta 자체의 일일 요약 피드백, 그리고 Discourse 워크플로의 새로운 자동화 프레임워크 등 이전 작업에 기반을 두고 있습니다.

제어 및 예측 가능성 측면에서는 번역 동작이 주요 주제였습니다: akanora는 터키어 번역이 이상하게 고전적인 문체로 변하고 있다는 보고를 했습니다 (터키어 번역이 현대적 터키어가 아닌 고전/오스만 제국 스타일 언어를 생성함), 그리고 Falco는 이를 지나치게 “변형적인” 번역 프롬프트에서 비롯된 것으로 파악한 후 수정을 배포했습니다 (Falco의 수정 세부 사항). 이 동일한 변경 사항은 번역이 저자의 톤을 "과도하게 개선"한다는 이전 우려(AI "영어 번역"의 언어 수준)와도 연결됩니다.

마지막으로, 운영/관리 관련 우려 사항도 제기되었습니다: AI를 완전히 비활성화하는 방법(AI 비활성화 방법), “잘못된 JSON” 구조화 출력 로그를 어떻게 해석해야 하는지(Discourse AI: 구조화 출력 응답이 올바른 JSON이 아님), 그리고 번역 도구의 더 나은 캐시/사용량 투명성 요청(캐시 삭제 허용). 한편, AI 봇 대화용 도킹된 컴포저 UX 개선(AI 봇 대화용 도킹된 컴포저 소개), 새로 병합된 AI Translate 설정 UX(AI Translate 설정에서 날짜 선택기 요청), 그리고 장기간 이어져 온 챗봇 플러그인 스레드(Discourse Chatbot :robot:)에서의 더 넓은 생태계 진전을 통해 지속적인 제품 정교화도 진행되었습니다.


흥미로운 주제

  • 워크플로를 통한 AI 보고서 검증 ("원샷 요약"을 넘어)
    sam은 Discourse AI 보고가 역사적으로 단순한 파이프라인(컨텍스트 → LLM → 게시물)이었음을 설명하고, 더 높은 정확도를 위해 검증 단계를 추가하기 위해 #workflows를 사용하자고 제안했습니다 (검증을 통한 AI 보고 정확도 향상). 이 논의는 기존 보고 기능(Discourse AI 주기적 요약 보고서)과 보고서 비판 스레드를 통한 공개 반복 루프(일일 요약 피드백)와 명시적으로 연결됩니다.

  • AI 봇 동작을 관리하는 확장 가능한 방법으로서의 “에이전트 스킬”
    sam은 부피가 큰 시스템 프롬프트를 피하고 점진적 정보 공개를 가능하게 하기 위해 재사용 가능한 "스킬"을 주제(topic)로 구조화하는 것을 제안했습니다 (Discourse AI 에이전트에 스킬 부여). mcwumbly는 하나의 큰 프롬프트를 여러 스킬 주제로 나누는 실전 경험을 공유하고, 수동으로 나열하는 대신 자동 스킬 발견에 대해 질문했습니다 (스킬 후속 질문). 이 접근 방식은 ai 커스텀 툴링 패턴(AI 봇 커스텀 툴)에 의존합니다.

  • 터키어 번역이 고전/오스만 제국 시대의 언어로 변형되는 문제 (및 프롬프트 수정)
    akanora는 "터키어로 번역"이 *“Binaenaleyh”*와 *“Velakin”*과 같은 고전적인 표현을 생성한다고 보고했습니다 (보고서). 이것이 편집 메뉴의 번역 도구임을 명확히 한 후(명확화), Falco는 번역 프롬프트를 “본연의 역할에 충실하게” 조정했습니다 (수정 설명), 그리고 akanora는 병합 후 문제가 해결되었음을 확인했습니다 (확인).

  • 언어 수준을 높이는 번역 “개선” 동작 (터키어 수정과 관련됨)
    Moin는 터키어 문제를 수정한 동일한 변경 사항이 의도치 않게 언어와 톤을 "미화"하는 번역 문제도 해결해야 한다고 지적했습니다 (AI "영어 번역"의 언어 수준). 이는 "충실한 번역"이 왜 중요한지, 그리고 프롬프트 문구가 예측 불가능한 출력을 어떻게 만들 수 있는지에 대한 역사적 맥락을 제공합니다.

  • 구조화 출력 로그: “올바른 JSON이 아님” 경고, 파싱 엣지 케이스 및 대응 방안
    lilydjwg는 업데이트 후 로그 노이즈를 지적했습니다: HTTP 응답이 유효해 보임에도 *“구조화 출력 응답이 올바른 JSON이 아님”*이라는 경고가 발생했습니다 (초기 보고서). Falco는 이것이 경고일 뿐이며 경고를 줄이기 위해 INFO 수준으로 낮추는 것을 계획한다고 명확히 했습니다 (응답), 반면 lilydjwg는 이것이 이스케이프 로직의 실제 버그를 나타낸다고 주장하며 스펙에 맞는 이스케이프 경계를 제안했습니다 (후속 질문, 예시).

  • 관리자 정책 질문: AI를 깔끔하게 비활성화하는 것
    JDParker는 회사 정책으로 인해 AI를 비활성화하는 방법에 대해 질문했고(질문), Lilly는 설치된 플러그인을 통한 관리자 경로를 제공했습니다 (해결책). 단순하지만, 더 많은 조직들이 AI 사용 가이드라인을 공식화함에 따라 주목할 만한 사항입니다.

  • 번역 캐시에 대한 더 나은 투명성/제어 요청
    darkpixlz는 더 명확한 번역 페이지 대시보드와 더 짧은 캐시 지속 시간 또는 우회 메커니즘을 요청했습니다 (캐시 삭제 허용). 이는 “운영 인체공학” 범주에 해당하며, 지출을 이해하고 거의 실시간으로 변경 사항을 확인하는 것과 관련됩니다.

  • 도킹된 컴포저 UX 정교화: “전송 단축키” 설정이 코어에 통합됨
    AI 봇 도킹된 컴포저 스레드에서, keegan은 "전송 단축키"를 코어 사용자 설정으로 이동하고 AI 봇 대화에 재사용하는 업데이트를 발표했습니다 (AI 봇 대화용 도킹된 컴포저 소개). 작은 UX 조정이지만, Discourse에서 많은 AI 채팅을 하는 사용자에게 일상적인 사용성에 영향을 미칩니다.

  • AI Translate 설정 UX: 날짜 선택기 요청 병합됨
    nat는 AI Translate 설정에 대한 요청된 날짜 선택기 기능이 병합되었음을 확인했습니다 (AI Translate 설정에서 날짜 선택기 요청), 이는 content-localization 도구의 꾸준한 점진적 개선을 강조합니다.

  • 챗봇 플러그인 진전: 추론 전략, 게이팅, 도구 이름 변경 및 보안 강화
    merefield는 챗봇 생태계의 8월 초 작업을 위한 통합 PR 요약을 게시했습니다. 여기에는 새로운 추론 전략, 의미론적 차단된 질문 게이트, 통합 작업, "Function"에서 "Tool"로 이름 변경, 그리고 더 안전한 계산기 평가기로의 전환이 포함됩니다 (Discourse Chatbot :robot:, 그리고 다음 게시물의 후속 스크린샷/컨텍스트).


활동


읽어주셔서 감사합니다, 그리고 다음 주에 다시 뵙겠습니다! :slight_smile:

주간 AI 요약: meta.discourse.org

개요

이번 주 Discourse AI 생태계에는 7개의 새로운 주제에 걸쳐 49개의 새 게시물이 올라오는 등 매우 다사다난한 한 주였습니다. 논의의 중심은 AI 플러그인과 그 확장되는 기능에 크게 기울어 있었습니다. 이번 주 논의는 세 가지 주요 테마로 수렴되었습니다: Gemini Interactions API의 출시와 코드 실행, Google Maps와 같은 네이티브 도구를 갖춘 AI 기능 확장; 게이미피케이션 자동화부터 범위가 제한된 포럼 어시스턴트에 이르기까지 특정 커뮤니티 사용 사례를 위한 AI 에이전트 조정 및 제약; 그리고 구조화된 출력 JSON 검증, AI 요약 사용자 귀속, 번역된 콘텐츠의 현지화를 포함한 품질 및 신뢰성 문제 수정입니다.

더 명확한 가드레일과 문서화가 필요하다는 주제가 반복적으로 등장했습니다. 신참과 베테랑을 포함한 여러 사용자가 비지원 언어 추가부터 언어 선택기, 임의의 쿼리에 대한 봇의 LLM 크레딧 소비 제한, 에이전트에서의 모델 선택 이해에 이르기까지 자신의 필요에 맞게 Discourse AI를 구성하는 방법에 대해 질문했습니다. 팀은 수정 사항과 조언, 새로운 PR 및 Workflows 플러그인이 기존 Automation 기반 오케스트레이션을 대체할 수 있는 방법에 대한 명확한 설명을 통해 응답했습니다.

흥미로운 주제

  • Discourse AI에 Gemini Interactions API 지원 도입: sam은 Discourse AI가 이제 Google의 새로운 Gemini Interactions API를 지원한다고 발표했으며, 향후 모든 Gemini 추론에 이를 사용할 것을 권장했습니다. 기존 generateContent API는 사용 가능하지만 "Google Gemini (Legacy API)"로 다시 라벨링되었습니다. 새로운 제공자는 기존 Search 및 Fetch 도구 외에도 도구 호출 스트리밍, 코드 실행, Google Maps 도구라는 세 가지 네이티브 기능을 추가합니다. 주목할 점은 Interactions API가 2.5 Flash 모델에서 "thinking"을 비활성화하는 것을 더 이상 허용하지 않는다는 것이며, sam은 이것이 추론 모델에 부적절하다고 지적했습니다.

  • 언어 선택기에 비지원 언어 추가: Karthik_K1은 AI가 거의 모든 언어 간 번역이 가능하다는 점을 고려할 때, 콘텐츠 현지화 언어 선택기에 인도 언어(힌디어, 텔루구어, 타밀어, 칸나다어, 말라얄람어)를 추가하는 방법에 대해 질문했습니다. nat은 이 선택기가 사용자의 전체 Discourse 로케일(인터페이스 및 콘텐츠)을 변경하며, 적절히 복수형 처리 및 폴백이 있는 Discourse의 i18n 시스템이 지원하는 로케일로 제한된다고 설명했습니다. 그는 추가 로케일을 등록하는 플러그인 또는 Crowdin을 통한 번역 기여를 제안했으며, Moin은 단기 솔루션으로 플러그인을 권장했습니다.

  • Workflows를 통한 게이미피케이션 포인트 자동화: satonotdead은 “퀘스트” 및 작업을 위해 수동으로 포인트를 부여하는 대신 게이미피케이션 포인트를 자동화하는 방법을 질문했습니다. awesomerobotWorkflows 플러그인에 “칭찬(cheers) 수여” 작업을 추가하여 게시물 확인채팅 승인 대기포인트 수여 파이프라인을 활성화하는 것을 제안했습니다. Falco는 이 기능을 구현한 PR에 링크를 걸었고, Andrew_Rowe커스텀 폼Custom Wizard 플러그인을 대안으로 제시했습니다.

  • AI 에이전트를 포럼 관련 질문으로 제한: Karthik_K1은 "우버의 소유자는 누구인가?"와 같은 관련 없는 질문에 대한 답변으로 LLM 크레딧을 소모하는 것을 막기 위해 AI 에이전트를 제한하는 방법을 질문했습니다. NateDhaliwal은 Forum Helper 또는 Forum Researcher 에이전트를 제안했지만, Karthik은 이들도 범위 밖의 쿼리에 답변하는 것을 확인했습니다. Falco는 “Creative” 에이전트에는 시스템 프롬프트가 없으며, 답변 시점을 지정하는 시스템 프롬프트를 갖춘 새로운 에이전트를 제작하는 것을 권장했습니다. 이는 Ed_S가 지적한 대로 ask.discourse.com에서 사용되는 동일한 접근 방식입니다.

  • 내장 챗봇 또는 대화형 어시스턴트?: Soumya_Ranjan_Mishra는 Discobot을 넘어선 내장 챗봇 기능에 대해 질문했습니다. RGJAI Bot 문서와 @merefield의 Chatbot 플러그인을 가리켰습니다. awesomerobot은 Discourse AI가 요청된 모든 기능을 기본적으로 지원한다고 언급했으며, 이는 채팅 또는 PM을 통한 답변, 자동 카테고리 분류, 자동 태그 지정을 포함하며, Discourse AI 문서를 통해 ask.discourse.com과 같은 전용 페이지를 구동할 수 있습니다.

  • AI 요약이 사용자를 “User1”, "User2"로 인용: sk-or-v1-contents는 AI 주제 요약(CDCK/MoM에서 사용)이 실제 핸들 대신 “User1”, “User3” 등으로 게시물을 인용하고, 원본 게시물에 없는 내용을 환각(hallucinate)하는 버그 보고서를 제출했습니다. Falco는 이것이 PR #42445로 처리되었음을 확인하고, 보고된 주제에 대한 요약이 이미 더 좋아졌다고 언급했습니다.

  • 구조화된 출력 응답의 JSON 검증 실패: lilydjwg는 로컬 llama-server(Qwen3-4B GGUF)에서 구조화된 출력 응답이 소스에서 스키마 유효함에도 불구하고 잘못된 JSON으로 거부된다고 보고했습니다. sam은 처음에는 더 유능한 모델을 제안했지만, lilydjwg가 문제가 Discourse에 의해 도입된 공백/줄바꿈 이스케이핑임을 입증한 후, sam은 이를 정당한 버그로 인정하고 수정 사항으로 PR #42339를 출시했습니다.

  • 도킹된 컴포저 설정의 가시성: 진행 중인 AI 봇 대화를 위한 도킹된 컴포저 발표에서, Moin/my/preferences/interface에 수동으로 입력하지 않고 ask.discourse.com에서 채팅 스타일 컴포저 설정이 어디에서 전환되는지 질문했습니다. keegan은 이것이 Fonts & Appearance 아래에 있음을 보여주었고, Moin은 “외관이 문제가 아니기 때문에” 직관적이지 않다고 느꼈습니다. martin은 명확성을 위해 섹션 이름을 "Interface settings"로 변경하는 것을 제안했습니다.

  • 번역된 카테고리 설명이 자동 업데이트되지 않음: Moin번역된 카테고리 설명 자동 업데이트에서 #contribute:ux#contribute:feature 카테고리의 AI 번역된 설명이 영어 편집 후에도 독일어 사용자에게는 오래된 상태로 남아있다고 지적했습니다. natPR #42407에서 수정 사항이 적용되었음을 확인했습니다.

  • AI 에이전트 채팅에서의 모델 혼동: satonotdead는 채팅 중 예상과 다른 모델을 보며 LLM 에이전트에서 모델을 업데이트하는 방법을 질문했습니다. Falco는 AI 채팅의 “정보” 아이콘이 기본 제목 설정 요청을 표시하여 혼동을 유발한다고 설명하고, 이 UX를 개선하기 위해 PR #42326을 제출했습니다. 원래의 혼동은 버그가 아닌 오해였습니다.

  • 콘텐츠 현지화 문서 리프레시: natContent Localization - Manual and Automatic with Discourse AI 문서에 대한 일괄 업데이트를 게시했습니다. 여기에는 사용자가 어디서 오는지에 대한 새로운 쿼리, 다국어 설정, 커스텀 사이드바 링크 번역, 개선된 AI 번역 진행률 그래프, 업데이트된 날짜 선택기 설정 문서가 포함되어 있습니다.

활동


읽어주셔서 감사합니다. 다음 주에 또 뵙겠습니다! :slight_smile:

ensures theyContinue the final to my raw that a to The. This text no.

The that helped. The.

Need in to.

This Ede. A [this The. This.

:neutral_face: cannot to.

The to The.

A 그 [그것 [이것 [그것들. A. The [The [an the [Although a [Thus [This The. The. That’s The [This This [This This This This This This This This This This The The The This This This This The The The This This This This This The The The The The The The This This This This This This This This This This This The This This The The This This This The The The The The This This This The This The This This The This This The The The The This This This This This This This The This The The The The The The The The The The The The The The The The The This This This This The The The The The The The The The The The The The The The The The The The The The This This The The The The The The The The The The The The The The The The The The The The The The The The The The The The This This The The The The This This This The This The The The This This The This This This This This This This The The The The This The This This The This This This This This This This This The The The The The This This This This This This This The The This This This This The The This This This This This This This This This This This This This This This This This This The This The This This This This This This This This This This This This This The This The This This This This The The This This This This This This This The The The The The The The The The The The The The The The The The The This This This This This This This This This This This This This This This This This This This The The The This This This The The This The The The This This This This This This This This The This This This The This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This## 개요

이번 주 디스코러스 AI(Discourse AI) 세계에서는 공지사항, 버그 수정, 그리고 커뮤니티 피드백이 혼재되어 있었습니다. 헤드라인은 sam이 **디스코러스 AI 서브에이전트(subagents)**를 도입한 것이었으며, 이는 에이전트를 더 작고 전문화된 조각으로 분해할 수 있게 하는 중요한 새로운 기능입니다. 또한 텍스트 전용 모델(예: DeepSeek v4 Flash)이 비전 기능을 활용할 수 있도록 하는 **위임된 비전(delegated vision)**도 출시되었습니다.

지원 측면에서는, rinion이 AI 기능이 비활성화된 상태에서도 **디스코러스 헬퍼 봇(Discourse Helper Bot)**이 개인 채팅 채널을 자동으로 여는 지속적이고 귀찮은 문제를 보고했으며, gabriel이 몇 차례의 논의를 거쳐 결국 이를 수정했습니다. 커뮤니티 멤버 satonotdeadMoin는 각각 교정(Proofread) 헬퍼가 줄바꿈을 제거하고 인용문을 깨뜨리는 문제를 지적했으며, Falco가 빠르게 수정을 적용했습니다. 또한 AI 에이전트를 포럼 특정 주제에만 제한하는 것에 대한 논의가 이루어졌으며, Ed_SKarthik_K1는 프롬프트 기반 가드레일(prompt-based guardrails)의 한계에 대한 통찰을 공유했습니다. 마지막으로, AI 제목 제안 기능이 컴포저 헬퍼(composer helper)로 이동하면서 커뮤니티에서 유용한 UX 피드백이 나왔으며, 이는 발견 가능성(discovability)에서의 마찰을 강조했습니다.

흥미로운 주제

  • 디스코러스 AI 서브에이전트sam은 디스코러스 AI에 서브에이전트 지원이 도입되었음을 공지했습니다. 서브에이전트는 메인 에이전트에서 전문 에이전트로 작업을 위임할 수 있게 하여, 에이전트를 더 합리적인 조각으로 분해하고, 언어 모델을 혼합 및 매칭하며, 컨텍스트 팽창을 방지하고, 동시성 및 속도를 높이는 데 도움이 됩니다. 예로는 웹 리서처 서브에이전트팩트 검증 서브에이전트가 있습니다. AI 에이전트에 대한 자세한 내용은 AI 봇 에이전트 주제에서 확인할 수 있습니다.

  • 디스코러스 AI에서 텍스트 전용 모델을 위한 위임된 비전sam은 또한 위임된 비전 지원의 출시를 공유했습니다. 이를 통해 DeepSeek v4 Flash와 같은 텍스트 전용 모델이 Qwen이나 Gemma와 같은 비전 지원 모델로 비전을 위임하여 디스코러스 AI의 전체 기능 세트를 사용할 수 있습니다. LLM 설정 아래에 새로운 옵션이 추가되었으며, 자세한 내용은 LLM 설정 페이지에서 찾을 수 있습니다.

  • AI 기능이 비활성화되어 있는데도 AI 봇이 계속 개인 채팅 채널에 나를 자동으로 추가하나요?rinion은 AI 기능이 비활성화되어 있음에도 불구하고 모든 페이지 로드 시 디스코러스 헬퍼 봇이 열린 DM 채팅으로 지속적으로 나타나는 문제를 보고했습니다. gabriel은 문제를 인정하고 이는 예상되는 경험이 아님을 언급한 후, 수정을 구현했습니다. 몇 차례의 문제 해결과 gabriel의 수동 채널 삭제를 통해 rinion의 문제는 해결되었습니다. Moin은 엔터프라이즈 플랜이 아닌 경우 포럼 배포가 어떻게 작동하는지 설명했습니다.

  • 메타(Meta)에서 교정 헬퍼가 줄을 제거함satonotdead교정 헬퍼가 모든 줄바꿈을 제거하여 내용을 큰 단락으로 바꾸고 심지어 인용문과 이미지를 깨뜨린다고 보고했습니다. Moin은 예시를 들어 동일한 동작을 확인했습니다. Falco수정이 곧 나올 것이라고 빠르게 응답했으며, 해당 주제는 해결된 것으로 표시되었습니다.

  • AI 제목 제안이 컴포저 헬퍼로 이동chapoiAI 제목 제안이 다른 헬퍼들과 함께 AI 컴포저 메뉴로 이동했음을 공지했습니다. jaroslav.kovar은 카테고리 및 태그의 AI 제안이 이동한 이후 아무도 이를 사용하고 있지 않으며, 새로운 상호작용을 사용자 친화적이지 않다고 설명하며 피드백을 제공했습니다. satonotdead도 기능이 아닌 미학이 우선시되었을 수 있다고 언급하며, 변경 사항을 되돌리거나 옵션을 추가하는 것이 가능한지 물었습니다. Jagster도 일반 사용자가 AI 제안을 어디서 찾을 수 있는지 어떻게 알 수 있는지 물었습니다.

  • AI 에이전트를 내 포럼과 관련된 질문에만 답변하도록 제한하는 방법은?Karthik_K1은 프롬프트가 항상 신뢰할 수 있는 것은 아니며, ask.discourse.com의 에이전트를 속여 주제 밖 질문에 답변하게 할 수 있었다고 언급했습니다. Ed_S은 100% 강제 실행은 이점보다 더 많은 불편을 초래할 것이라고 관찰했으며, Falco는 디스코러스 AI가 에이전트별로 LLM을 선택할 수 있으므로, 2단계 평가를 추가하는 **워크플로(Workflows)**를 사용하거나 원하는 동작으로 학습된 파인튜닝된 모델을 배포하는 것과 같은 실용적인 접근법을 제안했습니다.

  • 내부 OpenAI API로 디스코러스 AI 설정하기Soumya_Ranjan_Mishra은 엔터프라이즈/내부 OpenAI 호환 API 엔드포인트로 디스코러스 AI를 설정하는 방법에 대해 질문했습니다. Falco은 제공자를 openai로 선택하고 URL을 구성하도록 조언했지만, Soumya_Ranjan_Mishra은 오류를 경험했습니다. kddkd는 모델 서비스 URL과 API 키를 입력하는 것을 포함하여 중국어로 상세한 구성 단계를 제공했으며, URL 형식이 문제일 수 있다고 언급했습니다.

  • Ask Discourse 피드백twofoursixeight은 “All Questions”, “topics”, “my posts”, “categories”, "filter"와 같은 링크가 Ask Discourse 사이트에서 대부분의 멤버들에게는 빈 페이지로 이동하므로 무용하다고 피드백을 제공했습니다. HAWK은 사이트가 기본적으로 AI 봇으로 설정되어 있는데 어떻게 그 페이지들에 접근했는지 물었고, twofoursixeight은화면 녹화를 통해 사이드바가 항상 AI 봇으로 기본 설정되지 않음을, 특히 사용자 설정에서 그렇지 않음을 시연했습니다.

  • Discourse AI 에이전트 스킬 부여#Extras 카테고리에서 satonotdead는 Discourse AI 에이전트 스킬 개발에 초보자가 접근할 수 있는 경로가 있는지, 자신의 기술적 한계를 언급하며 질문했습니다. sam는 그 복잡성을 인정하고, AI 팀이 “스킬” 사용 사례를 위한 새로운 최상위 개념, 아마도 카테고리, 태그 또는 원격 데이터 컬렉션을 통한 "그라운딩 콘텐츠"를 도입하는 것을 고려하고 있다고 언급했습니다.

  • 캐시 지우기 허용darkpixlz는 캐시를 지우거나 진행 상황에 대한 더 실시간적인 업데이트를 받을 수 있는 기능을 요청했습니다. awesomerobot는 캐시 조회가 모든 백필 날짜까지의 게시물을 언어와 콘텐츠 유형으로 곱한 만큼 비용이 많이 든다고 설명하고, 버튼이 있더라도 속도 제한이 필요하다고 지적했습니다. darkpixlz는 처리가 진행 중임을 확인받고 싶을 뿐이며, 더 실시간적인 업데이트를 위해 큐를 로컬에 저장하는 것을 제안했습니다.

활동

읽어주셔서 감사하며, 다음 주에 다시 뵙겠습니다! :slight_smile:

3개의 좋아요

개요

2026년 8월 17일부터 8월 24일까지, meta.discourse.org의 ai 영역에서는 29개의 새 게시물4개의 새 주제가 생성되었습니다. 이번 주기의 하이라이트는 sam이 발표한 새로운 관리자 전용 진단 도구인 상세 관리자 AI 로그의 출시였습니다. Ask Discourse 피드백에서는 일시적인 업그레이드 관련 회귀 문제가 보고되었다가 해결되었으며, 이를 계기로 숨겨진 링크 설정에 대한 유용한 부수 논의가 이루어졌습니다. 내부 OpenAI API를 사용하여 Discourse AI 설정하기에서는 환경 변수 및 컨텍스트 윈도우 팁을 공유하며 트러블슈팅이 계속되었습니다. satonotdead는 채팅 제목, 그룹별 모델 선택, 에이전트 채팅 모니터링과 관련된 여러 새로운 기능 요청을 게시했습니다. 마지막으로, sam은 이전 ai 버그 보고서 일부를 분류(triage)하여 몇 가지는 닫고 소스에서 수정이 확인되었음을 확인했습니다.

흥미로운 주제

활동

지난 7일간 커뮤니티의 기여 내용은 다음과 같습니다:

읽어주셔서 감사드리며, 다음 주에 다시 뵙겠습니다! :slight_smile:

개요

2026년 8월 24일~31일 주간의 meta.discourse.org는 주요 ai 발표, AI 요약 관련 버그 보고서의 연이은 보고, 그리고 눈에 띄는 플러그인 개발 활동으로 가득했습니다. sam#Announcements에서 Discourse MCP의 다음 버전을 공개하며 일주일의 시작을 알렸는데, 이는 25개 도구에서 131개 도구로 도약한 것으로, 새로운 “toolsets” 개념을 도입한 중요한 발전입니다. 이와 함께 여러 사용자가 AI 요약 플러그인 관련 문제를 제기했습니다. darkpixlz토픽 요약이 중간에 잘리는 현상을 발견했고, lilydjwgLLM으로 전송되는 단어 안에 추가 공백이 삽입되는 이상한 버그를 파헤쳐 FoldContent 클래스의 truncate 호출까지 추적했습니다. satonotdead는 두 가지 별개의 우려를 제기했는데, Horizon 테마에 AI 요약이 없는 문제와 모바일에서 전체 화면 채팅과 챗봇 사이의 네비게이션 막다른 길 문제였습니다. 개발 측면에서는 martinDiscourse AI가 “everyone” 그룹을 무시하는 오랜 버그를 수정하는 PR을 제출했고, merefield는 Anthropic, Google Gemini, xAI 지원을 추가한 대규모 Discourse Chatbot 3.0.0 확장을 게시했습니다. 전반적으로 빠른 반복 개발과 커뮤니티의 테스트, 버그 헌팅, ai 동작에 대한 명확한 설명에 대한 활발한 참여가 있었던 한 주였습니다.

흥미로운 토픽

  • Discourse MCP의 다음 버전sam는 Discourse MCP 서버의 0.3 버전을 발표했습니다. 이는 0.2.9의 25개 도구에서 131개 도구로 대폭 업그레이드된 것입니다. 이번 릴리스는 새로운 “toolsets” 개념을 도입합니다. 기본적으로 제한된 도구 세트만 노출되지만, toolset=all을 지정하면 워크플로 생성 및 관리부터 AI 설정, 분석, 테마 생성까지 모든 것이 잠금 해제됩니다. fuse는 진정한 학습의 정신으로 Discourse MCP 서버의 사용 사례가 무엇인지 질문했고, Falco는 예시를 위해 원본 발표 영상을 가리켰습니다.

  • 토픽 요약이 중간에 잘림darkpixlz자신의 테마에 대해 자동 생성된 토픽 요약이 문장 중간에서 잘려나가는 것을 발견했습니다. LLM 문제인지 플러그인 문제인지 확신이 없었던 그는, 사용자가 요약을 플래그하거나 재생성을 요청할 수 있다면 좋겠다고 제안했습니다. Falco는 즉시 개입하여 요약을 재생성했습니다.

  • 토픽 요약이 단어 또는 링크 안에 추가 공백이 포함된 메시지로 LLM에 전송됨lilydjwg는 자신의 사이트에서 AI 요약을 활성화한 후 기이한 버그를 보고했습니다. 출력에는 e nter, Ct rl, host s와 같이 단어 사이에 공백이 삽입된 [keyd](https://man.arch linux.org/...) 같은 잘못된 링크가 포함되어 있었습니다. AI 로그를 확인한 결과, 요청 전반에 걸쳐 추가 공백이 발견되었으며, 심지어 한자 사이에도 공백이 삽입되어 있었습니다. 후속 게시물에서 그는 이 문제를 자가 진단하여 FoldContent 클래스의 truncate 호출 때문이라고 결론지었습니다.

  • Horizon에 AI 요약이 없는 이유?satonotdead는 meta와 자신의 셀프호스팅 인스턴스 모두에서 Horizon 테마가 토픽 목록에 AI 요약을 표시하지 않는 이유를 궁금해했습니다. chapoi는 이것이 기대되는 동작이라고 설명하며, AI 요약은 아웃렛(outlets)을 통해 작동하는데 Horizon은 의도적으로 어떤 아웃렛도 사용하지 않는 독창적인 디자인을 가지고 있다고 덧붙였습니다.

  • Discourse AI가 “everyone” 그룹을 준수하지 않음 — 이 오랜 #Bug는 martin문제를 수정하는 작은 PR을 게시하면서 다시 부각되었습니다. 이 PR은 return false if (SiteSetting.ai_bot_allowed_groups_map & post.user.group_ids).blank?라는 버그 있는 검사도 함께 다루며, AI 봇의 그룹 권한이 문서화된 대로 동작하도록 만드는 데 있어 환영할 만한 한 걸음이 되었습니다.

  • 챗봇 + 채팅에서 되돌릴 수 없음satonotdead#Bug에서 네비게이션 막다른 길을 보고했습니다. 전체 화면 채팅에 들어간 후 챗봇으로 이동하거나(또는 그 반대) 할 때, 두 개의 뒤로 가기 버튼이 제자리에서 회전하며 사용자가 포럼으로 돌아갈 수 없는 상태로 갇히게 됩니다. awesomerobot는 정확한 재현 단계를 요청했고, satonotdead는 모바일 네비게이션에 F Nav 테마 컴포넌트를 사용한다고 밝히며 시퀀스를 명확히 했지만, 버그는 URL을 통해 접근할 수 있어야 한다고 언급했습니다.

  • Discourse Chatbot :robot:merefield#Plugin에서 Discourse Chatbot 플러그인의 대규모 확장을 발표했습니다. 기존 OpenAI 통합과 함께 Anthropic, Google Gemini, xAI에 대한 1급 지원을 추가하는 PR입니다. 3.0.0 버전은 프로바이더 인식 크리덴셜과 모델 선택, LLM 응답, 임베딩, 비전, 이미지 생성을 위한 독립적 프로바이더를 도입하며, 커스텀 모델과 URL(Azure, Ollama, 프록시)에 대한 지원도 유지합니다. 새로운 프로바이더 지원이 다소 실험적 단계이므로 피드백을 권장했습니다.

  • Discourse AI - 스팸 감지 — 이 #Site Management 스레드에서 The_Chromer는 사용자의 사용자 이름으로 스팸 사용자 여부를 판별할 수 있는지 질문했습니다. 이는 moderation 및 Discourse AI를 사용하여 spam 감지를 효과적으로 활용하는 방법에 대한 커뮤니티의 지속적인 논의를 이어가는 것입니다.

활동

읽어주셔서 감사드리며, 다음 주에 다시 뵙겠습니다! :slight_smile:

주간 AI 활동 요약: meta.discourse.org

2026년 8월 31일 ~ 9월 7일 주

개요

meta.discourse.org에서 AI 관련 활동이 활발했던 한 주였습니다. 두 가지 주요 발표, 2026.8.0 릴리스 이후 이어진 Gemini 관련 버그 보고, 그리고 커뮤니티 멤버들의 다양한 기능 요청이 그 배경이 되었습니다.

가장 큰 이슈는 natAsk AI 발표였습니다. Ask AI는 인덱스 검색과 병행하여 작동하는 새로운 자연어 검색 경험으로, 후속 질문을 지원하며 좋은 결과가 없을 경우 사용자에게 주제를 생성하도록 유도합니다. 이 기능은 곧바로 토큰 비용에 대한 질문과 EricGT의 프롬프트 입력 크기, 정렬 가능한 결과 열, AI Bot 폴백의 발견 가능성에 대한 상세한 UX 피드백을 불러일으켰습니다. 잠시 후, sam은 모든 사이트에 적용될 기본 llms.txt를 Discourse가 제공할 것이라고 발표했으며, 이는 AI 크롤러를 위한 보수적이고 토큰 효율적인 지시사항을 포함합니다. 또한 rishabh은 업그레이드된 Discourse Admin Assistant를 소개했는데, 이제 승인/취소 플로우를 통해 채팅에서 실제 관리 및 설정 작업을 수행할 수 있습니다.

트러블슈팅 측면에서는, RBoy이 2026.8.0으로 업데이트한 후 AI 검색과 Disco Bot이 Gemini에서 오류를 일으킨다고 보고했고, 관련 Gemini Flash Lite 사고(thinking) 회귀 문제도 접수했습니다. 이는 빠르게 변화하는 LLM 모델 ID와 레거시 API 지원의 유지보수 부담에 대한 더 넓은 논의를 촉발시켰습니다. Karthik_K1은 두 가지 셀프호스팅 문제를 해결했습니다: 빈 Ask AI 응답은 테마 관련 렌더링 버그로 밝혀졌고, Gemini API 키 오류Lillysatonotdead의 도움으로 LiteLLM 우회 방법을 통해 해결되었습니다.

기존 기능 토론들도 다시 활발해졌으며, AI 검색 원클릭 실험Discourse AI에 도입되는 대화형 AI 검색이 포함됩니다. 또한 satonotdead커스텀 헬퍼 프롬프트와 더 풍부한 AI 대화 관리에 대한 두 가지 새로운 요청을 접수했습니다. 전반적으로 이번 주에는 플랫폼의 가속화되는 AI 투자와 LLM 제공업체의 변경 사항에 발맞추기 위해 셀프호스터들이 겪는 성장통이 모두 부각되었습니다.

흥미로운 주제

  • 커뮤니티 검색을 위한 Ask AI 출시. nat#announcements에서 Ask AI를 발표하며, 자연어 쿼리, 후속 질문, 그리고 결과가 없을 때의 “주제 생성” CTA를 어떻게 지원하는지 설명했습니다. jaroslav.kovar추가 토큰 비용에 대해 물었고, nat은 AI 사용 대시보드를 가리켰습니다. satonotdead은 결과 상자를 제어하기 위한 AI ask AI related count 관리 설정을 발견했으며, nat은 이것이 목표가 아닌 최댓값임을 확인했습니다. EricGT는 대형 호스팅 포럼에서 광범위한 피드백을 공유했습니다: 그는 더 큰 프롬프트 입력 필드와 정렬 가능한 결과 열을 요청하고, “AI Bot에서 계속” 링크와 같은 요소를 통해 AI Bot으로의 전환을 더 쉽게 발견할 수 있도록 제안하며, 혼란을 피하기 위해 툴팁 또는 “Ask AI” 버튼 라벨을 제안했습니다. nat는 매우 긴 프롬프트에는 전체 페이지 AI Bot 대화가 더 적합하며, 정렬 개선은 "고려해볼 수 있다"고 응답했습니다. 이후, EricGT는 주제 내에서 밀접하게 관련된 GitHub 이슈를 찾기 위해 Ask AI를 사용해 보았지만, Moin은 “이 주제” 범위가 클래식 검색 동작이며 Ask AI가 아님을 명확히 했습니다.

  • 모든 Discourse 사이트에 자동 llms.txt 도입 예정. sam은 모든 사이트에 적용될 기본 llms.txt를 Discourse가 제공할 것이라고 발표했습니다. 이 파일에는 AI 에이전트를 위한 지시사항이 포함되어 있습니다: 사람들을 사칭하지 마세요, 계정을 자동으로 생성하지 마세요, robots.txt와 속도 제한을 존중하세요, 그리고 사용 가능한 경우 Discourse MCP 서버를 우선하세요. Ed_S은 셀프호스터가 이를 커스터마이징하거나 제외할 수 있는지 물었고, sam은 AI를 완전히 차단하려는 사이트에는 “Robots not welcome” 파일을 권장하며, 콘텐츠가 완전히 커스터마이징 가능하다고 강조했습니다. Ed_S는 About 페이지 링크 대신 포럼 목적에 대한 간결한 일반 텍스트 요약을 제안했으며, sam은 템플릿의 토큰 효율성을 옹호하고 대부분의 LLM이 이미 Discourse의 오래된 "이미지"를 알고 있으므로 이 파일이 Discourse MCP 서버와 같은 새로운 기능에 대해 최신 정보를 얻는 데 도움이 된다고 지적했습니다. jaroslav.kovar은 파일을 검사하고 수정하는 방법을 물었습니다.

  • Discourse Admin Assistant 소개. rishabh은 호스팅 사이트를 위한 리브랜딩 및 업그레이드된 Discourse Admin Assistant(구 Discourse Helper Bot)를 발표했습니다. 이제 Meta를 검색하여 질문에 답하고, 승인/취소 확인을 통해 사이트 설정을 변경하며, 관리 작업(사용자 침묵, 주제 잠금, 큐 검토)을 돕고, 사이트의 호스팅 플랜과 청구에 대한 질문에 답할 수 있습니다 — 모두 채팅에서 직접 가능합니다.

  • 2026.8.0 이후 Gemini 오류 및 레거시 API 우려. RBoy은 업그레이드 후 Disco Bot / AI 검색이 Gemini Flash Latest (3.7)에서 오류를 일으킨다고 보고했으며, 로그에는 Gemini API에서 Role 'function' is not supported가 표시되었습니다. sam은 비레거시 상호작용 엔드포인트로 전환할 것을 제안했고, RBoy는 해당 엔드포인트가 -latest 모델 별명을 받지 않는다는 것을 발견했으며, 이는 Gemini가 버전을 빠르게 폐기함에 따라 상당한 관리 오버헤드를 초래한다고 주장했습니다. 관련 스레드에서 RBoy은 사고(thinking) 토큰 예산이 하드코딩되지 않으면 400 오류가 발생하는 Gemini Flash Lite 사고(thinking) 회귀 문제를 보고했으며, 업그레이드 후 Pro 모델은 "완전히 깨졌다"고 지적했습니다. sam은 다시 한번 더 새로운 gemini-3.5-flash-lite 엔드포인트를 가리킨 반면, RBoy는 필요한 변경의 주기에 대해 반박하며, Discourse 관리자가 LLM의 변화에 발맞추기 어렵고 TCO(총 소유 비용)가 최신 모델을 항상 사용하는 것보다 중요하다고 주장했습니다.

  • 빈 Ask AI 응답, 테마 렌더링으로 인한 것으로 확인. Karthik_K1은 기본 LLM을 전환한 후 Ask AI가 응답 제목은 생성했지만 빈 응답 본문이 표시된다고 보고했습니다. nat은 처음에는 15.5초의 응답이 20초 마감 시간을 초과하여 타임아웃된 것으로 의심했지만, Karthik_K1의 테스트 결과 문제는 데스크톱에서만, 두 브라우저에서 발생했습니다. nat안전 모드, 전체 페이지 Ask AI, 콘솔/네트워크 디버깅을 제안했으며, Karthik_K1은 결국 테마가 원인이었음을 발견했습니다 — Mint 테마는 스크롤해야만 답변이 표시되었고, Foundation 테마는 정상적으로 작동했습니다.

  • Discourse에서 Gemini API 키 오류 해결. Karthik_K1은 기존 가이드를 따랐음에도 Google Cloud Vertex AI를 Discourse AI에 연결할 때 인증 오류에 직면했습니다. Lilly는 작동하는 Gemini API 구성(Vertex 대신 Gemini API 서비스를 사용)를 안내했으며, Karthik은 이것이 자신의 GCP 크레딧을 소모하지 않을 것이라고 언급했습니다. satonotdead는 토큰 로테이션을 갖춘 LiteLLM 프록시 접근법을 권장했으며, 이는 잘 작동했습니다. Karthik_K1은 더 가벼운 모델로 전환하면 지연 시간이 제거된다고 확인하고 주제를 해결됨으로 닫았습니다.

  • 2026.8.0 이후 AI 검색 버튼 누락. RBoy는 2024년에 처음 게시된 새로운 실험: 원클릭으로 AI 검색 활성화! 주제를 다시 활성화하여, 2026.8.0에서 AI 결과 버튼이 기본적으로 검색 결과에 더 이상 표시되지 않다고 보고했습니다 — 고급 검색 필터를 수동으로 열어야만 표시됩니다. NateDhaliwal는 이것이 Discourse AI AI Search 가이드의 기능인지 물었고, 유사하지만 다른 후속 기능인 Ask AI를 가리켰습니다.

  • 대화형 AI 검색 설정 명확화. 장기적인 Discourse AI에 도입되는 대화형 AI 검색 #feature 주제에서, satonotdead은 이전에는 그의 에이전트가 “전혀 표시되지 않았으며” 사용자 설정 토글도 표시되지 않았다고 명확히 했습니다. 그는 이 기능이 Discover의 에이전트 구성과 기본 베이스 모델 모두에 의존한다고 판단했으며, "이미 Ask AI에서 해결되었다"고 확인했습니다.

  • 커스텀 헬퍼 프롬프트 요청. satonotdeadDiscourse Helper에 커스텀 헬퍼 프롬프트를 추가하는 방법을 묻는 Support 스레드를 열었습니다. 그는 붙여넣은 링크로부터 게시물을 개발할 수 있는 AI Bot을 통한 작동 에이전트를 설명했지만, PM을 주제로 변환하고 태그를 추가하는 워크플로우는 번거롭다고 지적했습니다 — 그는 매번 초기 프롬프트를 다시 입력하지 않고 헬퍼를 통해 이러한 기능을 노출받고 싶어 합니다.

  • AI 대화 관리 기능 요청. satonotdeadAI 대화에 그룹 추가, 이름 변경 및 삭제에 대한 #feature 요청을 접수했습니다. 이는 AI 대화 패널(ask.discourse.com에서 사용 중인 것과 동일한)에서 누락된 표준 채팅 UX 기능(채팅 이름 변경, 에이전트/기능별 그룹 생성 및 조직화, 각 대화 내부가 아닌 사이드바의 세 점 메뉴에서 채팅 삭제)을 다루고 있습니다. 그는 이것이 성장하는 채팅 목록에서 정보 검색을 개선할 것이라고 언급했습니다.

활동

읽어주셔서 감사합니다, 다음 주에 다시 뵙겠습니다! :slight_smile: