@operatingtag/dsh-unclesam 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/README.ar.md +256 -0
- package/README.az.md +262 -0
- package/README.bg.md +265 -0
- package/README.bn.md +260 -0
- package/README.cs.md +4 -2
- package/README.da.md +4 -2
- package/README.de.md +4 -2
- package/README.el.md +4 -2
- package/README.es.md +4 -2
- package/README.fa.md +4 -2
- package/README.fi.md +4 -2
- package/README.fr.md +4 -2
- package/README.he.md +4 -2
- package/README.hi.md +4 -2
- package/README.hr.md +262 -0
- package/README.hu.md +4 -2
- package/README.id.md +4 -2
- package/README.it.md +4 -2
- package/README.ja.md +4 -2
- package/README.ka.md +263 -0
- package/README.kk.md +264 -0
- package/README.km.md +259 -0
- package/README.ko.md +4 -2
- package/README.lt.md +263 -0
- package/README.md +4 -2
- package/README.mr.md +260 -0
- package/README.ms.md +267 -0
- package/README.my.md +268 -0
- package/README.ne.md +260 -0
- package/README.nl.md +4 -2
- package/README.no.md +263 -0
- package/README.pl.md +4 -2
- package/README.pt.md +4 -2
- package/README.ro.md +4 -2
- package/README.ru.md +4 -2
- package/README.si.md +261 -0
- package/README.sk.md +263 -0
- package/README.sl.md +264 -0
- package/README.sr.md +264 -0
- package/README.sv.md +4 -2
- package/README.sw.md +265 -0
- package/README.ta.md +268 -0
- package/README.te.md +262 -0
- package/README.th.md +4 -2
- package/README.tl.md +271 -0
- package/README.tr.md +4 -2
- package/README.uk.md +4 -2
- package/README.ur.md +263 -0
- package/README.uz.md +264 -0
- package/README.vi.md +4 -2
- package/README.zh.md +4 -2
- package/package.json +26 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,49 @@ fixes the patch.
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## 1.3.0
|
|
12
|
+
|
|
13
|
+
**Fifty-one languages - every language the panel speaks - and a search line written for each.**
|
|
14
|
+
|
|
15
|
+
The last three were missing entirely: Azerbaijani, Bulgarian and Croatian. They now exist, so a reader of
|
|
16
|
+
any language the panel offers has a front page in it.
|
|
17
|
+
|
|
18
|
+
- Each page carries a new line directly under the description, written for what a speaker of that language
|
|
19
|
+
would actually search - `plugin para DeepSeek Harness`, `DeepSeek Harness プラグイン`, `پلگ ان`,
|
|
20
|
+
`DeepSeek Harness প্লাগইন` - rather than a translation of the English words.
|
|
21
|
+
- The line also carries the free-alternative phrase, the features searched for (chat, DeepThink, web search),
|
|
22
|
+
and the three facts that answer "is this for me": no API key, no cost per token, no billing.
|
|
23
|
+
- `dev/seo-lines.mjs` holds all fifty-one lines in one file so they can be read together and a wrong phrasing
|
|
24
|
+
spotted; it is idempotent and refuses to insert twice.
|
|
25
|
+
- `dev/test-license.mjs` now also asserts that every page carries the search line, so a page added later
|
|
26
|
+
cannot silently skip it.
|
|
27
|
+
|
|
28
|
+
Three wrong-script slips were caught and fixed before linking: an Italian "oltre" in Arabic, an English
|
|
29
|
+
"weaker" in Thai, a Russian "доступ" in Bengali - and in this batch, a Cyrillic character inside an
|
|
30
|
+
Azerbaijani word and a Serbian word typed in Latin letters.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 1.2.0
|
|
35
|
+
|
|
36
|
+
**Ten more languages: thirty-seven front pages in all.**
|
|
37
|
+
|
|
38
|
+
Added Arabic, Uzbek, Kazakh, Georgian, Nepali, Sinhala, Tamil, Telugu, Marathi and Bengali. Each is a full
|
|
39
|
+
translation, and each carries the same four rules as every other page - the licence, the coffee link, the
|
|
40
|
+
two legitimate sources, and its own warning that this product is under development and bugs are expected.
|
|
41
|
+
|
|
42
|
+
- `dev/test-license.mjs` asserts all four in all thirty-seven pages, each in its own language.
|
|
43
|
+
- Each page links to the other thirty-six, written by a script so the switcher cannot drift.
|
|
44
|
+
- Three wrong-script words were caught before linking and fixed: an Italian "oltre" in the Arabic cost
|
|
45
|
+
table, two English "weaker" in the Thai comparison, and a Russian "доступ" in the Bengali licence clause.
|
|
46
|
+
Every new page was then scanned for words belonging to another language.
|
|
47
|
+
|
|
48
|
+
Honest limitation: these are the author's translations. The four rules are machine-checked; the prose is
|
|
49
|
+
not. Georgian, Sinhala, Tamil and Bengali are where a native reader's review would be worth most - Georgian
|
|
50
|
+
and Sinhala have no settled software vocabulary, and Bengali licence phrasing is the most legally delicate.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
11
54
|
## 1.1.0
|
|
12
55
|
|
|
13
56
|
**Ten more languages, and the front page now speaks twenty-seven of them.**
|
package/README.ar.md
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · [Svenska](README.sv.md) · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md) · **العربية** · [Oʻzbekcha](README.uz.md) · [Azərbaycan](README.az.md) · [Български](README.bg.md) · [Hrvatski](README.hr.md) · [Қазақша](README.kk.md) · [ქართული](README.ka.md) · [नेपाली](README.ne.md) · [සිංහල](README.si.md) · [தமிழ்](README.ta.md) · [తెలుగు](README.te.md) · [मराठी](README.mr.md) · [বাংলা](README.bn.md) · [ខ្មែរ](README.km.md) · [Lietuvių](README.lt.md) · [Bahasa Melayu](README.ms.md) · [မြန်မာ](README.my.md) · [Norsk](README.no.md) · [Slovenčina](README.sk.md) · [Slovenščina](README.sl.md) · [Српски](README.sr.md) · [Kiswahili](README.sw.md) · [Filipino](README.tl.md) · [اردو](README.ur.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**مزوّد لـ DeepSeek Harness يجيب عبر متصفحك الخاص، على حساب الويب الذي تملكه بالفعل، بدلًا من الـ API المدفوع.**
|
|
6
|
+
|
|
7
|
+
**إضافة DeepSeek Harness التي تشغّل chat.deepseek.com في متصفح حقيقي — البديل المجاني لـ API الخاص بـ DeepSeek. محادثة و DeepThink وبحث في الويب على حسابك، بلا مفتاح API وبلا دفع لكل رمز.**
|
|
8
|
+
|
|
9
|
+
**☕ [اشترِ لي قهوة](https://revolut.me/operatingtag)** — يكتبه شخص واحد، في الليل، بلا تمويل. لا يوجد نموذج دخل آخر. نجمة أو تقرير خطأ مفيد يساويان الشيء نفسه.
|
|
10
|
+
|
|
11
|
+
> **هذا المنتج قيد التطوير النشط. توقّع وجود أخطاء.**
|
|
12
|
+
>
|
|
13
|
+
> إنه يعمل، وهو سريع، ويُستخدم يوميًا منذ أسابيع — لكنه يتغيّر باستمرار، ومسار المتصفح يعتمد على موقع يتغيّر
|
|
14
|
+
> دون إشعار. إذا انكسر شيء، فإن لقطة شاشة ورقم الإصدار أنفع من وصف. ثبّت إصدارًا إذا كنت تعتمد عليه.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
المزوّد deepseek-web
|
|
18
|
+
النماذج deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
19
|
+
التكلفة صفر لكل رمز — يستخدم الاشتراك المفتوح بالفعل في متصفحك
|
|
20
|
+
الحالة قيد التطوير — توقّع وجود أخطاء
|
|
21
|
+
القياس أول رمز ~1.9 ث · عبء إضافي ~0.6 ث · دور كامل في ~2.5 ث
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
ردود مسار الويب موقّعة بـ **🔴 Uncle Sam**. هذا الاسم مزحة لا ادعاء: إنه يحدّد أي مسار أجاب، وردود الـ API لا تحمل
|
|
25
|
+
أي توقيع. أنت تعرف دائمًا من أجابك.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## ماذا يوفّر عليك
|
|
30
|
+
|
|
31
|
+
الـ API يفوتر لكل رمز. المنتج على الويب لا يفعل. هذه الإضافة تسجّل `deepseek-web` مزوّدًا للنماذج وتجيب على كل نداء
|
|
32
|
+
بقيادة `chat.deepseek.com` في متصفح حقيقي — الصفحة تقوم بالعمل، والمتصفح يحتفظ بالجلسة، ولا شيء يُقاس.
|
|
33
|
+
|
|
34
|
+
| | مسار الـ API | مسار الويب |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| التكلفة | لكل رمز، إلى الأبد | لا شيء فوق الاشتراك |
|
|
37
|
+
| السرعة | سريع | ~2.5 ث لكل دور، مقيس |
|
|
38
|
+
| نداء الأدوات | أصلي وموثوق | محاكى، يعمل لكنه أضعف |
|
|
39
|
+
| يعتمد على | الـ API | موقع يتغيّر دون إشعار |
|
|
40
|
+
|
|
41
|
+
**يبقى المساران مثبّتين.** منتقي النموذج هو المفتاح: استخدم المسار الرخيص افتراضيًا والجأ إلى الـ API عندما تحتاج
|
|
42
|
+
المهمة أدوات موثوقة.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## التثبيت
|
|
47
|
+
|
|
48
|
+
Uncle Sam إضافة **لـ DeepSeek Harness**. خارج الـ harness لا يفعل شيئًا، لأنه يسجّل مزوّد نماذج ومسارًا على المضيف
|
|
49
|
+
وموضعين في الواجهة.
|
|
50
|
+
|
|
51
|
+
**المتطلبات**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | أي بناء حديث فيه مدير إضافات |
|
|
56
|
+
| المتصفح | يُفضّل Brave؛ يُستخدم Edge تلقائيًا عند غيابه |
|
|
57
|
+
| Node | 22 أو أحدث |
|
|
58
|
+
|
|
59
|
+
**من npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**من هذا المستودع**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
ثم أضف سطر الحزمة إلى ملفك التعريفي لتحمّله الـ harness:
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
# cordis.patch.yml
|
|
77
|
+
- insert:
|
|
78
|
+
- id: dsh-unclesam
|
|
79
|
+
name: '@operatingtag/dsh-unclesam'
|
|
80
|
+
config:
|
|
81
|
+
port: 9222
|
|
82
|
+
defaultModel: deepseek-chat-search
|
|
83
|
+
autoMinimise: true
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**أو من مجلد:** الإعدادات → الإضافات → تثبيت من مسار محلي، مع الإشارة إلى المجلد الذي يحوي `package.json`.
|
|
87
|
+
|
|
88
|
+
### التشغيل الأول
|
|
89
|
+
|
|
90
|
+
اضغط **تسجيل الدخول / فتح المحادثة**. يُفتح المتصفح ويبقى **مرئيًا** حتى تسجّل الدخول في chat.deepseek.com. بعد
|
|
91
|
+
ذلك يصغّر نفسه ولن تراه مرة أخرى. الجلسة تعيش في ملف المتصفح، لذا **الإضافة لا تخزّن أي كلمة مرور** — لا شيء
|
|
92
|
+
يمكن تسريبه.
|
|
93
|
+
|
|
94
|
+
ينبغي أن ترى بعد ذلك:
|
|
95
|
+
|
|
96
|
+
1. **الإعدادات → Uncle Sam** — صفحة فيها صفوف حالة وزر تسجيل دخول.
|
|
97
|
+
2. **أسفل خانة الرسالة** — `● DeepSeek Harness` أو `● Uncle Sam`، اضغط للتبديل.
|
|
98
|
+
3. **قائمة النماذج** — أربعة نماذج `(web)` بجانب نماذج الـ API.
|
|
99
|
+
|
|
100
|
+
### الإزالة
|
|
101
|
+
|
|
102
|
+
الإعدادات → الإضافات → Uncle Sam → إلغاء التثبيت. لا يُكتب شيء خارج ملف المتصفح الذي سجّلت الدخول به.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## مفتاح API / الويب
|
|
107
|
+
|
|
108
|
+
**منتقي النموذج هو المفتاح.** لا يوجد عنصر تحكّم ثانٍ، لأن عنصرًا ثانيًا يختار النموذج أيضًا سيكون مصدرَي حقيقة
|
|
109
|
+
لقرار واحد.
|
|
110
|
+
|
|
111
|
+
| اختر هذا النموذج | المسار | DeepThink | البحث |
|
|
112
|
+
|---|---|---|---|
|
|
113
|
+
| `DeepSeek Chat (web)` | المتصفح | مغلق | مغلق |
|
|
114
|
+
| `DeepSeek Chat + Search (web)` | المتصفح | مغلق | **مفتوح** |
|
|
115
|
+
| `DeepSeek Reasoner (web)` | المتصفح | **مفتوح** | مغلق |
|
|
116
|
+
| `DeepSeek Reasoner + Search (web)` | المتصفح | **مفتوح** | **مفتوح** |
|
|
117
|
+
| أي نموذج بلا `(web)` | الـ API | — | — |
|
|
118
|
+
|
|
119
|
+
تظهر شارة **WEB** أو **API** بجانب اسم النموذج ليكون المسار النشط مرئيًا بنظرة واحدة. وعندما لا يُعرف الاسم، لا
|
|
120
|
+
تُظهر الشارة شيئًا بدلًا من التخمين — الشارة الخاطئة أسوأ من عدمها.
|
|
121
|
+
|
|
122
|
+
يبقى اختيارك بين عمليات إعادة التشغيل. **DeepThink** هو تمرير الاستدلال؛ و**البحث** يتيح له قراءة الويب الحيّ.
|
|
123
|
+
|
|
124
|
+
### البحث مرئي في المحادثة
|
|
125
|
+
|
|
126
|
+
مع نموذج بحث، ينتج الدور **كتلتين** — الاستعلام الذي بحث به، والمصادر التي وجدها، ثم الجواب الذي استخدمها:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
بحث في الويب — «ما عنوان تقني اليوم؟»
|
|
130
|
+
المصادر (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
131
|
+
الروابط: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
الصفحة لا تكشف الاستعلام الذي كتبته داخليًا، لذا فالاستعلام المقتبس هو الرسالة التي أطلقت البحث. تُقرأ المصادر
|
|
135
|
+
والروابط من الصفحة بعد أن يستقر الجواب. ولأن المصادر لا توجد إلا في النهاية، **تُجمَّع أدوار البحث بدلًا من
|
|
136
|
+
بثّها**؛ أما الأدوار العادية فما زالت تُبثّ رمزًا برمز.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## لماذا متصفح ولا الـ HTTP API الخاص بهم
|
|
141
|
+
|
|
142
|
+
المسار البديهي — نداء الـ API الخاص بـ `chat.deepseek.com` — جُرِّب ثم تُرك. الموقع يمرّر كل رسالة عبر بوابتين:
|
|
143
|
+
|
|
144
|
+
| البوابة | المعنى |
|
|
145
|
+
|---|---|
|
|
146
|
+
| `/api/v0/chat/create_pow_challenge` | **إثبات عمل** لكل رسالة |
|
|
147
|
+
| `challenges.cloudflare.com/turnstile` | بوابة ضد الروبوتات على الأصل |
|
|
148
|
+
|
|
149
|
+
إعادة تنفيذ أيٍّ منهما لعبة خاسرة: كلاهما مبهم ويتغيّر، وعندما يتغيّر يبدو الفشل تمامًا كعطل شبكة. **الصفحة
|
|
150
|
+
تحلّ الاثنين بالفعل لطلباتها الخاصة.**
|
|
151
|
+
|
|
152
|
+
لذا لا يتحدث المحوّل أبدًا HTTP مع الموقع. إنه يقود الصفحة، والصفحة تفعل الباقي. المصادقة وإثبات العمل وTurnstile
|
|
153
|
+
تكفّ عن كونها مشكلتنا ولا يمكن أن تنكسر بمعزل عن الموقع نفسه.
|
|
154
|
+
|
|
155
|
+
**تحقّقنا:** طلب `HEAD` بسيط إلى الموقع يعيد `403`؛ ومسار المتصفح يعيد أجوبة.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## حدود، تُقال بصدق
|
|
160
|
+
|
|
161
|
+
**نداء الأدوات محاكى.** محادثة الويب لا تملك قناة أدوات منظّمة: تُوصف الأدوات في الطلب، ويُستعاد النداء باستخراج
|
|
162
|
+
كائن JSON من الجواب. يعمل — تحقّقنا — لكنه أضعف من النداء الأصلي: النموذج الذي يتجاهل التعليمات يجيب نثرًا، ولا
|
|
163
|
+
ترى الـ harness أي استخدام للأدوات في ذلك الدور. **للعمل الوكيلي الثقيل، مسار الـ API أكثر موثوقية.** مسار الويب
|
|
164
|
+
هو الأفضل للمحادثة والأجوبة الطويلة والوكلاء الفرعيين والضغط وكل دور يجب فيه أن يكون النموذج هو نموذج الويب.
|
|
165
|
+
|
|
166
|
+
**يعتمد على موقع لا تتحكّم به.** عندما تتغيّر الصفحة شكلها، يجب أن تتغيّر الإضافة معها. هذا هو تحذير التطوير في
|
|
167
|
+
أعلى هذه الصفحة، لا شكليات.
|
|
168
|
+
|
|
169
|
+
**ليس مرتبطًا بـ DeepSeek.** لا يحظى بتأييدهم ولا دعمهم، ولا يمنحك أي حقوق في خدمتهم. استخدامك لتلك الخدمة تحكمه
|
|
170
|
+
شروطهم.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## الإعداد
|
|
175
|
+
|
|
176
|
+
`cordis.patch.yml` يضبط:
|
|
177
|
+
|
|
178
|
+
| المفتاح | الافتراضي | المعنى |
|
|
179
|
+
|---|---|---|
|
|
180
|
+
| `port` | `9222` | منفذ تنقيح المتصفح |
|
|
181
|
+
| `defaultModel` | `deepseek-chat-search` | يُستخدم عندما لا يسمّي النداء نموذجًا |
|
|
182
|
+
| `showBrowser` | `true` | هل تكون النافذة مرئية أثناء العمل |
|
|
183
|
+
|
|
184
|
+
يجب أن يحوي المتصفح جلسة مسجّلة في `chat.deepseek.com`. أول نداء يشغّل Brave بملف **Default** إن لم يكن المنفذ
|
|
185
|
+
مفتوحًا. وإذا كان Brave يعمل بالفعل *بلا* منفذ تنقيح، فلا يستطيع المحوّل الاتصال ويقول ذلك بوضوح بدلًا من الفشل
|
|
186
|
+
الصامت.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## البنية
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
index.js المحوّل: StreamChunk من الـ harness ←→ المحرّك
|
|
194
|
+
lib/engine.mjs المتصفح + الصفحة: كتابة، إرسال، بث، استقرار
|
|
195
|
+
lib/cdp.mjs عميل Chrome DevTools Protocol، بلا اعتماديات
|
|
196
|
+
lib/prompt.mjs يسطّح الرسائل + الأدوات في رسالة واحدة؛ يستعيد النداءات من الجواب
|
|
197
|
+
lib/savings.mjs ما وفّره مسار الويب، مسعّرًا مقابل الـ API
|
|
198
|
+
lib/i18n.mjs 51 لغة للوحة
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**لا اعتماديات.** Node 24 فيه `WebSocket` و`fetch` عامّان، وهذا كل ما يحتاجه CDP، لذا لا يغادر تدفّق الرموز عملية
|
|
202
|
+
المضيف أبدًا ولا توجد قفزة IPC لكل فرق.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## الدعم
|
|
207
|
+
|
|
208
|
+
Uncle Sam موجود لتتوقّف عن الدفع لكل رمز. إذا وفّر عليك مالًا وأردت أن يُبنى التالي على عتاد لا تنفد ذاكرته في
|
|
209
|
+
منتصف الطريق:
|
|
210
|
+
|
|
211
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
212
|
+
|
|
213
|
+
نجمة على المستودع أو تقرير خطأ مفيد يساويان الشيء نفسه.
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## الترخيص
|
|
218
|
+
|
|
219
|
+
**CC BY-NC-ND 4.0** — Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.
|
|
220
|
+
Copyright (c) 2026 Darren T. Weldon، منشور تحت اسم Operating Tag.
|
|
221
|
+
|
|
222
|
+
**كل الاتفاق في سطر واحد: ثبّته واستخدمه شخصيًا، مجانًا. لا تغيّره، لا تشاركه، لا تبعه، ولا تستخدمه في شركة.**
|
|
223
|
+
|
|
224
|
+
هذا ليس مفتوح المصدر، ولا يتظاهر بأنه كذلك.
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
يُسمح بالتثبيت والتشغيل · الاستخدام الشخصي غير التجاري
|
|
228
|
+
قراءة الشيفرة المصدرية لفهمها
|
|
229
|
+
|
|
230
|
+
لا يُسمح بالتعديل أو الاقتباس أو إنشاء عمل مشتق
|
|
231
|
+
بالنسخ أو التوزيع أو النشر أو المرآة أو
|
|
232
|
+
إتاحته لأي شخص آخر
|
|
233
|
+
برفعه إلى أي استضافة شيفرة أو سجل أو موقع أو منتدى أو محادثة
|
|
234
|
+
بيعه أو إعادة بيعه أو تأجيره أو تقاضي مال مقابله أو مقابل الوصول إليه
|
|
235
|
+
تضمينه في أي شيء تسلّمه لشخص آخر
|
|
236
|
+
استخدامه لأي غرض تجاري أو في سياق نشاط تجاري
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**المصدران الشرعيان الوحيدان هما هذا المستودع وحزمة npm
|
|
240
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** أي نسخة من مكان آخر
|
|
241
|
+
غير مرخّصة، مهما كان من قدّمها. وإذا رأيت هذا البرنامج معروضًا للبيع، فليس المؤلف من يبيعه.
|
|
242
|
+
|
|
243
|
+
**الاستخدام التجاري، وحق التعديل والتوزيع، متاحان بموجب ترخيص مكتوب منفصل.** اسأل Operating Tag وستحصل على جواب
|
|
244
|
+
واضح وسعر واضح.
|
|
245
|
+
|
|
246
|
+
ملف [LICENSE](LICENSE) هو المرجع، ويبدأ بالملخّص نفسه بإنجليزية بسيطة.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
Uncle Sam إضافة مستقلة. غير مرتبطة بـ DeepSeek، ولا تحظى بتأييدهم أو دعمهم.
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
@operatingtag/dsh-unclesam v1.3.0
|
|
254
|
+
المؤلف Operating Tag
|
|
255
|
+
الترخيص CC BY-NC-ND 4.0 — مجاني للاستخدام، لا للتغيير أو المشاركة أو البيع
|
|
256
|
+
```
|
package/README.az.md
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · [Svenska](README.sv.md) · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md) · [العربية](README.ar.md) · [Oʻzbekcha](README.uz.md) · **Azərbaycan** · [Български](README.bg.md) · [Hrvatski](README.hr.md) · [Қазақша](README.kk.md) · [ქართული](README.ka.md) · [नेपाली](README.ne.md) · [සිංහල](README.si.md) · [தமிழ்](README.ta.md) · [తెలుగు](README.te.md) · [मराठी](README.mr.md) · [বাংলা](README.bn.md) · [ខ្មែរ](README.km.md) · [Lietuvių](README.lt.md) · [Bahasa Melayu](README.ms.md) · [မြန်မာ](README.my.md) · [Norsk](README.no.md) · [Slovenčina](README.sk.md) · [Slovenščina](README.sl.md) · [Српски](README.sr.md) · [Kiswahili](README.sw.md) · [Filipino](README.tl.md) · [اردو](README.ur.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**DeepSeek Harness üçün ödənişli API əvəzinə öz brauzeriniz vasitəsilə, artıq sahib olduğunuz veb hesabda cavab verən provayder.**
|
|
6
|
+
|
|
7
|
+
**chat.deepseek.com-u real brauzerdə idarə edən DeepSeek Harness plagini — DeepSeek API-nin pulsuz alternativi. Öz hesabınızda söhbət, DeepThink və veb axtarış: API açarı yox, token üçün ödəniş yox.**
|
|
8
|
+
|
|
9
|
+
**☕ [Mənə bir qəhvə al](https://revolut.me/operatingtag)** — bir nəfər gecələr, heç bir maliyyələşdirmə olmadan yazır. Başqa gəlir modeli yoxdur. Bir ulduz və ya faydalı xəta hesabatı da eyni dəyərdədir.
|
|
10
|
+
|
|
11
|
+
> **Bu məhsul aktiv inkişafdadır. Xətaları gözləyin.**
|
|
12
|
+
>
|
|
13
|
+
> İşləyir, sürətlidir və həftələrlə hər gün istifadə olunur — lakin daim dəyişir, brauzer yolu isə xəbərdarlıq
|
|
14
|
+
> edilmədən dəyişən saytdan asılıdır. Bir şey pozularsa, ekran şəkli və versiya nömrəsi təsvirdən daha faydalıdır.
|
|
15
|
+
> Ona güvənirsinizsə, versiyanı bağlayın.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
provayder deepseek-web
|
|
19
|
+
modellər deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
20
|
+
xərc token başına sıfır — brauzerinizdə artıq açıq olan abunəlikdən istifadə edir
|
|
21
|
+
status inkişafda — xətaları gözləyin
|
|
22
|
+
ölçüldü ilk token ~1,9 s · əlavə ~0,6 s · tam dövrə ~2,5 s
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Veb yolunun cavabları **🔴 Uncle Sam** ilə imzalanır. Bu ad zarafatdır, iddia deyil: hansı yolun cavab verdiyini
|
|
26
|
+
göstərir, API cavablarında isə heç bir imza yoxdur. Sizə kimin cavab verdiyini həmişə bilirsiniz.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Nə qazandırır
|
|
31
|
+
|
|
32
|
+
API hər token üçün pul alır. Veb məhsulu almır. Bu plagin `deepseek-web`-i model provayderi kimi qeydiyyatdan keçirir
|
|
33
|
+
və hər çağırışa real brauzerdə `chat.deepseek.com`-u idarə edərək cavab verir — işi səhifə görür, sessiyanı brauzer
|
|
34
|
+
saxlayır və heç nə ölçülmür.
|
|
35
|
+
|
|
36
|
+
| | API yolu | Veb yolu |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| Xərc | token başına, əbədi | abunəlikdən başqa heç nə |
|
|
39
|
+
| Sürət | sürətli | dövrə başına ~2,5 s, ölçülmüş |
|
|
40
|
+
| Alət çağırışı | doğma və etibarlı | təqlid edilmiş, işləyir amma zəif |
|
|
41
|
+
| Asılıdır | API-dən | xəbərdarlıq edilmədən dəyişən saytdan |
|
|
42
|
+
|
|
43
|
+
**Hər iki yol quraşdırılmış qalır.** Model seçicisi keçiddir: susmaya görə ucuz yolu istifadə edin, işə etibarlı alətlər
|
|
44
|
+
lazım olduqda API-yə keçin.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Quraşdırma
|
|
49
|
+
|
|
50
|
+
Uncle Sam **DeepSeek Harness plagini**dir. Harness xaricində heç nə etmir, çünki model provayderi, hostda bir marşrut
|
|
51
|
+
və interfeysdə iki yer qeydiyyatdan keçirir.
|
|
52
|
+
|
|
53
|
+
**Tələblər**
|
|
54
|
+
|
|
55
|
+
| | |
|
|
56
|
+
|---|---|
|
|
57
|
+
| DeepSeek Harness | plagin meneceri olan istənilən yeni quruluş |
|
|
58
|
+
| Brauzer | Brave tövsiyə olunur; Brave yoxdursa Edge avtomatik istifadə olunur |
|
|
59
|
+
| Node | 22 və ya daha yeni |
|
|
60
|
+
|
|
61
|
+
**npm-dən**
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Bu repozitoridən**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
71
|
+
cd dsh-unclesam
|
|
72
|
+
pnpm install
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Sonra Harness-in yükləməsi üçün profilınıza paket sətrini əlavə edin:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
# cordis.patch.yml
|
|
79
|
+
- insert:
|
|
80
|
+
- id: dsh-unclesam
|
|
81
|
+
name: '@operatingtag/dsh-unclesam'
|
|
82
|
+
config:
|
|
83
|
+
port: 9222
|
|
84
|
+
defaultModel: deepseek-chat-search
|
|
85
|
+
autoMinimise: true
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Və ya qovluqdan:** Parametrlər → Plaginlər → yerli yoldan quraşdırın, `package.json` olan qovluğu göstərin.
|
|
89
|
+
|
|
90
|
+
### İlk işə salma
|
|
91
|
+
|
|
92
|
+
**Daxil ol / söhbəti aç** düyməsini basın. Brauzer açılır və chat.deepseek.com-a daxil olana qədər **görünən qalır**.
|
|
93
|
+
Sonra özü kiçilir və bir daha görməyəcəksiniz. Sessiya brauzer profilinizdə yaşayır, buna görə **plagin heç bir şifrə
|
|
94
|
+
saxlamır** — sızmağa heç nə yoxdur.
|
|
95
|
+
|
|
96
|
+
Sonra bunları görməlisiniz:
|
|
97
|
+
|
|
98
|
+
1. **Parametrlər → Uncle Sam** — status sətirləri və daxil ol düyməsi olan səhifə.
|
|
99
|
+
2. **Mesaj qutusunun altında** — `● DeepSeek Harness` və ya `● Uncle Sam`, dəyişmək üçün klikləyin.
|
|
100
|
+
3. **Model siyahısı** — API modellərinin yanında dörd `(web)` modeli.
|
|
101
|
+
|
|
102
|
+
### Silinməsi
|
|
103
|
+
|
|
104
|
+
Parametrlər → Plaginlər → Uncle Sam → Silin. Daxil olduğunuz brauzer profilinə xaricdə heç nə yazılmır.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## API / veb keçidi
|
|
109
|
+
|
|
110
|
+
**Model seçicisi keçidin özüdür.** İkinci idarəetmə yoxdur, çünki modeli də seçən ikinci idarəetmə bir qərar üçün iki
|
|
111
|
+
həqiqət mənbəyi olardı.
|
|
112
|
+
|
|
113
|
+
| Bu modeli seçin | Yol | DeepThink | Axtarış |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
| `DeepSeek Chat (web)` | brauzer | bağlı | bağlı |
|
|
116
|
+
| `DeepSeek Chat + Search (web)` | brauzer | bağlı | **açıq** |
|
|
117
|
+
| `DeepSeek Reasoner (web)` | brauzer | **açıq** | bağlı |
|
|
118
|
+
| `DeepSeek Reasoner + Search (web)` | brauzer | **açıq** | **açıq** |
|
|
119
|
+
| `(web)` olmayan istənilən model | API | — | — |
|
|
120
|
+
|
|
121
|
+
Model adının yanında **WEB** və ya **API** nişanı görünür ki, aktiv yol bir baxışda görünsün. Ad tanınmadıqda nişan
|
|
122
|
+
təxmin etmək əvəzinə heç nə göstərmir — səhv nişan heç olmamasından pisdir.
|
|
123
|
+
|
|
124
|
+
Seçiminiz yenidən başlatmalar arasında qalır. **DeepThink** düşünmə mərhələsidir; **Axtarış** ona canlı vebi oxumağa
|
|
125
|
+
imkan verir.
|
|
126
|
+
|
|
127
|
+
### Axtarış söhbətdə görünür
|
|
128
|
+
|
|
129
|
+
Axtarış modeli ilə bir dövrə **iki blok** yaradır — axtardığı sorğu, tapılan mənbələr və sonra onlardan istifadə edən
|
|
130
|
+
cavab:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Veb axtarışı — "Bu günün bir texnologiya başlığı nədir?"
|
|
134
|
+
Mənbələr (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
135
|
+
Keçidlər: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Səhifə daxildə yazdığı sorğunu açıqlamır, buna görə sitat gətirilən sorğu axtarışı başladan mesajdir. Mənbələr və
|
|
139
|
+
keçidlər cavab yerinə yetdikdən sonra səhifədən oxunur. Mənbələr yalnız sonda mövcud olduğu üçün **axtarışlı dövrələr
|
|
140
|
+
axıdılmaq əvəzinə toplanır**; adi dövrələr hələ də token-token axır.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Niyə brauzer, niyə onların HTTP API-si deyil
|
|
145
|
+
|
|
146
|
+
Açıq yol — `chat.deepseek.com`-un öz API-sini çağırmaq — sınandı və buraxıldı. Sayt hər mesajı iki qapıdan keçirir:
|
|
147
|
+
|
|
148
|
+
| Qapı | Mənası |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `/api/v0/chat/create_pow_challenge` | hər mesaja **iş sübutu** |
|
|
151
|
+
| `challenges.cloudflare.com/turnstile` | mənbədə bot qapısı |
|
|
152
|
+
|
|
153
|
+
Hər hansı birini yenidən qurmaq uduzulmuş oyundur: onlar qarışdırılmışdır, dəyişirlər və dəyişdikdə nasazlıq tam olaraq
|
|
154
|
+
şəbəkə nasazlığı kimi görünür. **Səhifə artıq öz sorğuları üçün hər ikisini həll edir.**
|
|
155
|
+
|
|
156
|
+
Buna görə adapter saytla heç vaxt HTTP danışmır. Səhifəni idarə edir, qalanı səhifə edir. Autentifikasiya, iş sübutu
|
|
157
|
+
və Turnstile artıq bizim problemimiz deyil və saytın özündən ayrı pozula bilməz.
|
|
158
|
+
|
|
159
|
+
**Təsdiqləndi:** sayta adi `HEAD` `403` qaytarır; brauzer yolu cavablar qaytarır.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Məhdudiyyətlər, dürüst deyilmiş
|
|
164
|
+
|
|
165
|
+
**Alət çağırışı təqlid edilmişdir.** Veb söhbətdə alətlər üçün struktur kanal yoxdur: alətlər promptda təsvir edilir və
|
|
166
|
+
çağırış cavabdan JSON obyekti çıxarmaqla bərpa olunur. İşləyir — təsdiqləndi — lakin doğma çağırışdan zəifdir: təlimata
|
|
167
|
+
məhəl qoymayan model nəsrlə cavab verir və Harness həmin dövrədə heç bir alət istifadəsi görmür. **Ağır agent işi üçün
|
|
168
|
+
API yolu daha etibarlıdır.** Veb yolu söhbət, uzun cavablar, subagentlər, sıxlaşdırma və modelin veb model olması vacib
|
|
169
|
+
olan hər dövrə üçün ən yaxşıdır.
|
|
170
|
+
|
|
171
|
+
**O, sizin nəzarət etmədiyiniz saytdan asılıdır.** Səhifə formasını dəyişdikdə plagin də onunla dəyişməlidir. Bu, bu
|
|
172
|
+
səhifənin başındakı inkişaf xəbərdarlığıdır, rəsmilik deyil.
|
|
173
|
+
|
|
174
|
+
**O, DeepSeek ilə bağlı deyil.** Onlar tərəfindən təsdiqlənməyib və dəstəklənmir, və sizə onların xidmətində heç bir hüquq
|
|
175
|
+
vermir. Həmin xidmətdən istifadəniz onların şərtləri ilə tənzimlənir.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Konfiqurasiya
|
|
180
|
+
|
|
181
|
+
`cordis.patch.yml` bunları təyin edir:
|
|
182
|
+
|
|
183
|
+
| açar | susmaya görə | mənası |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `port` | `9222` | brauzerin sazlama portu |
|
|
186
|
+
| `defaultModel` | `deepseek-chat-search` | çağırış model göstərmədikdə istifadə olunur |
|
|
187
|
+
| `showBrowser` | `true` | iş zamanı pəncərənin görünüb-görünməməsi |
|
|
188
|
+
|
|
189
|
+
Brauzerdə `chat.deepseek.com`-a daxil olunmuş sessiya olmalıdır. İlk çağırış port hələ açıq deyilsə Braveni **Default**
|
|
190
|
+
profili ilə başladır. Brave artıq *sazlama portu olmadan* işləyirsə, adapter qoşula bilmir və səssiz uğursuzluq yerinə
|
|
191
|
+
bunu aydın deyir.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Quruluş
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
index.js adapter: Harness StreamChunk ←→ mühərrik
|
|
199
|
+
lib/engine.mjs brauzer + səhifə: yaz, göndər, axıt, yerinə yetməsinə imkan ver
|
|
200
|
+
lib/cdp.mjs Chrome DevTools Protocol müştərisi, asılılıqlarsız
|
|
201
|
+
lib/prompt.mjs mesajları + alətləri bir mesaja düzləyir; çağırışları cavabdan çıxarır
|
|
202
|
+
lib/savings.mjs veb yolunun nə qazandırdığı, API qiyməti ilə hesablanmış
|
|
203
|
+
lib/i18n.mjs panel üçün 51 dil
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Asılılıq yoxdur.** Node 24-də qlobal `WebSocket` və `fetch` var, CDP-yə lazım olan bütün bunlardır, buna görə token axını
|
|
207
|
+
heç vaxt host prosesini tərk etmir və hər delta üçün IPC sıçrayışı yoxdur.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Dəstək
|
|
212
|
+
|
|
213
|
+
Uncle Sam token üçün ödəməyi dayandırmanız üçün mövcuddur. Əgər sizə pul qazandırdısa və növbətinin yolda yaddaşı
|
|
214
|
+
tükənməyən aparatda qurulmasını istəyirsinizsə:
|
|
215
|
+
|
|
216
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
217
|
+
|
|
218
|
+
Repozitoriyaya bir ulduz və ya faydalı xəta hesabatı da eyni dəyərdədir.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Lisenziya
|
|
223
|
+
|
|
224
|
+
**CC BY-NC-ND 4.0** — Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.
|
|
225
|
+
Copyright (c) 2026 Darren T. Weldon, Operating Tag adı ilə nəşr olunmuş.
|
|
226
|
+
|
|
227
|
+
**Bütün razılaşma bir sətirdə: şəxsən quraşdırın və pulsuz istifadə edin. Dəyişdirməyin, paylaşmayın, satmayın və
|
|
228
|
+
şirkətdə istifadə etməyin.**
|
|
229
|
+
|
|
230
|
+
Bu açıq mənbə deyil və özünü belə göstərmir.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
edə bilərsiniz quraşdırıb işə salmaq · şəxsən, qeyri-kommersiya məqsədi ilə istifadə etmək
|
|
234
|
+
başa düşmək üçün mənbə kodunu oxumaq
|
|
235
|
+
|
|
236
|
+
edə bilməzsiniz dəyişdirmək, uyğunlaşdırmaq və ya törəmə əsər yaratmaq
|
|
237
|
+
surətini çıxarmaq, yaymaq, nəşr etmək, güzgü yaratmaq və ya
|
|
238
|
+
hər hansı başqası üçün əlçatan etmək
|
|
239
|
+
hər hansı kod hostinqinə, reyestrə, sayta, foruma və ya çata yükləmək
|
|
240
|
+
satmaq, yenidən satmaq, icarəyə vermək və ya onun və ya ona girişin pulunu almaq
|
|
241
|
+
başqasına verdiyiniz hər hansı bir şeyə daxil etmək
|
|
242
|
+
hər hansı kommersiya məqsədi ilə və ya biznes fəaliyyəti çərçivəsində istifadə etmək
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Yeganə iki qanuni mənbə bu repozitoriya və npm paketidir:
|
|
246
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Başqa yerdən gələn surət,
|
|
247
|
+
kim verdiyindən asılı olmayaraq, lisenziyalı deyil. Bu proqramı satışda görsəniz, satan müəllif deyil.
|
|
248
|
+
|
|
249
|
+
**Kommersiya istifadəsi, habelə dəyişdirmə və yayma hüququ ayrı yazılı lisenziya ilə mövcuddur.** Operating Tag-dan
|
|
250
|
+
soruşun — aydın cavab və aydın qiymət alacaqsınız.
|
|
251
|
+
|
|
252
|
+
[LICENSE](LICENSE) faylı qüvvədədir və o, eyni xülasə ilə sadə ingilis dilində başlayır.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
Uncle Sam müstəqil plagindir. DeepSeek ilə bağlı deyil, onlar tərəfindən təsdiqlənməyib və dəstəklənmir.
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
@operatingtag/dsh-unclesam v1.3.0
|
|
260
|
+
Müəllif Operating Tag
|
|
261
|
+
Lisenziya CC BY-NC-ND 4.0 — istifadə üçün pulsuz, dəyişdirmək, paylaşmaq və ya satmaq üçün deyil
|
|
262
|
+
```
|