diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..35f97ea
--- /dev/null
+++ b/404.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+ 404
+
+
diff --git a/CNAME b/CNAME
new file mode 100644
index 0000000..3b2d646
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+taymyr.io
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-144x144.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-144x144.png
new file mode 100644
index 0000000..2882cbe
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-144x144.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-192x192.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-192x192.png
new file mode 100644
index 0000000..763ca21
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-192x192.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-256x256.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-256x256.png
new file mode 100644
index 0000000..fee8030
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-256x256.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-36x36.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-36x36.png
new file mode 100644
index 0000000..74ef403
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-36x36.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-384x384.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-384x384.png
new file mode 100644
index 0000000..b0c1689
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-384x384.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-48x48.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-48x48.png
new file mode 100644
index 0000000..0048650
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-48x48.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-512x512.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-512x512.png
new file mode 100644
index 0000000..7e91d33
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-512x512.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-72x72.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-72x72.png
new file mode 100644
index 0000000..1e222a6
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-72x72.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-96x96.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-96x96.png
new file mode 100644
index 0000000..a123a52
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-96x96.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-1024x1024.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-1024x1024.png
new file mode 100644
index 0000000..d426354
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-1024x1024.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-114x114.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-114x114.png
new file mode 100644
index 0000000..f4dc938
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-114x114.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-120x120.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-120x120.png
new file mode 100644
index 0000000..1dfc2a0
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-120x120.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-144x144.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-144x144.png
new file mode 100644
index 0000000..346d359
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-144x144.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-152x152.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-152x152.png
new file mode 100644
index 0000000..a995565
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-152x152.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-167x167.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-167x167.png
new file mode 100644
index 0000000..bb30108
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-167x167.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-180x180.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-180x180.png
new file mode 100644
index 0000000..a6eff29
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-180x180.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-57x57.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-57x57.png
new file mode 100644
index 0000000..a2e2a31
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-57x57.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-60x60.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-60x60.png
new file mode 100644
index 0000000..8ae0db2
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-60x60.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-72x72.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-72x72.png
new file mode 100644
index 0000000..3f402d0
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-72x72.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-76x76.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-76x76.png
new file mode 100644
index 0000000..2ef2566
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-76x76.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-precomposed.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..a6eff29
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-precomposed.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon.png
new file mode 100644
index 0000000..a6eff29
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1125x2436.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1125x2436.png
new file mode 100644
index 0000000..d924298
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1125x2436.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1136x640.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1136x640.png
new file mode 100644
index 0000000..d0e634b
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1136x640.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1170x2532.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1170x2532.png
new file mode 100644
index 0000000..1d0e489
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1170x2532.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2208.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2208.png
new file mode 100644
index 0000000..6741af3
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2208.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2688.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2688.png
new file mode 100644
index 0000000..4233459
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2688.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1284x2778.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1284x2778.png
new file mode 100644
index 0000000..77ab346
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1284x2778.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1334x750.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1334x750.png
new file mode 100644
index 0000000..87ed533
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1334x750.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1536x2048.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1536x2048.png
new file mode 100644
index 0000000..44e9633
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1536x2048.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1620x2160.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1620x2160.png
new file mode 100644
index 0000000..94408e1
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1620x2160.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2224.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2224.png
new file mode 100644
index 0000000..d31346f
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2224.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2388.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2388.png
new file mode 100644
index 0000000..bc1d85e
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2388.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1792x828.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1792x828.png
new file mode 100644
index 0000000..defbac8
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1792x828.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x1536.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x1536.png
new file mode 100644
index 0000000..19be6de
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x1536.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x2732.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x2732.png
new file mode 100644
index 0000000..1bdcc50
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x2732.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2160x1620.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2160x1620.png
new file mode 100644
index 0000000..c7e46b1
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2160x1620.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2208x1242.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2208x1242.png
new file mode 100644
index 0000000..0612514
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2208x1242.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2224x1668.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2224x1668.png
new file mode 100644
index 0000000..811d215
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2224x1668.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2388x1668.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2388x1668.png
new file mode 100644
index 0000000..7dd6988
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2388x1668.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2436x1125.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2436x1125.png
new file mode 100644
index 0000000..f135f6f
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2436x1125.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2532x1170.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2532x1170.png
new file mode 100644
index 0000000..a0ad6bd
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2532x1170.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2688x1242.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2688x1242.png
new file mode 100644
index 0000000..242d3e8
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2688x1242.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2732x2048.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2732x2048.png
new file mode 100644
index 0000000..3243178
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2732x2048.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2778x1284.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2778x1284.png
new file mode 100644
index 0000000..d055341
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2778x1284.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-640x1136.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-640x1136.png
new file mode 100644
index 0000000..1411158
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-640x1136.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-750x1334.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-750x1334.png
new file mode 100644
index 0000000..5efe7d0
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-750x1334.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-828x1792.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-828x1792.png
new file mode 100644
index 0000000..0e21a8c
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-828x1792.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/browserconfig.xml b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/browserconfig.xml
new file mode 100644
index 0000000..c0d71f4
--- /dev/null
+++ b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #fff
+
+
+
\ No newline at end of file
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-16x16.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-16x16.png
new file mode 100644
index 0000000..79d8ac7
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-16x16.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-32x32.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-32x32.png
new file mode 100644
index 0000000..2cac7d7
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-32x32.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-48x48.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-48x48.png
new file mode 100644
index 0000000..0048650
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-48x48.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon.ico b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon.ico
new file mode 100644
index 0000000..4e15439
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon.ico differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/manifest.webmanifest b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/manifest.webmanifest
new file mode 100644
index 0000000..37f456f
--- /dev/null
+++ b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/manifest.webmanifest
@@ -0,0 +1,68 @@
+{
+ "name": "Taymyr",
+ "short_name": "Taymyr",
+ "description": "Taymyr Antora UI",
+ "dir": "auto",
+ "lang": "en-US",
+ "display": "standalone",
+ "orientation": "any",
+ "start_url": "/?homescreen=1",
+ "background_color": "#fff",
+ "theme_color": "#fff",
+ "icons": [
+ {
+ "src": "android-chrome-36x36.png",
+ "sizes": "36x36",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-48x48.png",
+ "sizes": "48x48",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-72x72.png",
+ "sizes": "72x72",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-96x96.png",
+ "sizes": "96x96",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-144x144.png",
+ "sizes": "144x144",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-256x256.png",
+ "sizes": "256x256",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-384x384.png",
+ "sizes": "384x384",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "any"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-144x144.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-144x144.png
new file mode 100644
index 0000000..2882cbe
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-144x144.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-150x150.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-150x150.png
new file mode 100644
index 0000000..f688119
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-150x150.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x150.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x150.png
new file mode 100644
index 0000000..868942c
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x150.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x310.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x310.png
new file mode 100644
index 0000000..6c91449
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x310.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-70x70.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-70x70.png
new file mode 100644
index 0000000..9dc331e
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-70x70.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-50x50.png b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-50x50.png
new file mode 100644
index 0000000..7a7f167
Binary files /dev/null and b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-50x50.png differ
diff --git a/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-manifest.json b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-manifest.json
new file mode 100644
index 0000000..53053f8
--- /dev/null
+++ b/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-manifest.json
@@ -0,0 +1,9 @@
+{
+ "version": "1.0.0",
+ "api_version": 1,
+ "layout": {
+ "logo": "yandex-browser-50x50.png",
+ "color": "#fff",
+ "show_title": true
+ }
+}
\ No newline at end of file
diff --git a/_/css/search.css b/_/css/search.css
new file mode 100644
index 0000000..d384533
--- /dev/null
+++ b/_/css/search.css
@@ -0,0 +1,123 @@
+.search-result-dropdown-menu {
+ position: absolute;
+ z-index: 100;
+ display: block;
+ right: 0;
+ left: inherit;
+ top: 100%;
+ border-radius: 4px;
+ margin: 6px 0 0;
+ padding: 0;
+ text-align: left;
+ height: auto;
+ background: transparent;
+ border: none;
+ max-width: 600px;
+ min-width: 500px;
+ box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), 0 2px 3px 0 rgba(0, 0, 0, 0.1);
+}
+
+@media screen and (max-width: 768px) {
+ .search-result-dropdown-menu {
+ min-width: calc(100vw - 3.75rem);
+ }
+}
+
+.search-result-dataset {
+ position: relative;
+ border: 1px solid #d9d9d9;
+ background: #fff;
+ border-radius: 4px;
+ overflow: auto;
+ padding: 8px;
+ max-height: calc(100vh - 5.25rem);
+ line-height: 1.5;
+}
+
+.search-result-item {
+ display: flex;
+ margin-top: 0.5rem;
+}
+
+.search-result-component-header {
+ color: #1e1e1e;
+ border-bottom: 1px solid #ddd;
+ margin-left: 0.5em;
+ margin-right: 0.5em;
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+}
+
+.search-result-document-title {
+ width: 33%;
+ border-right: 1px solid #ddd;
+ color: #02060c;
+ font-weight: 500;
+ font-size: 0.8rem;
+ padding: 0.5rem 0.5rem 0.5rem 0;
+ text-align: right;
+ position: relative;
+ word-wrap: break-word;
+}
+
+.search-result-document-hit {
+ flex: 1;
+ font-size: 0.75rem;
+ color: #63676d;
+}
+
+.search-result-document-hit > a {
+ color: inherit;
+ display: block;
+ padding: 0.55rem 0.25rem 0.55rem 0.75rem;
+}
+
+.search-result-document-hit > a:hover {
+ background-color: rgba(69, 142, 225, 0.05);
+}
+
+.search-result-document-hit .search-result-highlight {
+ color: #174d8c;
+ background: rgba(143, 187, 237, 0.1);
+ padding: 0.1em 0.05em;
+ font-weight: 500;
+}
+
+.search-result-document-hit .search-result-section-title {
+ color: #303030;
+ font-weight: 500;
+ font-size: 1.05em;
+ margin-bottom: 0.25em;
+}
+
+#search-input {
+ padding: 0.25em;
+}
+
+#search-input:focus {
+ outline: none;
+}
+
+#search-field {
+ display: flex;
+}
+
+#search-field .filter {
+ background: #fff linear-gradient(180deg,#e1e1e1 0,#e1e1e1) no-repeat 0/1px 50%;
+ border: 1px solid #e1e1e1;
+ border-left: none;
+ border-radius: 0 0.1em 0.1em 0;
+ color: #5d5d5d;
+ cursor: pointer;
+ font-size: .875em;
+ display: flex;
+ align-items: center;
+ padding: 0 0.5rem;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#search-field.has-filter > input {
+ border-right: none;
+ border-radius: 0.1em 0 0 0.1em;
+}
diff --git a/_/js/search-ui.js b/_/js/search-ui.js
new file mode 100644
index 0000000..53a8dde
--- /dev/null
+++ b/_/js/search-ui.js
@@ -0,0 +1,448 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.antoraSearch = {}));
+})(this, (function (exports) { 'use strict';
+
+ function buildHighlightedText (text, positions, snippetLength) {
+ const textLength = text.length;
+ const validPositions = positions
+ .filter((position) => position.length > 0 && position.start + position.length <= textLength);
+
+ if (validPositions.length === 0) {
+ return [
+ {
+ type: 'text',
+ text: text.slice(0, snippetLength >= textLength ? textLength : snippetLength) + (snippetLength < textLength ? '...' : ''),
+ },
+ ]
+ }
+
+ const orderedPositions = validPositions.sort((p1, p2) => p1.start - p2.start);
+ const range = {
+ start: 0,
+ end: textLength,
+ };
+ const firstPosition = orderedPositions[0];
+ if (snippetLength && text.length > snippetLength) {
+ const firstPositionStart = firstPosition.start;
+ const firstPositionLength = firstPosition.length;
+ const firstPositionEnd = firstPositionStart + firstPositionLength;
+
+ range.start = firstPositionStart - snippetLength < 0 ? 0 : firstPositionStart - snippetLength;
+ range.end = firstPositionEnd + snippetLength > textLength ? textLength : firstPositionEnd + snippetLength;
+ }
+ const nodes = [];
+ if (firstPosition.start > 0) {
+ nodes.push({
+ type: 'text',
+ text: (range.start > 0 ? '...' : '') + text.slice(range.start, firstPosition.start),
+ });
+ }
+ let lastEndPosition = 0;
+ const positionsWithinRange = orderedPositions
+ .filter((position) => position.start >= range.start && position.start + position.length <= range.end);
+
+ for (const position of positionsWithinRange) {
+ const start = position.start;
+ const length = position.length;
+ const end = start + length;
+ if (lastEndPosition > 0) {
+ // create text Node from the last end position to the start of the current position
+ nodes.push({
+ type: 'text',
+ text: text.slice(lastEndPosition, start),
+ });
+ }
+ nodes.push({
+ type: 'mark',
+ text: text.slice(start, end),
+ });
+ lastEndPosition = end;
+ }
+ if (lastEndPosition < range.end) {
+ nodes.push({
+ type: 'text',
+ text: text.slice(lastEndPosition, range.end) + (range.end < textLength ? '...' : ''),
+ });
+ }
+
+ return nodes
+ }
+
+ /**
+ * Taken and adapted from: https://github.com/olivernn/lunr.js/blob/aa5a878f62a6bba1e8e5b95714899e17e8150b38/lib/tokenizer.js#L24-L67
+ * @param lunr
+ * @param text
+ * @param term
+ * @return {{start: number, length: number}}
+ */
+ function findTermPosition (lunr, term, text) {
+ const str = text.toLowerCase();
+ const len = str.length;
+
+ for (let sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {
+ const char = str.charAt(sliceEnd);
+ const sliceLength = sliceEnd - sliceStart;
+
+ if ((char.match(lunr.tokenizer.separator) || sliceEnd === len)) {
+ if (sliceLength > 0) {
+ const value = str.slice(sliceStart, sliceEnd);
+ // QUESTION: if we get an exact match without running the pipeline should we stop?
+ if (value.includes(term)) {
+ // returns the first match
+ return {
+ start: sliceStart,
+ length: value.length,
+ }
+ }
+ }
+ sliceStart = sliceEnd + 1;
+ }
+ }
+
+ // not found!
+ return {
+ start: 0,
+ length: 0,
+ }
+ }
+
+ /* global CustomEvent, globalThis */
+
+ const config = document.getElementById('search-ui-script').dataset;
+ const snippetLength = parseInt(config.snippetLength || 100, 10);
+ const siteRootPath = config.siteRootPath || '';
+ appendStylesheet(config.stylesheet);
+ const searchInput = document.getElementById('search-input');
+ const searchResultContainer = document.createElement('div');
+ searchResultContainer.classList.add('search-result-dropdown-menu');
+ searchInput.parentNode.appendChild(searchResultContainer);
+ const facetFilterInput = document.querySelector('#search-field input[type=checkbox][data-facet-filter]');
+
+ function appendStylesheet (href) {
+ if (!href) return
+ const link = document.createElement('link');
+ link.rel = 'stylesheet';
+ link.href = href;
+ document.head.appendChild(link);
+ }
+
+ function highlightPageTitle (title, terms) {
+ const positions = getTermPosition(title, terms);
+ return buildHighlightedText(title, positions, snippetLength)
+ }
+
+ function highlightSectionTitle (sectionTitle, terms) {
+ if (sectionTitle) {
+ const text = sectionTitle.text;
+ const positions = getTermPosition(text, terms);
+ return buildHighlightedText(text, positions, snippetLength)
+ }
+ return []
+ }
+
+ function highlightText (doc, terms) {
+ const text = doc.text;
+ const positions = getTermPosition(text, terms);
+ return buildHighlightedText(text, positions, snippetLength)
+ }
+
+ function getTermPosition (text, terms) {
+ const positions = terms
+ .map((term) => findTermPosition(globalThis.lunr, term, text))
+ .filter((position) => position.length > 0)
+ .sort((p1, p2) => p1.start - p2.start);
+
+ if (positions.length === 0) {
+ return []
+ }
+ return positions
+ }
+
+ function highlightHit (searchMetadata, sectionTitle, doc) {
+ const terms = {};
+ for (const term in searchMetadata) {
+ const fields = searchMetadata[term];
+ for (const field in fields) {
+ terms[field] = [...(terms[field] || []), term];
+ }
+ }
+ return {
+ pageTitleNodes: highlightPageTitle(doc.title, terms.title || []),
+ sectionTitleNodes: highlightSectionTitle(sectionTitle, terms.title || []),
+ pageContentNodes: highlightText(doc, terms.text || []),
+ }
+ }
+
+ function createSearchResult (result, store, searchResultDataset) {
+ let currentComponent;
+ result.forEach(function (item) {
+ const ids = item.ref.split('-');
+ const docId = ids[0];
+ const doc = store.documents[docId];
+ let sectionTitle;
+ if (ids.length > 1) {
+ const titleId = ids[1];
+ sectionTitle = doc.titles.filter(function (item) {
+ return String(item.id) === titleId
+ })[0];
+ }
+ const metadata = item.matchData.metadata;
+ const highlightingResult = highlightHit(metadata, sectionTitle, doc);
+ const componentVersion = store.componentVersions[`${doc.component}/${doc.version}`];
+ if (componentVersion !== undefined && currentComponent !== componentVersion) {
+ const searchResultComponentHeader = document.createElement('div');
+ searchResultComponentHeader.classList.add('search-result-component-header');
+ const { title, displayVersion } = componentVersion;
+ const componentVersionText = `${title}${doc.version && displayVersion ? ` ${displayVersion}` : ''}`;
+ searchResultComponentHeader.appendChild(document.createTextNode(componentVersionText));
+ searchResultDataset.appendChild(searchResultComponentHeader);
+ currentComponent = componentVersion;
+ }
+ searchResultDataset.appendChild(createSearchResultItem(doc, sectionTitle, item, highlightingResult));
+ });
+ }
+
+ function createSearchResultItem (doc, sectionTitle, item, highlightingResult) {
+ const documentTitle = document.createElement('div');
+ documentTitle.classList.add('search-result-document-title');
+ highlightingResult.pageTitleNodes.forEach(function (node) {
+ let element;
+ if (node.type === 'text') {
+ element = document.createTextNode(node.text);
+ } else {
+ element = document.createElement('span');
+ element.classList.add('search-result-highlight');
+ element.innerText = node.text;
+ }
+ documentTitle.appendChild(element);
+ });
+ const documentHit = document.createElement('div');
+ documentHit.classList.add('search-result-document-hit');
+ const documentHitLink = document.createElement('a');
+ documentHitLink.href = siteRootPath + doc.url + (sectionTitle ? '#' + sectionTitle.hash : '');
+ documentHit.appendChild(documentHitLink);
+ if (highlightingResult.sectionTitleNodes.length > 0) {
+ const documentSectionTitle = document.createElement('div');
+ documentSectionTitle.classList.add('search-result-section-title');
+ documentHitLink.appendChild(documentSectionTitle);
+ highlightingResult.sectionTitleNodes.forEach(function (node) {
+ let element;
+ if (node.type === 'text') {
+ element = document.createTextNode(node.text);
+ } else {
+ element = document.createElement('span');
+ element.classList.add('search-result-highlight');
+ element.innerText = node.text;
+ }
+ documentSectionTitle.appendChild(element);
+ });
+ }
+ highlightingResult.pageContentNodes.forEach(function (node) {
+ let element;
+ if (node.type === 'text') {
+ element = document.createTextNode(node.text);
+ } else {
+ element = document.createElement('span');
+ element.classList.add('search-result-highlight');
+ element.innerText = node.text;
+ }
+ documentHitLink.appendChild(element);
+ });
+ const searchResultItem = document.createElement('div');
+ searchResultItem.classList.add('search-result-item');
+ searchResultItem.appendChild(documentTitle);
+ searchResultItem.appendChild(documentHit);
+ searchResultItem.addEventListener('mousedown', function (e) {
+ e.preventDefault();
+ });
+ return searchResultItem
+ }
+
+ function createNoResult (text) {
+ const searchResultItem = document.createElement('div');
+ searchResultItem.classList.add('search-result-item');
+ const documentHit = document.createElement('div');
+ documentHit.classList.add('search-result-document-hit');
+ const message = document.createElement('strong');
+ message.innerText = 'No results found for query "' + text + '"';
+ documentHit.appendChild(message);
+ searchResultItem.appendChild(documentHit);
+ return searchResultItem
+ }
+
+ function clearSearchResults (reset) {
+ if (reset === true) searchInput.value = '';
+ searchResultContainer.innerHTML = '';
+ }
+
+ function filter (result, documents) {
+ const facetFilter = facetFilterInput && facetFilterInput.checked && facetFilterInput.dataset.facetFilter;
+ if (facetFilter) {
+ const [field, value] = facetFilter.split(':');
+ return result.filter((item) => {
+ const ids = item.ref.split('-');
+ const docId = ids[0];
+ const doc = documents[docId];
+ return field in doc && doc[field] === value
+ })
+ }
+ return result
+ }
+
+ function search (index, documents, queryString) {
+ // execute an exact match search
+ let query;
+ let result = filter(
+ index.query(function (lunrQuery) {
+ const parser = new globalThis.lunr.QueryParser(queryString, lunrQuery);
+ parser.parse();
+ query = lunrQuery;
+ }),
+ documents
+ );
+ if (result.length > 0) {
+ return result
+ }
+ // no result, use a begins with search
+ result = filter(
+ index.query(function (lunrQuery) {
+ lunrQuery.clauses = query.clauses.map((clause) => {
+ if (clause.presence !== globalThis.lunr.Query.presence.PROHIBITED) {
+ clause.term = clause.term + '*';
+ clause.wildcard = globalThis.lunr.Query.wildcard.TRAILING;
+ clause.usePipeline = false;
+ }
+ return clause
+ });
+ }),
+ documents
+ );
+ if (result.length > 0) {
+ return result
+ }
+ // no result, use a contains search
+ result = filter(
+ index.query(function (lunrQuery) {
+ lunrQuery.clauses = query.clauses.map((clause) => {
+ if (clause.presence !== globalThis.lunr.Query.presence.PROHIBITED) {
+ clause.term = '*' + clause.term + '*';
+ clause.wildcard = globalThis.lunr.Query.wildcard.LEADING | globalThis.lunr.Query.wildcard.TRAILING;
+ clause.usePipeline = false;
+ }
+ return clause
+ });
+ }),
+ documents
+ );
+ return result
+ }
+
+ function searchIndex (index, store, text) {
+ clearSearchResults(false);
+ if (text.trim() === '') {
+ return
+ }
+ const result = search(index, store.documents, text);
+ const searchResultDataset = document.createElement('div');
+ searchResultDataset.classList.add('search-result-dataset');
+ searchResultContainer.appendChild(searchResultDataset);
+ if (result.length > 0) {
+ createSearchResult(result, store, searchResultDataset);
+ } else {
+ searchResultDataset.appendChild(createNoResult(text));
+ }
+ }
+
+ function confineEvent (e) {
+ e.stopPropagation();
+ }
+
+ function debounce (func, wait, immediate) {
+ let timeout;
+ return function () {
+ const context = this;
+ const args = arguments;
+ const later = function () {
+ timeout = null;
+ if (!immediate) func.apply(context, args);
+ };
+ const callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, wait);
+ if (callNow) func.apply(context, args);
+ }
+ }
+
+ function enableSearchInput (enabled) {
+ if (facetFilterInput) {
+ facetFilterInput.disabled = !enabled;
+ }
+ searchInput.disabled = !enabled;
+ searchInput.title = enabled ? '' : 'Loading index...';
+ }
+
+ function isClosed () {
+ return searchResultContainer.childElementCount === 0
+ }
+
+ function executeSearch (index) {
+ const debug = 'URLSearchParams' in globalThis && new URLSearchParams(globalThis.location.search).has('lunr-debug');
+ const query = searchInput.value;
+ try {
+ if (!query) return clearSearchResults()
+ searchIndex(index.index, index.store, query);
+ } catch (err) {
+ if (err instanceof globalThis.lunr.QueryParseError) {
+ if (debug) {
+ console.debug('Invalid search query: ' + query + ' (' + err.message + ')');
+ }
+ } else {
+ console.error('Something went wrong while searching', err);
+ }
+ }
+ }
+
+ function toggleFilter (e, index) {
+ searchInput.focus();
+ if (!isClosed()) {
+ executeSearch(index);
+ }
+ }
+
+ function initSearch (lunr, data) {
+ const start = performance.now();
+ const index = { index: lunr.Index.load(data.index), store: data.store };
+ enableSearchInput(true);
+ searchInput.dispatchEvent(
+ new CustomEvent('loadedindex', {
+ detail: {
+ took: performance.now() - start,
+ },
+ })
+ );
+ searchInput.addEventListener(
+ 'keydown',
+ debounce(function (e) {
+ if (e.key === 'Escape' || e.key === 'Esc') return clearSearchResults(true)
+ executeSearch(index);
+ }, 100)
+ );
+ searchInput.addEventListener('click', confineEvent);
+ searchResultContainer.addEventListener('click', confineEvent);
+ if (facetFilterInput) {
+ facetFilterInput.parentElement.addEventListener('click', confineEvent);
+ facetFilterInput.addEventListener('change', (e) => toggleFilter(e, index));
+ }
+ document.documentElement.addEventListener('click', clearSearchResults);
+ }
+
+ // disable the search input until the index is loaded
+ enableSearchInput(false);
+
+ exports.initSearch = initSearch;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
diff --git a/_/js/vendor/lunr.js b/_/js/vendor/lunr.js
new file mode 100644
index 0000000..cdc94cd
--- /dev/null
+++ b/_/js/vendor/lunr.js
@@ -0,0 +1,6 @@
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
+!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}();
diff --git a/_/main.js b/_/main.js
new file mode 100644
index 0000000..e69de29
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..1c5bdd5
--- /dev/null
+++ b/index.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/ru/404.html b/ru/404.html
new file mode 100644
index 0000000..fef174d
--- /dev/null
+++ b/ru/404.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+ 404
+
+
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-144x144.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-144x144.png
new file mode 100644
index 0000000..2882cbe
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-144x144.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-192x192.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-192x192.png
new file mode 100644
index 0000000..763ca21
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-192x192.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-256x256.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-256x256.png
new file mode 100644
index 0000000..fee8030
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-256x256.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-36x36.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-36x36.png
new file mode 100644
index 0000000..74ef403
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-36x36.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-384x384.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-384x384.png
new file mode 100644
index 0000000..b0c1689
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-384x384.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-48x48.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-48x48.png
new file mode 100644
index 0000000..0048650
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-48x48.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-512x512.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-512x512.png
new file mode 100644
index 0000000..7e91d33
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-512x512.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-72x72.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-72x72.png
new file mode 100644
index 0000000..1e222a6
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-72x72.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-96x96.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-96x96.png
new file mode 100644
index 0000000..a123a52
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/android-chrome-96x96.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-1024x1024.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-1024x1024.png
new file mode 100644
index 0000000..d426354
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-1024x1024.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-114x114.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-114x114.png
new file mode 100644
index 0000000..f4dc938
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-114x114.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-120x120.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-120x120.png
new file mode 100644
index 0000000..1dfc2a0
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-120x120.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-144x144.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-144x144.png
new file mode 100644
index 0000000..346d359
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-144x144.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-152x152.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-152x152.png
new file mode 100644
index 0000000..a995565
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-152x152.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-167x167.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-167x167.png
new file mode 100644
index 0000000..bb30108
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-167x167.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-180x180.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-180x180.png
new file mode 100644
index 0000000..a6eff29
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-180x180.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-57x57.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-57x57.png
new file mode 100644
index 0000000..a2e2a31
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-57x57.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-60x60.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-60x60.png
new file mode 100644
index 0000000..8ae0db2
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-60x60.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-72x72.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-72x72.png
new file mode 100644
index 0000000..3f402d0
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-72x72.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-76x76.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-76x76.png
new file mode 100644
index 0000000..2ef2566
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-76x76.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-precomposed.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..a6eff29
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon-precomposed.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon.png
new file mode 100644
index 0000000..a6eff29
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-icon.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1125x2436.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1125x2436.png
new file mode 100644
index 0000000..d924298
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1125x2436.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1136x640.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1136x640.png
new file mode 100644
index 0000000..d0e634b
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1136x640.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1170x2532.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1170x2532.png
new file mode 100644
index 0000000..1d0e489
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1170x2532.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2208.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2208.png
new file mode 100644
index 0000000..6741af3
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2208.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2688.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2688.png
new file mode 100644
index 0000000..4233459
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1242x2688.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1284x2778.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1284x2778.png
new file mode 100644
index 0000000..77ab346
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1284x2778.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1334x750.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1334x750.png
new file mode 100644
index 0000000..87ed533
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1334x750.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1536x2048.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1536x2048.png
new file mode 100644
index 0000000..44e9633
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1536x2048.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1620x2160.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1620x2160.png
new file mode 100644
index 0000000..94408e1
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1620x2160.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2224.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2224.png
new file mode 100644
index 0000000..d31346f
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2224.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2388.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2388.png
new file mode 100644
index 0000000..bc1d85e
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1668x2388.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1792x828.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1792x828.png
new file mode 100644
index 0000000..defbac8
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-1792x828.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x1536.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x1536.png
new file mode 100644
index 0000000..19be6de
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x1536.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x2732.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x2732.png
new file mode 100644
index 0000000..1bdcc50
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2048x2732.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2160x1620.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2160x1620.png
new file mode 100644
index 0000000..c7e46b1
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2160x1620.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2208x1242.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2208x1242.png
new file mode 100644
index 0000000..0612514
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2208x1242.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2224x1668.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2224x1668.png
new file mode 100644
index 0000000..811d215
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2224x1668.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2388x1668.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2388x1668.png
new file mode 100644
index 0000000..7dd6988
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2388x1668.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2436x1125.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2436x1125.png
new file mode 100644
index 0000000..f135f6f
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2436x1125.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2532x1170.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2532x1170.png
new file mode 100644
index 0000000..a0ad6bd
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2532x1170.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2688x1242.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2688x1242.png
new file mode 100644
index 0000000..242d3e8
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2688x1242.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2732x2048.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2732x2048.png
new file mode 100644
index 0000000..3243178
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2732x2048.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2778x1284.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2778x1284.png
new file mode 100644
index 0000000..d055341
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-2778x1284.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-640x1136.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-640x1136.png
new file mode 100644
index 0000000..1411158
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-640x1136.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-750x1334.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-750x1334.png
new file mode 100644
index 0000000..5efe7d0
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-750x1334.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-828x1792.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-828x1792.png
new file mode 100644
index 0000000..0e21a8c
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/apple-touch-startup-image-828x1792.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/browserconfig.xml b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/browserconfig.xml
new file mode 100644
index 0000000..c0d71f4
--- /dev/null
+++ b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #fff
+
+
+
\ No newline at end of file
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-16x16.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-16x16.png
new file mode 100644
index 0000000..79d8ac7
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-16x16.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-32x32.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-32x32.png
new file mode 100644
index 0000000..2cac7d7
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-32x32.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-48x48.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-48x48.png
new file mode 100644
index 0000000..0048650
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon-48x48.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon.ico b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon.ico
new file mode 100644
index 0000000..4e15439
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/favicon.ico differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/manifest.webmanifest b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/manifest.webmanifest
new file mode 100644
index 0000000..37f456f
--- /dev/null
+++ b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/manifest.webmanifest
@@ -0,0 +1,68 @@
+{
+ "name": "Taymyr",
+ "short_name": "Taymyr",
+ "description": "Taymyr Antora UI",
+ "dir": "auto",
+ "lang": "en-US",
+ "display": "standalone",
+ "orientation": "any",
+ "start_url": "/?homescreen=1",
+ "background_color": "#fff",
+ "theme_color": "#fff",
+ "icons": [
+ {
+ "src": "android-chrome-36x36.png",
+ "sizes": "36x36",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-48x48.png",
+ "sizes": "48x48",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-72x72.png",
+ "sizes": "72x72",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-96x96.png",
+ "sizes": "96x96",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-144x144.png",
+ "sizes": "144x144",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-256x256.png",
+ "sizes": "256x256",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-384x384.png",
+ "sizes": "384x384",
+ "type": "image/png",
+ "purpose": "any"
+ },
+ {
+ "src": "android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "any"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-144x144.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-144x144.png
new file mode 100644
index 0000000..2882cbe
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-144x144.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-150x150.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-150x150.png
new file mode 100644
index 0000000..f688119
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-150x150.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x150.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x150.png
new file mode 100644
index 0000000..868942c
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x150.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x310.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x310.png
new file mode 100644
index 0000000..6c91449
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-310x310.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-70x70.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-70x70.png
new file mode 100644
index 0000000..9dc331e
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/mstile-70x70.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-50x50.png b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-50x50.png
new file mode 100644
index 0000000..7a7f167
Binary files /dev/null and b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-50x50.png differ
diff --git a/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-manifest.json b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-manifest.json
new file mode 100644
index 0000000..53053f8
--- /dev/null
+++ b/ru/_/assets/c641284ef6878810482ca92ad343aaba71fdba577b68dd62d0567ea668ff6ab7/yandex-browser-manifest.json
@@ -0,0 +1,9 @@
+{
+ "version": "1.0.0",
+ "api_version": 1,
+ "layout": {
+ "logo": "yandex-browser-50x50.png",
+ "color": "#fff",
+ "show_title": true
+ }
+}
\ No newline at end of file
diff --git a/ru/_/css/search.css b/ru/_/css/search.css
new file mode 100644
index 0000000..d384533
--- /dev/null
+++ b/ru/_/css/search.css
@@ -0,0 +1,123 @@
+.search-result-dropdown-menu {
+ position: absolute;
+ z-index: 100;
+ display: block;
+ right: 0;
+ left: inherit;
+ top: 100%;
+ border-radius: 4px;
+ margin: 6px 0 0;
+ padding: 0;
+ text-align: left;
+ height: auto;
+ background: transparent;
+ border: none;
+ max-width: 600px;
+ min-width: 500px;
+ box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), 0 2px 3px 0 rgba(0, 0, 0, 0.1);
+}
+
+@media screen and (max-width: 768px) {
+ .search-result-dropdown-menu {
+ min-width: calc(100vw - 3.75rem);
+ }
+}
+
+.search-result-dataset {
+ position: relative;
+ border: 1px solid #d9d9d9;
+ background: #fff;
+ border-radius: 4px;
+ overflow: auto;
+ padding: 8px;
+ max-height: calc(100vh - 5.25rem);
+ line-height: 1.5;
+}
+
+.search-result-item {
+ display: flex;
+ margin-top: 0.5rem;
+}
+
+.search-result-component-header {
+ color: #1e1e1e;
+ border-bottom: 1px solid #ddd;
+ margin-left: 0.5em;
+ margin-right: 0.5em;
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+}
+
+.search-result-document-title {
+ width: 33%;
+ border-right: 1px solid #ddd;
+ color: #02060c;
+ font-weight: 500;
+ font-size: 0.8rem;
+ padding: 0.5rem 0.5rem 0.5rem 0;
+ text-align: right;
+ position: relative;
+ word-wrap: break-word;
+}
+
+.search-result-document-hit {
+ flex: 1;
+ font-size: 0.75rem;
+ color: #63676d;
+}
+
+.search-result-document-hit > a {
+ color: inherit;
+ display: block;
+ padding: 0.55rem 0.25rem 0.55rem 0.75rem;
+}
+
+.search-result-document-hit > a:hover {
+ background-color: rgba(69, 142, 225, 0.05);
+}
+
+.search-result-document-hit .search-result-highlight {
+ color: #174d8c;
+ background: rgba(143, 187, 237, 0.1);
+ padding: 0.1em 0.05em;
+ font-weight: 500;
+}
+
+.search-result-document-hit .search-result-section-title {
+ color: #303030;
+ font-weight: 500;
+ font-size: 1.05em;
+ margin-bottom: 0.25em;
+}
+
+#search-input {
+ padding: 0.25em;
+}
+
+#search-input:focus {
+ outline: none;
+}
+
+#search-field {
+ display: flex;
+}
+
+#search-field .filter {
+ background: #fff linear-gradient(180deg,#e1e1e1 0,#e1e1e1) no-repeat 0/1px 50%;
+ border: 1px solid #e1e1e1;
+ border-left: none;
+ border-radius: 0 0.1em 0.1em 0;
+ color: #5d5d5d;
+ cursor: pointer;
+ font-size: .875em;
+ display: flex;
+ align-items: center;
+ padding: 0 0.5rem;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#search-field.has-filter > input {
+ border-right: none;
+ border-radius: 0.1em 0 0 0.1em;
+}
diff --git a/ru/_/js/search-ui.js b/ru/_/js/search-ui.js
new file mode 100644
index 0000000..53a8dde
--- /dev/null
+++ b/ru/_/js/search-ui.js
@@ -0,0 +1,448 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.antoraSearch = {}));
+})(this, (function (exports) { 'use strict';
+
+ function buildHighlightedText (text, positions, snippetLength) {
+ const textLength = text.length;
+ const validPositions = positions
+ .filter((position) => position.length > 0 && position.start + position.length <= textLength);
+
+ if (validPositions.length === 0) {
+ return [
+ {
+ type: 'text',
+ text: text.slice(0, snippetLength >= textLength ? textLength : snippetLength) + (snippetLength < textLength ? '...' : ''),
+ },
+ ]
+ }
+
+ const orderedPositions = validPositions.sort((p1, p2) => p1.start - p2.start);
+ const range = {
+ start: 0,
+ end: textLength,
+ };
+ const firstPosition = orderedPositions[0];
+ if (snippetLength && text.length > snippetLength) {
+ const firstPositionStart = firstPosition.start;
+ const firstPositionLength = firstPosition.length;
+ const firstPositionEnd = firstPositionStart + firstPositionLength;
+
+ range.start = firstPositionStart - snippetLength < 0 ? 0 : firstPositionStart - snippetLength;
+ range.end = firstPositionEnd + snippetLength > textLength ? textLength : firstPositionEnd + snippetLength;
+ }
+ const nodes = [];
+ if (firstPosition.start > 0) {
+ nodes.push({
+ type: 'text',
+ text: (range.start > 0 ? '...' : '') + text.slice(range.start, firstPosition.start),
+ });
+ }
+ let lastEndPosition = 0;
+ const positionsWithinRange = orderedPositions
+ .filter((position) => position.start >= range.start && position.start + position.length <= range.end);
+
+ for (const position of positionsWithinRange) {
+ const start = position.start;
+ const length = position.length;
+ const end = start + length;
+ if (lastEndPosition > 0) {
+ // create text Node from the last end position to the start of the current position
+ nodes.push({
+ type: 'text',
+ text: text.slice(lastEndPosition, start),
+ });
+ }
+ nodes.push({
+ type: 'mark',
+ text: text.slice(start, end),
+ });
+ lastEndPosition = end;
+ }
+ if (lastEndPosition < range.end) {
+ nodes.push({
+ type: 'text',
+ text: text.slice(lastEndPosition, range.end) + (range.end < textLength ? '...' : ''),
+ });
+ }
+
+ return nodes
+ }
+
+ /**
+ * Taken and adapted from: https://github.com/olivernn/lunr.js/blob/aa5a878f62a6bba1e8e5b95714899e17e8150b38/lib/tokenizer.js#L24-L67
+ * @param lunr
+ * @param text
+ * @param term
+ * @return {{start: number, length: number}}
+ */
+ function findTermPosition (lunr, term, text) {
+ const str = text.toLowerCase();
+ const len = str.length;
+
+ for (let sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {
+ const char = str.charAt(sliceEnd);
+ const sliceLength = sliceEnd - sliceStart;
+
+ if ((char.match(lunr.tokenizer.separator) || sliceEnd === len)) {
+ if (sliceLength > 0) {
+ const value = str.slice(sliceStart, sliceEnd);
+ // QUESTION: if we get an exact match without running the pipeline should we stop?
+ if (value.includes(term)) {
+ // returns the first match
+ return {
+ start: sliceStart,
+ length: value.length,
+ }
+ }
+ }
+ sliceStart = sliceEnd + 1;
+ }
+ }
+
+ // not found!
+ return {
+ start: 0,
+ length: 0,
+ }
+ }
+
+ /* global CustomEvent, globalThis */
+
+ const config = document.getElementById('search-ui-script').dataset;
+ const snippetLength = parseInt(config.snippetLength || 100, 10);
+ const siteRootPath = config.siteRootPath || '';
+ appendStylesheet(config.stylesheet);
+ const searchInput = document.getElementById('search-input');
+ const searchResultContainer = document.createElement('div');
+ searchResultContainer.classList.add('search-result-dropdown-menu');
+ searchInput.parentNode.appendChild(searchResultContainer);
+ const facetFilterInput = document.querySelector('#search-field input[type=checkbox][data-facet-filter]');
+
+ function appendStylesheet (href) {
+ if (!href) return
+ const link = document.createElement('link');
+ link.rel = 'stylesheet';
+ link.href = href;
+ document.head.appendChild(link);
+ }
+
+ function highlightPageTitle (title, terms) {
+ const positions = getTermPosition(title, terms);
+ return buildHighlightedText(title, positions, snippetLength)
+ }
+
+ function highlightSectionTitle (sectionTitle, terms) {
+ if (sectionTitle) {
+ const text = sectionTitle.text;
+ const positions = getTermPosition(text, terms);
+ return buildHighlightedText(text, positions, snippetLength)
+ }
+ return []
+ }
+
+ function highlightText (doc, terms) {
+ const text = doc.text;
+ const positions = getTermPosition(text, terms);
+ return buildHighlightedText(text, positions, snippetLength)
+ }
+
+ function getTermPosition (text, terms) {
+ const positions = terms
+ .map((term) => findTermPosition(globalThis.lunr, term, text))
+ .filter((position) => position.length > 0)
+ .sort((p1, p2) => p1.start - p2.start);
+
+ if (positions.length === 0) {
+ return []
+ }
+ return positions
+ }
+
+ function highlightHit (searchMetadata, sectionTitle, doc) {
+ const terms = {};
+ for (const term in searchMetadata) {
+ const fields = searchMetadata[term];
+ for (const field in fields) {
+ terms[field] = [...(terms[field] || []), term];
+ }
+ }
+ return {
+ pageTitleNodes: highlightPageTitle(doc.title, terms.title || []),
+ sectionTitleNodes: highlightSectionTitle(sectionTitle, terms.title || []),
+ pageContentNodes: highlightText(doc, terms.text || []),
+ }
+ }
+
+ function createSearchResult (result, store, searchResultDataset) {
+ let currentComponent;
+ result.forEach(function (item) {
+ const ids = item.ref.split('-');
+ const docId = ids[0];
+ const doc = store.documents[docId];
+ let sectionTitle;
+ if (ids.length > 1) {
+ const titleId = ids[1];
+ sectionTitle = doc.titles.filter(function (item) {
+ return String(item.id) === titleId
+ })[0];
+ }
+ const metadata = item.matchData.metadata;
+ const highlightingResult = highlightHit(metadata, sectionTitle, doc);
+ const componentVersion = store.componentVersions[`${doc.component}/${doc.version}`];
+ if (componentVersion !== undefined && currentComponent !== componentVersion) {
+ const searchResultComponentHeader = document.createElement('div');
+ searchResultComponentHeader.classList.add('search-result-component-header');
+ const { title, displayVersion } = componentVersion;
+ const componentVersionText = `${title}${doc.version && displayVersion ? ` ${displayVersion}` : ''}`;
+ searchResultComponentHeader.appendChild(document.createTextNode(componentVersionText));
+ searchResultDataset.appendChild(searchResultComponentHeader);
+ currentComponent = componentVersion;
+ }
+ searchResultDataset.appendChild(createSearchResultItem(doc, sectionTitle, item, highlightingResult));
+ });
+ }
+
+ function createSearchResultItem (doc, sectionTitle, item, highlightingResult) {
+ const documentTitle = document.createElement('div');
+ documentTitle.classList.add('search-result-document-title');
+ highlightingResult.pageTitleNodes.forEach(function (node) {
+ let element;
+ if (node.type === 'text') {
+ element = document.createTextNode(node.text);
+ } else {
+ element = document.createElement('span');
+ element.classList.add('search-result-highlight');
+ element.innerText = node.text;
+ }
+ documentTitle.appendChild(element);
+ });
+ const documentHit = document.createElement('div');
+ documentHit.classList.add('search-result-document-hit');
+ const documentHitLink = document.createElement('a');
+ documentHitLink.href = siteRootPath + doc.url + (sectionTitle ? '#' + sectionTitle.hash : '');
+ documentHit.appendChild(documentHitLink);
+ if (highlightingResult.sectionTitleNodes.length > 0) {
+ const documentSectionTitle = document.createElement('div');
+ documentSectionTitle.classList.add('search-result-section-title');
+ documentHitLink.appendChild(documentSectionTitle);
+ highlightingResult.sectionTitleNodes.forEach(function (node) {
+ let element;
+ if (node.type === 'text') {
+ element = document.createTextNode(node.text);
+ } else {
+ element = document.createElement('span');
+ element.classList.add('search-result-highlight');
+ element.innerText = node.text;
+ }
+ documentSectionTitle.appendChild(element);
+ });
+ }
+ highlightingResult.pageContentNodes.forEach(function (node) {
+ let element;
+ if (node.type === 'text') {
+ element = document.createTextNode(node.text);
+ } else {
+ element = document.createElement('span');
+ element.classList.add('search-result-highlight');
+ element.innerText = node.text;
+ }
+ documentHitLink.appendChild(element);
+ });
+ const searchResultItem = document.createElement('div');
+ searchResultItem.classList.add('search-result-item');
+ searchResultItem.appendChild(documentTitle);
+ searchResultItem.appendChild(documentHit);
+ searchResultItem.addEventListener('mousedown', function (e) {
+ e.preventDefault();
+ });
+ return searchResultItem
+ }
+
+ function createNoResult (text) {
+ const searchResultItem = document.createElement('div');
+ searchResultItem.classList.add('search-result-item');
+ const documentHit = document.createElement('div');
+ documentHit.classList.add('search-result-document-hit');
+ const message = document.createElement('strong');
+ message.innerText = 'No results found for query "' + text + '"';
+ documentHit.appendChild(message);
+ searchResultItem.appendChild(documentHit);
+ return searchResultItem
+ }
+
+ function clearSearchResults (reset) {
+ if (reset === true) searchInput.value = '';
+ searchResultContainer.innerHTML = '';
+ }
+
+ function filter (result, documents) {
+ const facetFilter = facetFilterInput && facetFilterInput.checked && facetFilterInput.dataset.facetFilter;
+ if (facetFilter) {
+ const [field, value] = facetFilter.split(':');
+ return result.filter((item) => {
+ const ids = item.ref.split('-');
+ const docId = ids[0];
+ const doc = documents[docId];
+ return field in doc && doc[field] === value
+ })
+ }
+ return result
+ }
+
+ function search (index, documents, queryString) {
+ // execute an exact match search
+ let query;
+ let result = filter(
+ index.query(function (lunrQuery) {
+ const parser = new globalThis.lunr.QueryParser(queryString, lunrQuery);
+ parser.parse();
+ query = lunrQuery;
+ }),
+ documents
+ );
+ if (result.length > 0) {
+ return result
+ }
+ // no result, use a begins with search
+ result = filter(
+ index.query(function (lunrQuery) {
+ lunrQuery.clauses = query.clauses.map((clause) => {
+ if (clause.presence !== globalThis.lunr.Query.presence.PROHIBITED) {
+ clause.term = clause.term + '*';
+ clause.wildcard = globalThis.lunr.Query.wildcard.TRAILING;
+ clause.usePipeline = false;
+ }
+ return clause
+ });
+ }),
+ documents
+ );
+ if (result.length > 0) {
+ return result
+ }
+ // no result, use a contains search
+ result = filter(
+ index.query(function (lunrQuery) {
+ lunrQuery.clauses = query.clauses.map((clause) => {
+ if (clause.presence !== globalThis.lunr.Query.presence.PROHIBITED) {
+ clause.term = '*' + clause.term + '*';
+ clause.wildcard = globalThis.lunr.Query.wildcard.LEADING | globalThis.lunr.Query.wildcard.TRAILING;
+ clause.usePipeline = false;
+ }
+ return clause
+ });
+ }),
+ documents
+ );
+ return result
+ }
+
+ function searchIndex (index, store, text) {
+ clearSearchResults(false);
+ if (text.trim() === '') {
+ return
+ }
+ const result = search(index, store.documents, text);
+ const searchResultDataset = document.createElement('div');
+ searchResultDataset.classList.add('search-result-dataset');
+ searchResultContainer.appendChild(searchResultDataset);
+ if (result.length > 0) {
+ createSearchResult(result, store, searchResultDataset);
+ } else {
+ searchResultDataset.appendChild(createNoResult(text));
+ }
+ }
+
+ function confineEvent (e) {
+ e.stopPropagation();
+ }
+
+ function debounce (func, wait, immediate) {
+ let timeout;
+ return function () {
+ const context = this;
+ const args = arguments;
+ const later = function () {
+ timeout = null;
+ if (!immediate) func.apply(context, args);
+ };
+ const callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, wait);
+ if (callNow) func.apply(context, args);
+ }
+ }
+
+ function enableSearchInput (enabled) {
+ if (facetFilterInput) {
+ facetFilterInput.disabled = !enabled;
+ }
+ searchInput.disabled = !enabled;
+ searchInput.title = enabled ? '' : 'Loading index...';
+ }
+
+ function isClosed () {
+ return searchResultContainer.childElementCount === 0
+ }
+
+ function executeSearch (index) {
+ const debug = 'URLSearchParams' in globalThis && new URLSearchParams(globalThis.location.search).has('lunr-debug');
+ const query = searchInput.value;
+ try {
+ if (!query) return clearSearchResults()
+ searchIndex(index.index, index.store, query);
+ } catch (err) {
+ if (err instanceof globalThis.lunr.QueryParseError) {
+ if (debug) {
+ console.debug('Invalid search query: ' + query + ' (' + err.message + ')');
+ }
+ } else {
+ console.error('Something went wrong while searching', err);
+ }
+ }
+ }
+
+ function toggleFilter (e, index) {
+ searchInput.focus();
+ if (!isClosed()) {
+ executeSearch(index);
+ }
+ }
+
+ function initSearch (lunr, data) {
+ const start = performance.now();
+ const index = { index: lunr.Index.load(data.index), store: data.store };
+ enableSearchInput(true);
+ searchInput.dispatchEvent(
+ new CustomEvent('loadedindex', {
+ detail: {
+ took: performance.now() - start,
+ },
+ })
+ );
+ searchInput.addEventListener(
+ 'keydown',
+ debounce(function (e) {
+ if (e.key === 'Escape' || e.key === 'Esc') return clearSearchResults(true)
+ executeSearch(index);
+ }, 100)
+ );
+ searchInput.addEventListener('click', confineEvent);
+ searchResultContainer.addEventListener('click', confineEvent);
+ if (facetFilterInput) {
+ facetFilterInput.parentElement.addEventListener('click', confineEvent);
+ facetFilterInput.addEventListener('change', (e) => toggleFilter(e, index));
+ }
+ document.documentElement.addEventListener('click', clearSearchResults);
+ }
+
+ // disable the search input until the index is loaded
+ enableSearchInput(false);
+
+ exports.initSearch = initSearch;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
diff --git a/ru/_/js/vendor/lunr.js b/ru/_/js/vendor/lunr.js
new file mode 100644
index 0000000..cdc94cd
--- /dev/null
+++ b/ru/_/js/vendor/lunr.js
@@ -0,0 +1,6 @@
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
+!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}();
diff --git a/ru/_/main.js b/ru/_/main.js
new file mode 100644
index 0000000..e69de29
diff --git a/ru/index.html b/ru/index.html
new file mode 100644
index 0000000..875723b
--- /dev/null
+++ b/ru/index.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/ru/search-index.js b/ru/search-index.js
new file mode 100644
index 0000000..1aa15c9
--- /dev/null
+++ b/ru/search-index.js
@@ -0,0 +1 @@
+antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[]],["name/1",[0,0.803]],["text/1",[]],["component/1",[1,0.182]],["title/2",[]],["name/2",[2,0.61,3,0.61]],["text/2",[]],["component/2",[1,0.182]]],"invertedIndex":[["1",{"_index":3,"title":{},"name":{"2":{}},"text":{},"component":{}}],["index",{"_index":0,"title":{},"name":{"1":{}},"text":{},"component":{}}],["root",{"_index":1,"title":{},"name":{},"text":{},"component":{"1":{},"2":{}}}],["section",{"_index":2,"title":{},"name":{"2":{}},"text":{},"component":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"","title":"","component":"ROOT","version":"","name":"index","url":"/index.html","titles":[]},"2":{"id":2,"text":"","title":"","component":"ROOT","version":"","name":"section-1","url":"/section-1.html","titles":[]}},"components":{},"componentVersions":{"ROOT/":{"displayVersion":"default","title":"Таймыр","version":"","name":"ROOT","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Taymyr","site-url":"https://taymyr.io/ru","page-lang":"ru"},"sourcemap":false},"url":"/index.html","navigation":[]}}}})
\ No newline at end of file
diff --git a/ru/section-1.html b/ru/section-1.html
new file mode 100644
index 0000000..a312a44
--- /dev/null
+++ b/ru/section-1.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/ru/sitemap.xml b/ru/sitemap.xml
new file mode 100644
index 0000000..f7af695
--- /dev/null
+++ b/ru/sitemap.xml
@@ -0,0 +1,11 @@
+
+
+
+https://taymyr.io/ru/index.html
+2025-01-09T03:30:28.555Z
+
+
+https://taymyr.io/ru/section-1.html
+2025-01-09T03:30:28.555Z
+
+
diff --git a/search-index.js b/search-index.js
new file mode 100644
index 0000000..04349e9
--- /dev/null
+++ b/search-index.js
@@ -0,0 +1 @@
+antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[]],["name/1",[0,0.803]],["text/1",[]],["component/1",[1,0.182]],["title/2",[]],["name/2",[2,0.61,3,0.61]],["text/2",[]],["component/2",[1,0.182]]],"invertedIndex":[["1",{"_index":3,"title":{},"name":{"2":{}},"text":{},"component":{}}],["index",{"_index":0,"title":{},"name":{"1":{}},"text":{},"component":{}}],["root",{"_index":1,"title":{},"name":{},"text":{},"component":{"1":{},"2":{}}}],["section",{"_index":2,"title":{},"name":{"2":{}},"text":{},"component":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"","title":"","component":"ROOT","version":"","name":"index","url":"/index.html","titles":[]},"2":{"id":2,"text":"","title":"","component":"ROOT","version":"","name":"section-1","url":"/section-1.html","titles":[]}},"components":{},"componentVersions":{"ROOT/":{"displayVersion":"default","title":"Taymyr","version":"","name":"ROOT","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Taymyr","site-url":"https://taymyr.io/"},"sourcemap":false},"url":"/index.html","navigation":[]}}}})
\ No newline at end of file
diff --git a/section-1.html b/section-1.html
new file mode 100644
index 0000000..05c2feb
--- /dev/null
+++ b/section-1.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..d78e064
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,11 @@
+
+
+
+https://taymyr.io/index.html
+2025-01-09T03:30:27.500Z
+
+
+https://taymyr.io/section-1.html
+2025-01-09T03:30:27.500Z
+
+