Add versioned docs for 3.11.11, 4.0-rc, and 4.1
diff --git a/src/doc/4.0-rc2/_downloads/5953747707b714e6c4fcfd352e9e46ce/stress-lwt-example.yaml b/src/doc/3.11.11/_downloads/41488e7fbf1958f77971843a5a2fdece/stress-lwt-example.yaml
similarity index 100%
copy from src/doc/4.0-rc2/_downloads/5953747707b714e6c4fcfd352e9e46ce/stress-lwt-example.yaml
copy to src/doc/3.11.11/_downloads/41488e7fbf1958f77971843a5a2fdece/stress-lwt-example.yaml
diff --git a/src/doc/4.0-rc2/_downloads/69b2141f61171b367be8f5ade6299dd9/stress-example.yaml b/src/doc/3.11.11/_downloads/5f51523351321709939f167577a9b33a/stress-example.yaml
similarity index 100%
copy from src/doc/4.0-rc2/_downloads/69b2141f61171b367be8f5ade6299dd9/stress-example.yaml
copy to src/doc/3.11.11/_downloads/5f51523351321709939f167577a9b33a/stress-example.yaml
diff --git a/src/doc/3.11.11/_images/Figure_1_backups.jpg b/src/doc/3.11.11/_images/Figure_1_backups.jpg
new file mode 100644
index 0000000..160013d
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_1_backups.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_1_data_model.jpg b/src/doc/3.11.11/_images/Figure_1_data_model.jpg
new file mode 100644
index 0000000..a3b330e
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_1_data_model.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_1_guarantees.jpg b/src/doc/3.11.11/_images/Figure_1_guarantees.jpg
new file mode 100644
index 0000000..859342d
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_1_guarantees.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_1_read_repair.jpg b/src/doc/3.11.11/_images/Figure_1_read_repair.jpg
new file mode 100644
index 0000000..d771550
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_1_read_repair.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_2_data_model.jpg b/src/doc/3.11.11/_images/Figure_2_data_model.jpg
new file mode 100644
index 0000000..7acdeac
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_2_data_model.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_2_read_repair.jpg b/src/doc/3.11.11/_images/Figure_2_read_repair.jpg
new file mode 100644
index 0000000..29a912b
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_2_read_repair.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_3_read_repair.jpg b/src/doc/3.11.11/_images/Figure_3_read_repair.jpg
new file mode 100644
index 0000000..f5cc189
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_3_read_repair.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_4_read_repair.jpg b/src/doc/3.11.11/_images/Figure_4_read_repair.jpg
new file mode 100644
index 0000000..25bdb34
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_4_read_repair.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_5_read_repair.jpg b/src/doc/3.11.11/_images/Figure_5_read_repair.jpg
new file mode 100644
index 0000000..d9c0485
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_5_read_repair.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/Figure_6_read_repair.jpg b/src/doc/3.11.11/_images/Figure_6_read_repair.jpg
new file mode 100644
index 0000000..6bb4d1e
--- /dev/null
+++ b/src/doc/3.11.11/_images/Figure_6_read_repair.jpg
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_chebotko_logical.png b/src/doc/3.11.11/_images/data_modeling_chebotko_logical.png
new file mode 100644
index 0000000..e54b5f2
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_chebotko_logical.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_chebotko_physical.png b/src/doc/3.11.11/_images/data_modeling_chebotko_physical.png
new file mode 100644
index 0000000..bfdaec5
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_chebotko_physical.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_hotel_bucketing.png b/src/doc/3.11.11/_images/data_modeling_hotel_bucketing.png
new file mode 100644
index 0000000..8b53e38
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_hotel_bucketing.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_hotel_erd.png b/src/doc/3.11.11/_images/data_modeling_hotel_erd.png
new file mode 100644
index 0000000..e86fe68
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_hotel_erd.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_hotel_logical.png b/src/doc/3.11.11/_images/data_modeling_hotel_logical.png
new file mode 100644
index 0000000..e920f12
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_hotel_logical.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_hotel_physical.png b/src/doc/3.11.11/_images/data_modeling_hotel_physical.png
new file mode 100644
index 0000000..2d20a6d
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_hotel_physical.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_hotel_queries.png b/src/doc/3.11.11/_images/data_modeling_hotel_queries.png
new file mode 100644
index 0000000..2434db3
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_hotel_queries.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_hotel_relational.png b/src/doc/3.11.11/_images/data_modeling_hotel_relational.png
new file mode 100644
index 0000000..43e784e
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_hotel_relational.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_reservation_logical.png b/src/doc/3.11.11/_images/data_modeling_reservation_logical.png
new file mode 100644
index 0000000..0460633
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_reservation_logical.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/data_modeling_reservation_physical.png b/src/doc/3.11.11/_images/data_modeling_reservation_physical.png
new file mode 100644
index 0000000..1e6e76c
--- /dev/null
+++ b/src/doc/3.11.11/_images/data_modeling_reservation_physical.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_commit.png b/src/doc/3.11.11/_images/docs_commit.png
new file mode 100644
index 0000000..d90d96a
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_commit.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_create_branch.png b/src/doc/3.11.11/_images/docs_create_branch.png
new file mode 100644
index 0000000..a04cb54
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_create_branch.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_create_file.png b/src/doc/3.11.11/_images/docs_create_file.png
new file mode 100644
index 0000000..b51e370
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_create_file.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_editor.png b/src/doc/3.11.11/_images/docs_editor.png
new file mode 100644
index 0000000..5b9997b
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_editor.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_fork.png b/src/doc/3.11.11/_images/docs_fork.png
new file mode 100644
index 0000000..20a592a
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_fork.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_pr.png b/src/doc/3.11.11/_images/docs_pr.png
new file mode 100644
index 0000000..211eb25
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_pr.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/docs_preview.png b/src/doc/3.11.11/_images/docs_preview.png
new file mode 100644
index 0000000..207f0ac
--- /dev/null
+++ b/src/doc/3.11.11/_images/docs_preview.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/example-stress-graph.png b/src/doc/3.11.11/_images/example-stress-graph.png
new file mode 100644
index 0000000..a65b08b
--- /dev/null
+++ b/src/doc/3.11.11/_images/example-stress-graph.png
Binary files differ
diff --git a/src/doc/3.11.11/_images/hints.svg b/src/doc/3.11.11/_images/hints.svg
new file mode 100644
index 0000000..5e952e7
--- /dev/null
+++ b/src/doc/3.11.11/_images/hints.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="661.2000122070312" height="422.26666259765625" style="
+        width:661.2000122070312px;
+        height:422.26666259765625px;
+        background: transparent;
+        fill: none;
+">
+        <svg xmlns="http://www.w3.org/2000/svg" class="role-diagram-draw-area"><g class="shapes-region" style="stroke: black; fill: none;"><g class="composite-shape"><path class="real" d=" M40,60 C40,43.43 53.43,30 70,30 C86.57,30 100,43.43 100,60 C100,76.57 86.57,90 70,90 C53.43,90 40,76.57 40,60 Z" style="stroke-width: 1px; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M70,300 L70,387" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="#000" transform="matrix(-1.8369701987210297e-16,-1,1,-1.8369701987210297e-16,70,390)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M10.72,-5.15 L0,0 L10.72,5.15 L7.12,0 Z"/></g></g><g class="composite-shape"><path class="real" d=" M300,58.5 C300,41.93 313.43,28.5 330,28.5 C346.57,28.5 360,41.93 360,58.5 C360,75.07 346.57,88.5 330,88.5 C313.43,88.5 300,75.07 300,58.5 Z" style="stroke-width: 1px; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M80,120 L197,118.54" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(-0.9999210442038161,0.01256603988335397,-0.01256603988335397,-0.9999210442038161,200,118.5)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M330,300 L330,385.5" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="#000" transform="matrix(-1.8369701987210297e-16,-1,1,-1.8369701987210297e-16,330,388.49999999999994)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M10.72,-5.15 L0,0 L10.72,5.15 L7.12,0 Z"/></g></g><g class="composite-shape"><path class="real" d=" M420,60 C420,43.43 433.43,30 450,30 C466.57,30 480,43.43 480,60 C480,76.57 466.57,90 450,90 C433.43,90 420,76.57 420,60 Z" style="stroke-width: 1px; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M570,300 L570,385.5" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="#000" transform="matrix(-1.8369701987210297e-16,-1,1,-1.8369701987210297e-16,570,388.5)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M10.72,-5.15 L0,0 L10.72,5.15 L7.12,0 Z"/></g></g><g class="composite-shape"><path class="real" d=" M540,60 C540,43.43 553.43,30 570,30 C586.57,30 600,43.43 600,60 C600,76.57 586.57,90 570,90 C553.43,90 540,76.57 540,60 Z" style="stroke-width: 1px; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M450,100 L450,128.5" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M450,320 L450,385.5" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="#000" transform="matrix(-1.8369701987210297e-16,-1,1,-1.8369701987210297e-16,450,388.49999999999994)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M10.72,-5.15 L0,0 L10.72,5.15 L7.12,0 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="1.125 3.35" d="  M450,135.1 L450,220" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="#000" transform="matrix(6.123233995736766e-17,1,-1,6.123233995736766e-17,449.99999999999994,135.10000000000002)" style="stroke: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M0,5.59 L0,-5.59 M-5.03,5.59 L-5.03,-5.59"/></g></g><g class="composite-shape"><path class="real" d=" M180,56.5 C180,39.93 193.43,26.5 210,26.5 C226.57,26.5 240,39.93 240,56.5 C240,73.07 226.57,86.5 210,86.5 C193.43,86.5 180,73.07 180,56.5 Z" style="stroke-width: 1px; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M210,300 L210,383.5" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="#000" transform="matrix(-1.8369701987210297e-16,-1,1,-1.8369701987210297e-16,210,386.49999999999994)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M10.72,-5.15 L0,0 L10.72,5.15 L7.12,0 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M220,119.5 L317,119.5" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(-1,1.2246467991473532e-16,-1.2246467991473532e-16,-1,320,119.49999999999999)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M220,141 L437,140.01" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(-0.9999897039488793,0.004537840481175345,-0.004537840481175345,-0.9999897039488793,440,140)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M220,160 L557,160" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(-1,1.2246467991473532e-16,-1.2246467991473532e-16,-1,560,160)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M330,190 L223,190" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(1,-2.4492935982947064e-16,2.4492935982947064e-16,1,220,190)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M570,200 L223,200" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(1,-2.4492935982947064e-16,2.4492935982947064e-16,1,220,200)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M200,200 L83,200" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(1,-2.4492935982947064e-16,2.4492935982947064e-16,1,80,200)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M220,260 C248.94,258.95 251.69,269.27 222.77,269.96" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" transform="matrix(0.9999965730559848,-0.0026179908874171876,0.0026179908874171876,0.9999965730559848,220,270)" style="stroke: none; stroke-width: 1px; fill: rgb(0, 0, 0);" fill="#000"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M220,360 L437,360" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(-1,1.2246467991473532e-16,-1.2246467991473532e-16,-1,439.99999999999994,360.00000000000006)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M60,220 Q62.5,217.5 65,220 Q67.5,222.5 70,220 Q72.5,217.5 75,220 Q77.5,222.5 80,220 L80,220" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M60,230 Q62.5,227.5 65,230 Q67.5,232.5 70,230 Q72.5,227.5 75,230 Q77.5,232.5 80,230 L80,230" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M70,100 L70,220" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M200,220 Q202.5,217.5 205,220 Q207.5,222.5 210,220 Q212.5,217.5 215,220 Q217.5,222.5 220,220 L220,220" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M200,230 Q202.5,227.5 205,230 Q207.5,232.5 210,230 Q212.5,227.5 215,230 Q217.5,232.5 220,230 L220,230" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M320,220 Q322.5,217.5 325,220 Q327.5,222.5 330,220 Q332.5,217.5 335,220 Q337.5,222.5 340,220 L340,220" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M320,230 Q322.5,227.5 325,230 Q327.5,232.5 330,230 Q332.5,227.5 335,230 Q337.5,232.5 340,230 L340,230" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M440,220 Q442.5,217.5 445,220 Q447.5,222.5 450,220 Q452.5,217.5 455,220 Q457.5,222.5 460,220 L460,220" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M440,230 Q442.5,227.5 445,230 Q447.5,232.5 450,230 Q452.5,227.5 455,230 Q457.5,232.5 460,230 L460,230" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M560,220 Q562.5,217.5 565,220 Q567.5,222.5 570,220 Q572.5,217.5 575,220 Q577.5,222.5 580,220 L580,220" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M560,230 Q562.5,227.5 565,230 Q567.5,232.5 570,230 Q572.5,227.5 575,230 Q577.5,232.5 580,230 L580,230" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M210,100 L210,220" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M330,100 L330,220" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M570,100 L570,220" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="1.125 3.35" d="  M450,315 L450,300" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="#000" transform="matrix(-1.8369701987210297e-16,-1,1,-1.8369701987210297e-16,450,314.99999999999994)" style="stroke: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M0,5.59 L0,-5.59 M-5.03,5.59 L-5.03,-5.59"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M440,330 L223,330" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/><g stroke="none" fill="rgba(0,0,0,1)" transform="matrix(1,-2.4492935982947064e-16,2.4492935982947064e-16,1,220,330)" style="stroke: none; fill: rgb(0, 0, 0); stroke-width: 1px;"><path d=" M8.93,-4.29 L0,0 L8.93,4.29 Z"/></g></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M60,290 Q62.5,287.5 65,290 Q67.5,292.5 70,290 Q72.5,287.5 75,290 Q77.5,292.5 80,290 L80,290" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M60,300 Q62.5,297.5 65,300 Q67.5,302.5 70,300 Q72.5,297.5 75,300 Q77.5,302.5 80,300 L80,300" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M70,230 L70,290" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M200,290 Q202.5,287.5 205,290 Q207.5,292.5 210,290 Q212.5,287.5 215,290 Q217.5,292.5 220,290 L220,290" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M200,300 Q202.5,297.5 205,300 Q207.5,302.5 210,300 Q212.5,297.5 215,300 Q217.5,302.5 220,300 L220,300" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M320,290 Q322.5,287.5 325,290 Q327.5,292.5 330,290 Q332.5,287.5 335,290 Q337.5,292.5 340,290 L340,290" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M320,300 Q322.5,297.5 325,300 Q327.5,302.5 330,300 Q332.5,297.5 335,300 Q337.5,302.5 340,300 L340,300" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M210,230 L210,290" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M330,230 L330,290" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M440,290 Q442.5,287.5 445,290 Q447.5,292.5 450,290 Q452.5,287.5 455,290 Q457.5,292.5 460,290 L460,290" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M440,300 Q442.5,297.5 445,300 Q447.5,302.5 450,300 Q452.5,297.5 455,300 Q457.5,302.5 460,300 L460,300" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="1.125 3.35" d="  M450,230 L450,290" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g class="grouped-shape"><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M560,290 Q562.5,287.5 565,290 Q567.5,292.5 570,290 Q572.5,287.5 575,290 Q577.5,292.5 580,290 L580,290" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M560,300 Q562.5,297.5 565,300 Q567.5,302.5 570,300 Q572.5,297.5 575,300 Q577.5,302.5 580,300 L580,300" style="stroke: rgb(0, 0, 0); stroke-width: 3px; fill: none;"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M570,230 L570,290" style="stroke: rgb(0, 0, 0); stroke-width: 1px; fill: none;"/></g><g/></g><g/><g/><g/></svg>
+        <svg xmlns="http://www.w3.org/2000/svg" width="660" height="421.066650390625" style="width:660px;height:421.066650390625px;font-family:Asana-Math, Asana;background:transparent;"><g><g><g style="transform:matrix(1,0,0,1,47.266693115234375,65.81666564941406);"><path d="M342 330L365 330C373 395 380 432 389 458C365 473 330 482 293 482C248 483 175 463 118 400C64 352 25 241 25 136C25 40 67 -11 147 -11C201 -11 249 9 304 54L354 95L346 115L331 105C259 57 221 40 186 40C130 40 101 80 101 159C101 267 136 371 185 409C206 425 230 433 261 433C306 433 342 414 342 390ZM657 722L645 733C593 707 557 698 485 691L481 670L529 670C553 670 563 663 563 648C563 645 563 640 560 622C549 567 476 182 461 132C448 82 442 52 442 31C442 6 453 -9 472 -9C498 -9 534 12 632 85L622 103L596 86C567 67 545 56 535 56C528 56 522 66 522 76C522 82 523 89 526 104ZM717 388L724 368L756 389C793 412 796 414 803 414C813 414 821 404 821 391C821 384 817 361 813 347L747 107C739 76 734 49 734 30C734 6 745 -9 764 -9C790 -9 826 12 924 85L914 103L888 86C859 67 836 56 827 56C820 56 814 66 814 76C814 86 816 95 821 116L898 420C902 437 904 448 904 456C904 473 895 482 879 482C857 482 820 461 745 408ZM911 712C882 712 853 679 853 645C853 620 868 604 892 604C923 604 947 633 947 671C947 695 932 712 911 712ZM1288 111L1264 94C1211 56 1163 36 1127 36C1080 36 1051 73 1051 133C1051 158 1054 185 1059 214C1076 218 1185 248 1210 259C1295 296 1334 342 1334 404C1334 451 1300 482 1250 482C1182 496 1072 423 1035 349C1005 299 975 180 975 113C975 35 1019 -11 1091 -11C1148 -11 1204 17 1296 92ZM1073 274C1090 343 1110 386 1139 412C1157 428 1188 440 1212 440C1241 440 1260 420 1260 388C1260 344 1225 297 1173 272C1145 258 1109 247 1064 237ZM1372 388L1379 368L1411 389C1448 412 1451 414 1458 414C1469 414 1476 404 1476 389C1476 338 1435 145 1394 2L1401 -9C1426 -2 1449 4 1471 8C1490 134 1511 199 1557 268C1611 352 1686 414 1731 414C1742 414 1748 405 1748 390C1748 372 1745 351 1737 319L1685 107C1676 70 1672 47 1672 31C1672 6 1683 -9 1702 -9C1728 -9 1764 12 1862 85L1852 103L1826 86C1797 67 1775 56 1765 56C1758 56 1752 65 1752 76C1752 81 1753 92 1754 96L1820 372C1827 401 1831 429 1831 446C1831 469 1820 482 1800 482C1758 482 1689 444 1630 389C1592 354 1564 320 1512 247L1550 408C1554 426 1556 438 1556 449C1556 470 1548 482 1533 482C1512 482 1473 460 1400 408ZM2028 390L1972 107C1971 99 1959 61 1959 31C1959 6 1970 -9 1989 -9C2024 -9 2059 11 2137 74L2168 99L2158 117L2113 86C2084 66 2064 56 2053 56C2044 56 2039 64 2039 76C2039 102 2053 183 2082 328L2095 390L2202 390L2213 440C2175 436 2141 434 2103 434C2119 528 2130 577 2148 631L2137 646C2117 634 2090 622 2059 610L2034 440C1990 419 1964 408 1946 403L1944 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,85.80001831054688,68.81665649414063);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g><g><g><g style="transform:matrix(1,0,0,1,303.5000305175781,64.31666564941406);"><path d="M368 365C371 403 376 435 384 476C373 481 369 482 364 482C333 482 302 458 266 407C227 351 188 291 172 256L204 408C208 425 210 438 210 450C210 470 202 482 187 482C166 482 128 461 54 408L26 388L33 368L65 389C93 407 104 412 113 412C123 412 130 403 130 390C130 332 87 126 47 -2L57 -9C72 -4 88 -1 111 4L124 6L150 126C168 209 191 262 235 319C269 363 296 384 318 384C333 384 343 379 354 365ZM716 111L692 94C639 56 591 36 555 36C508 36 479 73 479 133C479 158 482 185 487 214C504 218 613 248 638 259C723 296 762 342 762 404C762 451 728 482 678 482C610 496 500 423 463 349C433 299 403 180 403 113C403 35 447 -11 519 -11C576 -11 632 17 724 92ZM501 274C518 343 538 386 567 412C585 428 616 440 640 440C669 440 688 420 688 388C688 344 653 297 601 272C573 258 537 247 492 237ZM952 -11C1008 -11 1123 62 1166 125C1207 186 1241 296 1241 371C1241 438 1218 482 1182 482C1140 482 1087 456 1035 409C994 374 974 348 938 289L962 408C965 425 967 440 967 452C967 471 959 482 945 482C924 482 886 461 812 408L784 388L791 368L823 389C851 407 862 412 871 412C881 412 888 403 888 389C888 381 886 361 884 351L826 8C816 -52 797 -143 777 -233L769 -270L776 -276C797 -269 817 -264 849 -259L891 3C912 -4 934 -11 952 -11ZM919 165C941 293 1048 424 1131 424C1157 424 1169 402 1169 356C1169 275 1129 156 1076 80C1056 51 1024 36 983 36C952 36 927 43 901 59ZM1526 722L1514 733C1462 707 1426 698 1354 691L1350 670L1398 670C1422 670 1432 663 1432 648C1432 645 1432 640 1429 622C1418 567 1345 182 1330 132C1317 82 1311 52 1311 31C1311 6 1322 -9 1341 -9C1367 -9 1403 12 1501 85L1491 103L1465 86C1436 67 1414 56 1404 56C1397 56 1391 66 1391 76C1391 82 1392 89 1395 104ZM1586 388L1593 368L1625 389C1662 412 1665 414 1672 414C1682 414 1690 404 1690 391C1690 384 1686 361 1682 347L1616 107C1608 76 1603 49 1603 30C1603 6 1614 -9 1633 -9C1659 -9 1695 12 1793 85L1783 103L1757 86C1728 67 1705 56 1696 56C1689 56 1683 66 1683 76C1683 86 1685 95 1690 116L1767 420C1771 437 1773 448 1773 456C1773 473 1764 482 1748 482C1726 482 1689 461 1614 408ZM1780 712C1751 712 1722 679 1722 645C1722 620 1737 604 1761 604C1792 604 1816 633 1816 671C1816 695 1801 712 1780 712ZM2171 330L2194 330C2202 395 2209 432 2218 458C2194 473 2159 482 2122 482C2077 483 2004 463 1947 400C1893 352 1854 241 1854 136C1854 40 1896 -11 1976 -11C2030 -11 2078 9 2133 54L2183 95L2175 115L2160 105C2088 57 2050 40 2015 40C1959 40 1930 80 1930 159C1930 267 1965 371 2014 409C2035 425 2059 433 2090 433C2135 433 2171 414 2171 390ZM2506 204L2477 77C2473 60 2471 42 2471 26C2471 4 2480 -9 2495 -9C2518 -9 2559 17 2641 85L2634 106C2610 86 2581 59 2559 59C2550 59 2544 68 2544 82C2544 87 2544 90 2545 93L2637 472L2627 481L2594 463C2553 478 2536 482 2509 482C2481 482 2461 477 2434 464C2372 433 2339 403 2314 354C2270 265 2239 145 2239 67C2239 23 2254 -11 2273 -11C2310 -11 2390 41 2506 204ZM2554 414C2532 305 2513 253 2479 201C2422 117 2361 59 2329 59C2317 59 2311 72 2311 99C2311 163 2339 280 2374 360C2398 415 2421 433 2469 433C2492 433 2510 429 2554 414Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,349.5666809082031,67.31665649414063);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g><g><g><g style="transform:matrix(1,0,0,1,423.5000305175781,65.81666564941406);"><path d="M368 365C371 403 376 435 384 476C373 481 369 482 364 482C333 482 302 458 266 407C227 351 188 291 172 256L204 408C208 425 210 438 210 450C210 470 202 482 187 482C166 482 128 461 54 408L26 388L33 368L65 389C93 407 104 412 113 412C123 412 130 403 130 390C130 332 87 126 47 -2L57 -9C72 -4 88 -1 111 4L124 6L150 126C168 209 191 262 235 319C269 363 296 384 318 384C333 384 343 379 354 365ZM716 111L692 94C639 56 591 36 555 36C508 36 479 73 479 133C479 158 482 185 487 214C504 218 613 248 638 259C723 296 762 342 762 404C762 451 728 482 678 482C610 496 500 423 463 349C433 299 403 180 403 113C403 35 447 -11 519 -11C576 -11 632 17 724 92ZM501 274C518 343 538 386 567 412C585 428 616 440 640 440C669 440 688 420 688 388C688 344 653 297 601 272C573 258 537 247 492 237ZM952 -11C1008 -11 1123 62 1166 125C1207 186 1241 296 1241 371C1241 438 1218 482 1182 482C1140 482 1087 456 1035 409C994 374 974 348 938 289L962 408C965 425 967 440 967 452C967 471 959 482 945 482C924 482 886 461 812 408L784 388L791 368L823 389C851 407 862 412 871 412C881 412 888 403 888 389C888 381 886 361 884 351L826 8C816 -52 797 -143 777 -233L769 -270L776 -276C797 -269 817 -264 849 -259L891 3C912 -4 934 -11 952 -11ZM919 165C941 293 1048 424 1131 424C1157 424 1169 402 1169 356C1169 275 1129 156 1076 80C1056 51 1024 36 983 36C952 36 927 43 901 59ZM1526 722L1514 733C1462 707 1426 698 1354 691L1350 670L1398 670C1422 670 1432 663 1432 648C1432 645 1432 640 1429 622C1418 567 1345 182 1330 132C1317 82 1311 52 1311 31C1311 6 1322 -9 1341 -9C1367 -9 1403 12 1501 85L1491 103L1465 86C1436 67 1414 56 1404 56C1397 56 1391 66 1391 76C1391 82 1392 89 1395 104ZM1586 388L1593 368L1625 389C1662 412 1665 414 1672 414C1682 414 1690 404 1690 391C1690 384 1686 361 1682 347L1616 107C1608 76 1603 49 1603 30C1603 6 1614 -9 1633 -9C1659 -9 1695 12 1793 85L1783 103L1757 86C1728 67 1705 56 1696 56C1689 56 1683 66 1683 76C1683 86 1685 95 1690 116L1767 420C1771 437 1773 448 1773 456C1773 473 1764 482 1748 482C1726 482 1689 461 1614 408ZM1780 712C1751 712 1722 679 1722 645C1722 620 1737 604 1761 604C1792 604 1816 633 1816 671C1816 695 1801 712 1780 712ZM2171 330L2194 330C2202 395 2209 432 2218 458C2194 473 2159 482 2122 482C2077 483 2004 463 1947 400C1893 352 1854 241 1854 136C1854 40 1896 -11 1976 -11C2030 -11 2078 9 2133 54L2183 95L2175 115L2160 105C2088 57 2050 40 2015 40C1959 40 1930 80 1930 159C1930 267 1965 371 2014 409C2035 425 2059 433 2090 433C2135 433 2171 414 2171 390ZM2506 204L2477 77C2473 60 2471 42 2471 26C2471 4 2480 -9 2495 -9C2518 -9 2559 17 2641 85L2634 106C2610 86 2581 59 2559 59C2550 59 2544 68 2544 82C2544 87 2544 90 2545 93L2637 472L2627 481L2594 463C2553 478 2536 482 2509 482C2481 482 2461 477 2434 464C2372 433 2339 403 2314 354C2270 265 2239 145 2239 67C2239 23 2254 -11 2273 -11C2310 -11 2390 41 2506 204ZM2554 414C2532 305 2513 253 2479 201C2422 117 2361 59 2329 59C2317 59 2311 72 2311 99C2311 163 2339 280 2374 360C2398 415 2421 433 2469 433C2492 433 2510 429 2554 414Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,469.5666809082031,68.81665649414063);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g><g><g><g style="transform:matrix(1,0,0,1,543.5000305175781,65.81666564941406);"><path d="M368 365C371 403 376 435 384 476C373 481 369 482 364 482C333 482 302 458 266 407C227 351 188 291 172 256L204 408C208 425 210 438 210 450C210 470 202 482 187 482C166 482 128 461 54 408L26 388L33 368L65 389C93 407 104 412 113 412C123 412 130 403 130 390C130 332 87 126 47 -2L57 -9C72 -4 88 -1 111 4L124 6L150 126C168 209 191 262 235 319C269 363 296 384 318 384C333 384 343 379 354 365ZM716 111L692 94C639 56 591 36 555 36C508 36 479 73 479 133C479 158 482 185 487 214C504 218 613 248 638 259C723 296 762 342 762 404C762 451 728 482 678 482C610 496 500 423 463 349C433 299 403 180 403 113C403 35 447 -11 519 -11C576 -11 632 17 724 92ZM501 274C518 343 538 386 567 412C585 428 616 440 640 440C669 440 688 420 688 388C688 344 653 297 601 272C573 258 537 247 492 237ZM952 -11C1008 -11 1123 62 1166 125C1207 186 1241 296 1241 371C1241 438 1218 482 1182 482C1140 482 1087 456 1035 409C994 374 974 348 938 289L962 408C965 425 967 440 967 452C967 471 959 482 945 482C924 482 886 461 812 408L784 388L791 368L823 389C851 407 862 412 871 412C881 412 888 403 888 389C888 381 886 361 884 351L826 8C816 -52 797 -143 777 -233L769 -270L776 -276C797 -269 817 -264 849 -259L891 3C912 -4 934 -11 952 -11ZM919 165C941 293 1048 424 1131 424C1157 424 1169 402 1169 356C1169 275 1129 156 1076 80C1056 51 1024 36 983 36C952 36 927 43 901 59ZM1526 722L1514 733C1462 707 1426 698 1354 691L1350 670L1398 670C1422 670 1432 663 1432 648C1432 645 1432 640 1429 622C1418 567 1345 182 1330 132C1317 82 1311 52 1311 31C1311 6 1322 -9 1341 -9C1367 -9 1403 12 1501 85L1491 103L1465 86C1436 67 1414 56 1404 56C1397 56 1391 66 1391 76C1391 82 1392 89 1395 104ZM1586 388L1593 368L1625 389C1662 412 1665 414 1672 414C1682 414 1690 404 1690 391C1690 384 1686 361 1682 347L1616 107C1608 76 1603 49 1603 30C1603 6 1614 -9 1633 -9C1659 -9 1695 12 1793 85L1783 103L1757 86C1728 67 1705 56 1696 56C1689 56 1683 66 1683 76C1683 86 1685 95 1690 116L1767 420C1771 437 1773 448 1773 456C1773 473 1764 482 1748 482C1726 482 1689 461 1614 408ZM1780 712C1751 712 1722 679 1722 645C1722 620 1737 604 1761 604C1792 604 1816 633 1816 671C1816 695 1801 712 1780 712ZM2171 330L2194 330C2202 395 2209 432 2218 458C2194 473 2159 482 2122 482C2077 483 2004 463 1947 400C1893 352 1854 241 1854 136C1854 40 1896 -11 1976 -11C2030 -11 2078 9 2133 54L2183 95L2175 115L2160 105C2088 57 2050 40 2015 40C1959 40 1930 80 1930 159C1930 267 1965 371 2014 409C2035 425 2059 433 2090 433C2135 433 2171 414 2171 390ZM2506 204L2477 77C2473 60 2471 42 2471 26C2471 4 2480 -9 2495 -9C2518 -9 2559 17 2641 85L2634 106C2610 86 2581 59 2559 59C2550 59 2544 68 2544 82C2544 87 2544 90 2545 93L2637 472L2627 481L2594 463C2553 478 2536 482 2509 482C2481 482 2461 477 2434 464C2372 433 2339 403 2314 354C2270 265 2239 145 2239 67C2239 23 2254 -11 2273 -11C2310 -11 2390 41 2506 204ZM2554 414C2532 305 2513 253 2479 201C2422 117 2361 59 2329 59C2317 59 2311 72 2311 99C2311 163 2339 280 2374 360C2398 415 2421 433 2469 433C2492 433 2510 429 2554 414Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,589.5666809082031,68.81665649414063);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,461.8333435058594,134.81666564941406);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0ZM754 219C754 421 647 461 576 461C465 461 375 355 375 226C375 94 471 -11 591 -11C654 -11 711 13 750 41L744 106C681 54 615 50 592 50C512 50 448 121 445 219ZM450 274C466 350 519 400 576 400C628 400 684 366 697 274ZM1143 128C1143 183 1106 217 1104 220C1065 255 1038 261 988 270C933 281 887 291 887 340C887 402 959 402 972 402C1004 402 1057 398 1114 364L1126 429C1074 453 1033 461 982 461C957 461 816 461 816 330C816 281 845 249 870 230C901 208 923 204 978 193C1014 186 1072 174 1072 121C1072 52 993 52 978 52C897 52 841 89 823 101L811 33C843 17 898 -11 979 -11C1117 -11 1143 75 1143 128ZM1340 386L1481 386L1481 444L1340 444L1340 571L1271 571L1271 444L1184 444L1184 386L1268 386L1268 119C1268 59 1282 -11 1351 -11C1421 -11 1472 14 1497 27L1481 86C1455 65 1423 53 1391 53C1354 53 1340 83 1340 136ZM1924 289C1924 391 1851 461 1759 461C1694 461 1649 445 1602 418L1608 352C1660 389 1710 402 1759 402C1806 402 1846 362 1846 288L1846 245C1696 243 1569 201 1569 113C1569 70 1596 -11 1683 -11C1697 -11 1791 -9 1849 36L1849 0L1924 0ZM1846 132C1846 113 1846 88 1812 69C1783 51 1745 50 1734 50C1686 50 1641 73 1641 115C1641 185 1803 192 1846 194ZM2161 214C2161 314 2233 386 2331 388L2331 455C2242 454 2187 405 2156 359L2156 450L2086 450L2086 0L2161 0ZM2519 386L2660 386L2660 444L2519 444L2519 571L2450 571L2450 444L2363 444L2363 386L2447 386L2447 119C2447 59 2461 -11 2530 -11C2600 -11 2651 14 2676 27L2660 86C2634 65 2602 53 2570 53C2533 53 2519 83 2519 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,507.8166809082031,134.81666564941406);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,513.4667053222656,134.81666564941406);"><path d="M368 365C371 403 376 435 384 476C373 481 369 482 364 482C333 482 302 458 266 407C227 351 188 291 172 256L204 408C208 425 210 438 210 450C210 470 202 482 187 482C166 482 128 461 54 408L26 388L33 368L65 389C93 407 104 412 113 412C123 412 130 403 130 390C130 332 87 126 47 -2L57 -9C72 -4 88 -1 111 4L124 6L150 126C168 209 191 262 235 319C269 363 296 384 318 384C333 384 343 379 354 365Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,520.5833435058594,137.81665649414063);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,527.5333557128906,134.81666564941406);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g style="transform:matrix(1,0,0,1,191.48330688476562,63.29998779296875);"><path d="M342 330L365 330C373 395 380 432 389 458C365 473 330 482 293 482C248 483 175 463 118 400C64 352 25 241 25 136C25 40 67 -11 147 -11C201 -11 249 9 304 54L354 95L346 115L331 105C259 57 221 40 186 40C130 40 101 80 101 159C101 267 136 371 185 409C206 425 230 433 261 433C306 433 342 414 342 390ZM423 152C423 46 468 -11 551 -11C606 -11 666 15 711 57C773 116 817 230 817 331C817 425 767 482 684 482C580 482 423 382 423 152ZM647 444C708 444 741 399 741 315C741 219 710 113 666 60C648 39 622 27 591 27C533 27 499 72 499 151C499 264 538 387 587 427C600 438 623 444 647 444ZM866 152C866 46 911 -11 994 -11C1049 -11 1109 15 1154 57C1216 116 1260 230 1260 331C1260 425 1210 482 1127 482C1023 482 866 382 866 152ZM1090 444C1151 444 1184 399 1184 315C1184 219 1153 113 1109 60C1091 39 1065 27 1034 27C976 27 942 72 942 151C942 264 981 387 1030 427C1043 438 1066 444 1090 444ZM1660 365C1663 403 1668 435 1676 476C1665 481 1661 482 1656 482C1625 482 1594 458 1558 407C1519 351 1480 291 1464 256L1496 408C1500 425 1502 438 1502 450C1502 470 1494 482 1479 482C1458 482 1420 461 1346 408L1318 388L1325 368L1357 389C1385 407 1396 412 1405 412C1415 412 1422 403 1422 390C1422 332 1379 126 1339 -2L1349 -9C1364 -4 1380 -1 1403 4L1416 6L1442 126C1460 209 1483 262 1527 319C1561 363 1588 384 1610 384C1625 384 1635 379 1646 365ZM2163 722L2151 733C2099 707 2063 698 1991 691L1987 670L2035 670C2059 670 2069 663 2069 646C2069 638 2068 629 2067 622L2039 468C2009 477 1982 482 1957 482C1888 482 1794 410 1748 323C1717 265 1697 170 1697 86C1697 21 1712 -11 1741 -11C1768 -11 1805 6 1839 33C1893 77 1926 116 1993 217L1970 126C1959 82 1954 50 1954 24C1954 3 1963 -9 1980 -9C1997 -9 2021 3 2055 28L2136 88L2126 107L2082 76C2068 66 2052 59 2043 59C2035 59 2029 68 2029 82C2029 90 2030 99 2037 128ZM1794 59C1778 59 1769 73 1769 98C1769 224 1815 380 1864 418C1877 428 1896 433 1923 433C1967 433 1996 427 2029 410L2017 351C1980 171 1839 59 1794 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,79.63333129882812,386.40000915527344);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,231.00003051757812,115.31666564941406);"><path d="M260 229L443 444L361 444L227 279L89 444L6 444L194 229L0 0L82 0L227 188L377 0L460 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,246.44998168945312,115.31666564941406);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,267.0666809082031,115.31666564941406);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,275.5500183105469,115.31666564941406);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,283.1833190917969,115.31666564941406);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,294.0500183105469,118.31665649414063);"><path d="M457 331C457 412 453 506 411 588C370 665 301 689 250 689C191 689 121 662 80 571C47 497 42 413 42 331C42 251 46 177 76 103C116 5 192 -22 249 -22C322 -22 385 19 417 89C447 155 457 223 457 331ZM250 40C198 40 157 78 137 151C121 209 120 264 120 343C120 407 120 468 137 524C143 544 168 627 249 627C327 627 353 550 360 531C379 475 379 406 379 343C379 276 379 212 361 148C335 56 282 40 250 40Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,250.25003051757812,184.81666564941406);"><path d="M399 289C399 391 326 461 234 461C169 461 124 445 77 418L83 352C135 389 185 402 234 402C281 402 321 362 321 288L321 245C171 243 44 201 44 113C44 70 71 -11 158 -11C172 -11 266 -9 324 36L324 0L399 0ZM321 132C321 113 321 88 287 69C258 51 220 50 209 50C161 50 116 73 116 115C116 185 278 192 321 194ZM889 418C830 452 796 461 735 461C596 461 515 340 515 222C515 98 606 -11 731 -11C785 -11 840 3 894 40L888 107C837 67 783 53 732 53C649 53 593 125 593 223C593 301 630 397 736 397C788 397 822 389 877 353ZM1203 272L1371 444L1281 444L1078 236L1078 694L1006 694L1006 0L1075 0L1075 141L1155 224L1311 0L1393 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,274.2167053222656,184.81666564941406);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,279.8666687011719,184.81666564941406);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,286.1666564941406,187.81665649414063);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,293.1166687011719,184.81666564941406);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,479.7500305175781,194.81666564941406);"><path d="M399 289C399 391 326 461 234 461C169 461 124 445 77 418L83 352C135 389 185 402 234 402C281 402 321 362 321 288L321 245C171 243 44 201 44 113C44 70 71 -11 158 -11C172 -11 266 -9 324 36L324 0L399 0ZM321 132C321 113 321 88 287 69C258 51 220 50 209 50C161 50 116 73 116 115C116 185 278 192 321 194ZM889 418C830 452 796 461 735 461C596 461 515 340 515 222C515 98 606 -11 731 -11C785 -11 840 3 894 40L888 107C837 67 783 53 732 53C649 53 593 125 593 223C593 301 630 397 736 397C788 397 822 389 877 353ZM1203 272L1371 444L1281 444L1078 236L1078 694L1006 694L1006 0L1075 0L1075 141L1155 224L1311 0L1393 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,503.7167053222656,194.81666564941406);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,509.3666687011719,194.81666564941406);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,515.6666564941406,197.8166717529297);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,522.6166687011719,194.81666564941406);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,81.03335571289062,182.5);"><path d="M399 289C399 391 326 461 234 461C169 461 124 445 77 418L83 352C135 389 185 402 234 402C281 402 321 362 321 288L321 245C171 243 44 201 44 113C44 70 71 -11 158 -11C172 -11 266 -9 324 36L324 0L399 0ZM321 132C321 113 321 88 287 69C258 51 220 50 209 50C161 50 116 73 116 115C116 185 278 192 321 194ZM889 418C830 452 796 461 735 461C596 461 515 340 515 222C515 98 606 -11 731 -11C785 -11 840 3 894 40L888 107C837 67 783 53 732 53C649 53 593 125 593 223C593 301 630 397 736 397C788 397 822 389 877 353ZM1203 272L1371 444L1281 444L1078 236L1078 694L1006 694L1006 0L1075 0L1075 141L1155 224L1311 0L1393 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,105.51669311523438,185.44998779296876);"><path d="M434 455L359 455L359 387C349 400 300 455 222 455C122 455 36 356 36 221C36 94 109 -11 205 -11C261 -11 314 12 356 50L356 -194L434 -194ZM359 140C359 122 359 120 349 107C323 67 286 50 250 50C174 50 114 128 114 221C114 323 186 391 259 391C328 391 359 320 359 280ZM950 444L872 444L872 154C872 79 816 44 752 44C681 44 674 70 674 113L674 444L596 444L596 109C596 37 619 -11 702 -11C755 -11 826 5 875 48L875 0L950 0ZM1499 220C1499 354 1399 461 1280 461C1157 461 1060 351 1060 220C1060 88 1162 -11 1279 -11C1399 -11 1499 90 1499 220ZM1279 53C1210 53 1138 109 1138 230C1138 351 1214 400 1279 400C1349 400 1421 348 1421 230C1421 112 1353 53 1279 53ZM1686 214C1686 314 1758 386 1856 388L1856 455C1767 454 1712 405 1681 359L1681 450L1611 450L1611 0L1686 0ZM2304 444L2226 444L2226 154C2226 79 2170 44 2106 44C2035 44 2028 70 2028 113L2028 444L1950 444L1950 109C1950 37 1973 -11 2056 -11C2109 -11 2180 5 2229 48L2229 0L2304 0ZM3097 298C3097 365 3081 455 2960 455C2900 455 2848 427 2811 373C2785 449 2715 455 2683 455C2611 455 2564 414 2537 378L2537 450L2465 450L2465 0L2543 0L2543 245C2543 313 2570 394 2644 394C2737 394 2742 329 2742 291L2742 0L2820 0L2820 245C2820 313 2847 394 2921 394C3014 394 3019 329 3019 291L3019 0L3097 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g><g><svg x="145.88333129882812" style="overflow:visible;" y="164.5" height="24" width="8.5"><path d=" M 6.61 1.70 q 0.00 -0.08 -0.08 -0.08 q -0.03 0.00 -0.08 0.02 q -1.01 0.55 -1.75 1.30 t -1.37 1.87 t -0.95 2.78 t -0.33 3.79 v 0.62 h 1.68 v -0.62 q 0.00 -1.20 0.04 -2.08 t 0.22 -2.04 t 0.50 -2.03 t 0.91 -1.74 t 1.43 -1.49 q 0.12 -0.09 0.12 -0.29 z   M 0.90 12.00 v 0.00 h 1.68 v 0.00 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path><path d=" M 6.61 22.30 q 0.00 0.08 -0.08 0.08 q -0.03 0.00 -0.08 -0.02 q -1.01 -0.55 -1.75 -1.30 t -1.37 -1.87 t -0.95 -2.78 t -0.33 -3.79 v -0.62 h 1.68 v 0.62 q 0.00 1.20 0.04 2.08 t 0.22 2.04 t 0.50 2.03 t 0.91 1.74 t 1.43 1.49 q 0.12 0.09 0.12 0.29 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path></svg></g><g style="transform:matrix(1,0,0,1,152.68331909179688,182.5);"><path d="M260 229L443 444L361 444L227 279L89 444L6 444L194 229L0 0L82 0L227 188L377 0L460 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,163.89999389648438,182.5);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,184.51669311523438,182.5);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><svg x="191.30001831054688" style="overflow:visible;" y="164.5" height="24" width="8.5"><path d=" M 1.69 1.70 q 0.00 -0.08 0.08 -0.08 q 0.03 0.00 0.08 0.02 q 1.01 0.55 1.75 1.30 t 1.37 1.87 t 0.95 2.78 t 0.33 3.79 v 0.62 h -1.68 v -0.62 q 0.00 -1.20 -0.04 -2.08 t -0.22 -2.04 t -0.50 -2.03 t -0.91 -1.74 t -1.43 -1.49 q -0.12 -0.09 -0.12 -0.29 z  M 7.40 12.00 v 0.00 h -1.68 v 0.00 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path><path d=" M 1.69 22.30 q 0.00 0.08 0.08 0.08 q 0.03 0.00 0.08 -0.02 q 1.01 -0.55 1.75 -1.30 t 1.37 -1.87 t 0.95 -2.78 t 0.33 -3.79 v -0.62 h -1.68 v 0.62 q 0.00 1.20 -0.04 2.08 t -0.22 2.04 t -0.50 2.03 t -0.91 1.74 t -1.43 1.49 q -0.12 0.09 -0.12 0.29 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path></svg></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,35.45001220703125,116.81666564941406);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,41.616668701171875,119.81665649414063);"><path d="M263 689C108 689 29 566 29 324C29 207 50 106 85 57C120 8 176 -20 238 -20C389 -20 465 110 465 366C465 585 400 689 263 689ZM245 654C342 654 381 556 381 316C381 103 343 15 251 15C154 15 113 116 113 360C113 571 150 654 245 654Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,35.45001220703125,206.81666564941406);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,41.616668701171875,209.8166717529297);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,35.45001220703125,256.81666564941406);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,41.616668701171875,259.81667175292966);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,35.45001220703125,336.81666564941406);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,41.616668701171875,339.81667175292966);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,217.80001831054688,249.49998474121094);"><path d="M435 298C435 364 420 455 298 455C236 455 188 424 156 383L156 694L81 694L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0ZM678 680L589 680L589 591L678 591ZM671 444L596 444L596 0L671 0ZM1187 298C1187 364 1172 455 1050 455C960 455 911 387 905 379L905 450L833 450L833 0L911 0L911 245C911 311 936 394 1012 394C1108 394 1109 323 1109 291L1109 0L1187 0ZM1442 386L1583 386L1583 444L1442 444L1442 571L1373 571L1373 444L1286 444L1286 386L1370 386L1370 119C1370 59 1384 -11 1453 -11C1523 -11 1574 14 1599 27L1583 86C1557 65 1525 53 1493 53C1456 53 1442 83 1442 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><svg x="246.98330688476562" style="overflow:visible;" y="231.49998474121094" height="26" width="8.5"><path d=" M 6.61 1.70 q 0.00 -0.09 -0.08 -0.09 q -0.03 0.00 -0.08 0.03 q -1.01 0.61 -1.75 1.42 t -1.37 2.06 t -0.95 3.05 t -0.33 4.16 v 0.68 h 1.68 v -0.68 q 0.00 -1.31 0.04 -2.28 t 0.22 -2.24 t 0.50 -2.23 t 0.91 -1.91 t 1.43 -1.63 q 0.12 -0.10 0.12 -0.32 z   M 0.90 13.00 v 0.00 h 1.68 v 0.00 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path><path d=" M 6.61 24.30 q 0.00 0.09 -0.08 0.09 q -0.03 0.00 -0.08 -0.03 q -1.01 -0.61 -1.75 -1.42 t -1.37 -2.06 t -0.95 -3.05 t -0.33 -4.16 v -0.68 h 1.68 v 0.68 q 0.00 1.31 0.04 2.28 t 0.22 2.24 t 0.50 2.23 t 0.91 1.91 t 1.43 1.63 q 0.12 0.10 0.12 0.32 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path></svg></g><g style="transform:matrix(1,0,0,1,253.78335571289062,249.49998474121094);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,260.0833435058594,252.49999084472657);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,267.0333557128906,249.49998474121094);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,274.6666564941406,249.49998474121094);"><path d="M509 229L692 444L610 444L476 279L338 444L255 444L443 229L249 0L331 0L476 188L626 0L709 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,290.1166687011719,249.49998474121094);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,310.7333068847656,249.49998474121094);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><svg x="317.5166931152344" style="overflow:visible;" y="231.49998474121094" height="26" width="8.5"><path d=" M 1.69 1.70 q 0.00 -0.09 0.08 -0.09 q 0.03 0.00 0.08 0.03 q 1.01 0.61 1.75 1.42 t 1.37 2.06 t 0.95 3.05 t 0.33 4.16 v 0.68 h -1.68 v -0.68 q 0.00 -1.31 -0.04 -2.28 t -0.22 -2.24 t -0.50 -2.23 t -0.91 -1.91 t -1.43 -1.63 q -0.12 -0.10 -0.12 -0.32 z  M 7.40 13.00 v 0.00 h -1.68 v 0.00 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path><path d=" M 1.69 24.30 q 0.00 0.09 0.08 0.09 q 0.03 0.00 0.08 -0.03 q 1.01 -0.61 1.75 -1.42 t 1.37 -2.06 t 0.95 -3.05 t 0.33 -4.16 v -0.68 h -1.68 v 0.68 q 0.00 1.31 -0.04 2.28 t -0.22 2.24 t -0.50 2.23 t -0.91 1.91 t -1.43 1.63 q -0.12 0.10 -0.12 0.32 z" style="fill:rgb(0, 0, 0);stroke-width:1px;stroke:none;"></path></svg></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,351.9499816894531,316.81666564941406);"><path d="M399 289C399 391 326 461 234 461C169 461 124 445 77 418L83 352C135 389 185 402 234 402C281 402 321 362 321 288L321 245C171 243 44 201 44 113C44 70 71 -11 158 -11C172 -11 266 -9 324 36L324 0L399 0ZM321 132C321 113 321 88 287 69C258 51 220 50 209 50C161 50 116 73 116 115C116 185 278 192 321 194ZM635 694L560 694L560 0L635 0ZM879 680L790 680L790 591L879 591ZM872 444L797 444L797 0L872 0ZM1399 444L1324 444C1272 299 1181 47 1185 53L1184 53L1045 444L967 444L1139 0L1227 0ZM1827 219C1827 421 1720 461 1649 461C1538 461 1448 355 1448 226C1448 94 1544 -11 1664 -11C1727 -11 1784 13 1823 41L1817 106C1754 54 1688 50 1665 50C1585 50 1521 121 1518 219ZM1523 274C1539 350 1592 400 1649 400C1701 400 1757 366 1770 274Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,383.5166931152344,316.81666564941406);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,389.1666564941406,316.81666564941406);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,395.4667053222656,319.81667175292966);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,402.4166564941406,316.81666564941406);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,35.45001220703125,366.81666564941406);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,41.616668701171875,369.81667175292966);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,231.50003051757812,134.81666564941406);"><path d="M260 229L443 444L361 444L227 279L89 444L6 444L194 229L0 0L82 0L227 188L377 0L460 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,246.94998168945312,134.81666564941406);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,267.5666809082031,134.81666564941406);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,276.0500183105469,134.81666564941406);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,283.6833190917969,134.81666564941406);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,294.5500183105469,137.81665649414063);"><path d="M457 331C457 412 453 506 411 588C370 665 301 689 250 689C191 689 121 662 80 571C47 497 42 413 42 331C42 251 46 177 76 103C116 5 192 -22 249 -22C322 -22 385 19 417 89C447 155 457 223 457 331ZM250 40C198 40 157 78 137 151C121 209 120 264 120 343C120 407 120 468 137 524C143 544 168 627 249 627C327 627 353 550 360 531C379 475 379 406 379 343C379 276 379 212 361 148C335 56 282 40 250 40Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,231.50003051757812,156.81666564941406);"><path d="M260 229L443 444L361 444L227 279L89 444L6 444L194 229L0 0L82 0L227 188L377 0L460 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,246.94998168945312,156.81666564941406);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,267.5666809082031,156.81666564941406);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,276.0500183105469,156.81666564941406);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,283.6833190917969,156.81666564941406);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,294.5500183105469,159.81665649414063);"><path d="M457 331C457 412 453 506 411 588C370 665 301 689 250 689C191 689 121 662 80 571C47 497 42 413 42 331C42 251 46 177 76 103C116 5 192 -22 249 -22C322 -22 385 19 417 89C447 155 457 223 457 331ZM250 40C198 40 157 78 137 151C121 209 120 264 120 343C120 407 120 468 137 524C143 544 168 627 249 627C327 627 353 550 360 531C379 475 379 406 379 343C379 276 379 212 361 148C335 56 282 40 250 40Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,101.5,114.81666564941406);"><path d="M260 229L443 444L361 444L227 279L89 444L6 444L194 229L0 0L82 0L227 188L377 0L460 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,116.95001220703125,114.81666564941406);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,137.56668090820312,114.81666564941406);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,146.05001831054688,114.81666564941406);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,153.68331909179688,114.81666564941406);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,164.55001831054688,117.81665649414063);"><path d="M457 331C457 412 453 506 411 588C370 665 301 689 250 689C191 689 121 662 80 571C47 497 42 413 42 331C42 251 46 177 76 103C116 5 192 -22 249 -22C322 -22 385 19 417 89C447 155 457 223 457 331ZM250 40C198 40 157 78 137 151C121 209 120 264 120 343C120 407 120 468 137 524C143 544 168 627 249 627C327 627 353 550 360 531C379 475 379 406 379 343C379 276 379 212 361 148C335 56 282 40 250 40Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,231.50003051757812,354.81666564941406);"><path d="M260 229L443 444L361 444L227 279L89 444L6 444L194 229L0 0L82 0L227 188L377 0L460 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,246.94998168945312,354.81666564941406);"><path d="M949 241L949 300L179 300L304 452L272 486L65 269L272 55L304 89L179 241Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,267.5666809082031,354.81666564941406);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,276.0500183105469,354.81666564941406);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g style="transform:matrix(1,0,0,1,283.6833190917969,354.81666564941406);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,294.5500183105469,357.81667175292966);"><path d="M457 331C457 412 453 506 411 588C370 665 301 689 250 689C191 689 121 662 80 571C47 497 42 413 42 331C42 251 46 177 76 103C116 5 192 -22 249 -22C322 -22 385 19 417 89C447 155 457 223 457 331ZM250 40C198 40 157 78 137 151C121 209 120 264 120 343C120 407 120 468 137 524C143 544 168 627 249 627C327 627 353 550 360 531C379 475 379 406 379 343C379 276 379 212 361 148C335 56 282 40 250 40Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,219.63333129882812,386.40000915527344);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,339.6166687011719,386.40000915527344);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,459.6166687011719,386.40000915527344);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,579.6166687011719,386.40000915527344);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g></g></g></g></g></g></svg>
+</svg>
diff --git a/src/doc/3.11.11/_images/ring.svg b/src/doc/3.11.11/_images/ring.svg
new file mode 100644
index 0000000..d0db8c5
--- /dev/null
+++ b/src/doc/3.11.11/_images/ring.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="651" height="709.4583740234375" style="
+        width:651px;
+        height:709.4583740234375px;
+        background: transparent;
+        fill: none;
+">
+        
+        
+        <svg xmlns="http://www.w3.org/2000/svg" class="role-diagram-draw-area"><g class="shapes-region" style="stroke: black; fill: none;"><g class="composite-shape"><path class="real" d=" M223.5,655 C223.5,634.84 239.84,618.5 260,618.5 C280.16,618.5 296.5,634.84 296.5,655 C296.5,675.16 280.16,691.5 260,691.5 C239.84,691.5 223.5,675.16 223.5,655 Z" style="stroke-width: 1; stroke: rgb(103, 148, 135); fill: rgb(103, 148, 135);"/></g><g class="composite-shape"><path class="real" d=" M229.26,655 C229.26,638.02 243.02,624.26 260,624.26 C276.98,624.26 290.74,638.02 290.74,655 C290.74,671.98 276.98,685.74 260,685.74 C243.02,685.74 229.26,671.98 229.26,655 Z" style="stroke-width: 1; stroke: rgb(202, 194, 126); fill: rgb(202, 194, 126);"/></g><g class="composite-shape"><path class="real" d=" M377.5,595 C377.5,571.53 396.53,552.5 420,552.5 C443.47,552.5 462.5,571.53 462.5,595 C462.5,618.47 443.47,637.5 420,637.5 C396.53,637.5 377.5,618.47 377.5,595 Z" style="stroke-width: 1; stroke: rgb(103, 148, 135); fill: rgb(103, 148, 135);"/></g><g class="composite-shape"><path class="real" d=" M384.06,595 C384.06,575.15 400.15,559.06 420,559.06 C439.85,559.06 455.94,575.15 455.94,595 C455.94,614.85 439.85,630.94 420,630.94 C400.15,630.94 384.06,614.85 384.06,595 Z" style="stroke-width: 1; stroke: rgb(202, 194, 126); fill: rgb(202, 194, 126);"/></g><g class="composite-shape"><path class="real" d=" M390,595 C390,578.43 403.43,565 420,565 C436.57,565 450,578.43 450,595 C450,611.57 436.57,625 420,625 C403.43,625 390,611.57 390,595 Z" style="stroke-width: 1; stroke: rgb(130, 192, 233); fill: rgb(130, 192, 233);"/></g><g class="composite-shape"><path class="real" d=" M444.06,435 C444.06,415.15 460.15,399.06 480,399.06 C499.85,399.06 515.94,415.15 515.94,435 C515.94,454.85 499.85,470.94 480,470.94 C460.15,470.94 444.06,454.85 444.06,435 Z" style="stroke-width: 1; stroke: rgb(202, 194, 126); fill: rgb(202, 194, 126);"/></g><g class="composite-shape"><path class="real" d=" M450,435 C450,418.43 463.43,405 480,405 C496.57,405 510,418.43 510,435 C510,451.57 496.57,465 480,465 C463.43,465 450,451.57 450,435 Z" style="stroke-width: 1; stroke: rgb(130, 192, 233); fill: rgb(130, 192, 233);"/></g><g class="composite-shape"><path class="real" d=" M390,275 C390,258.43 403.43,245 420,245 C436.57,245 450,258.43 450,275 C450,291.57 436.57,305 420,305 C403.43,305 390,291.57 390,275 Z" style="stroke-width: 1; stroke: rgb(130, 192, 233); fill: rgb(130, 192, 233);"/></g><g class="composite-shape"><path class="real" d=" M40,435 C40,313.5 138.5,215 260,215 C381.5,215 480,313.5 480,435 C480,556.5 381.5,655 260,655 C138.5,655 40,556.5 40,435 Z" style="stroke-width: 1; stroke: rgba(0, 0, 0, 0.52); fill: none; stroke-dasharray: 1.125, 3.35;"/></g><g class="grouped-shape"><g class="composite-shape"><path class="real" d=" M90,435 C90,341.11 166.11,265 260,265 C353.89,265 430,341.11 430,435 C430,528.89 353.89,605 260,605 C166.11,605 90,528.89 90,435 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="composite-shape"><path class="real" d=" M111.25,435 C111.25,352.85 177.85,286.25 260,286.25 C342.15,286.25 408.75,352.85 408.75,435 C408.75,517.15 342.15,583.75 260,583.75 C177.85,583.75 111.25,517.15 111.25,435 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: none;"/></g><g class="composite-shape"><path class="real" d=" M132.5,435 C132.5,364.58 189.58,307.5 260,307.5 C330.42,307.5 387.5,364.58 387.5,435 C387.5,505.42 330.42,562.5 260,562.5 C189.58,562.5 132.5,505.42 132.5,435 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: none;"/></g></g><g class="composite-shape"><path class="real" d=" M235,655 C235,641.19 246.19,630 260,630 C273.81,630 285,641.19 285,655 C285,668.81 273.81,680 260,680 C246.19,680 235,668.81 235,655 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="grouped-shape"><g class="composite-shape"><path class="real" d=" M235,215 C235,201.19 246.19,190 260,190 C273.81,190 285,201.19 285,215 C285,228.81 273.81,240 260,240 C246.19,240 235,228.81 235,215 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g></g><g class="composite-shape"><path class="real" d=" M455,435 C455,421.19 466.19,410 480,410 C493.81,410 505,421.19 505,435 C505,448.81 493.81,460 480,460 C466.19,460 455,448.81 455,435 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M15,435 C15,421.19 26.19,410 40,410 C53.81,410 65,421.19 65,435 C65,448.81 53.81,460 40,460 C26.19,460 15,448.81 15,435 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M395,275 C395,261.19 406.19,250 420,250 C433.81,250 445,261.19 445,275 C445,288.81 433.81,300 420,300 C406.19,300 395,288.81 395,275 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M395,595 C395,581.19 406.19,570 420,570 C433.81,570 445,581.19 445,595 C445,608.81 433.81,620 420,620 C406.19,620 395,608.81 395,595 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M75,595 C75,581.19 86.19,570 100,570 C113.81,570 125,581.19 125,595 C125,608.81 113.81,620 100,620 C86.19,620 75,608.81 75,595 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="grouped-shape"><g class="composite-shape"><path class="real" d=" M75,275 C75,261.19 86.19,250 100,250 C113.81,250 125,261.19 125,275 C125,288.81 113.81,300 100,300 C86.19,300 75,288.81 75,275 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M268.22,265.22 C401.65,271.85 490.67,424.28 380,555" style="stroke: rgb(130, 192, 233); stroke-width: 6; fill: none;"/><g stroke="rgba(130,192,233,1)" transform="matrix(0.9999897039488793,0.00453784048117526,-0.00453784048117526,0.9999897039488793,260,265)" style="stroke: rgb(130, 192, 233); stroke-width: 6;"><circle cx="0" cy="0" r="9.045000000000002"/></g><g stroke="rgba(130,192,233,1)" fill="rgba(130,192,233,1)" transform="matrix(-0.6461239796429636,0.763232469782529,-0.763232469782529,-0.6461239796429636,380,555)" style="stroke: rgb(130, 192, 233); fill: rgb(130, 192, 233); stroke-width: 6;"><circle cx="0" cy="0" r="9.045000000000002"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M366.47,330.7 C447.68,407.15 414.54,574.62 260,583.75" style="stroke: rgb(202, 194, 126); stroke-width: 6; fill: none;"/><g stroke="rgba(202,194,126,1)" transform="matrix(0.7722902597301384,0.6352698282824042,-0.6352698282824042,0.7722902597301384,360,325)" style="stroke: rgb(202, 194, 126); stroke-width: 6;"><circle cx="0" cy="0" r="9.045000000000002"/></g><g stroke="rgba(202,194,126,1)" fill="rgba(202,194,126,1)" transform="matrix(-0.9982604689368237,0.05895791853545039,-0.05895791853545039,-0.9982604689368237,260,583.7499999999999)" style="stroke: rgb(202, 194, 126); fill: rgb(202, 194, 126); stroke-width: 6;"><circle cx="0" cy="0" r="9.045000000000002"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M387.19,443.58 C380.1,535.72 254.02,615.51 160,515" style="stroke: rgb(103, 148, 135); stroke-width: 6; fill: none;"/><g stroke="rgba(103,148,135,1)" transform="matrix(0.004537840481175261,0.9999897039488793,-0.9999897039488793,0.004537840481175261,387.5,435)" style="stroke: rgb(103, 148, 135); stroke-width: 6;"><circle cx="0" cy="0" r="9.045000000000002"/></g><g stroke="rgba(103,148,135,1)" fill="rgba(103,148,135,1)" transform="matrix(-0.6831463259165826,-0.7302815192695721,0.7302815192695721,-0.6831463259165826,160,515)" style="stroke: rgb(103, 148, 135); fill: rgb(103, 148, 135); stroke-width: 6;"><circle cx="0" cy="0" r="9.045000000000002"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M345,195 L316.4,271.25" style="stroke: rgb(130, 192, 233); stroke-width: 3; fill: none;"/><g stroke="rgba(130,192,233,1)" transform="matrix(0.3511880698803796,-0.9363049394154095,0.9363049394154095,0.3511880698803796,315,275)" style="stroke: rgb(130, 192, 233); stroke-width: 3;"><path d=" M17.49,-5.26 Q7.94,-0.72 0,0 Q7.94,0.72 17.49,5.26"/></g></g><g class="arrow-line"><path class="connection real" stroke-dasharray="" d="  M485,330 L403.62,368.3" style="stroke: rgb(202, 194, 126); stroke-width: 3; fill: none;"/><g stroke="rgba(202,194,126,1)" transform="matrix(0.9048270524660194,-0.425779291565073,0.425779291565073,0.9048270524660194,400,370)" style="stroke: rgb(202, 194, 126); stroke-width: 3;"><path d=" M17.49,-5.26 Q7.94,-0.72 0,0 Q7.94,0.72 17.49,5.26"/></g></g><g/></g><g/><g/><g/></svg>
+        <svg xmlns="http://www.w3.org/2000/svg" width="649" height="707.4583740234375" style="width:649px;height:707.4583740234375px;font-family:Asana-Math, Asana;background:transparent;"><g><g><g><g><g><g style="transform:matrix(1,0,0,1,12.171875,40.31333587646485);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136ZM829 220C829 354 729 461 610 461C487 461 390 351 390 220C390 88 492 -11 609 -11C729 -11 829 90 829 220ZM609 53C540 53 468 109 468 230C468 351 544 400 609 400C679 400 751 348 751 230C751 112 683 53 609 53ZM1140 272L1308 444L1218 444L1015 236L1015 694L943 694L943 0L1012 0L1012 141L1092 224L1248 0L1330 0ZM1760 219C1760 421 1653 461 1582 461C1471 461 1381 355 1381 226C1381 94 1477 -11 1597 -11C1660 -11 1717 13 1756 41L1750 106C1687 54 1621 50 1598 50C1518 50 1454 121 1451 219ZM1456 274C1472 350 1525 400 1582 400C1634 400 1690 366 1703 274ZM2224 298C2224 364 2209 455 2087 455C1997 455 1948 387 1942 379L1942 450L1870 450L1870 0L1948 0L1948 245C1948 311 1973 394 2049 394C2145 394 2146 323 2146 291L2146 0L2224 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,68.578125,40.31333587646485);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,76.71356201171875,40.31333587646485);"><path d="M435 298C435 364 420 455 298 455C208 455 159 387 153 379L153 450L81 450L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,90.05731201171875,44.635999999999996);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,100.078125,40.31333587646485);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,115.55731201171875,40.31333587646485);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,139.2552490234375,40.31333587646485);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,148.80731201171875,44.635999999999996);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g></g><g><g style="transform:matrix(1,0,0,1,12.171875,71.98);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136ZM829 220C829 354 729 461 610 461C487 461 390 351 390 220C390 88 492 -11 609 -11C729 -11 829 90 829 220ZM609 53C540 53 468 109 468 230C468 351 544 400 609 400C679 400 751 348 751 230C751 112 683 53 609 53ZM1140 272L1308 444L1218 444L1015 236L1015 694L943 694L943 0L1012 0L1012 141L1092 224L1248 0L1330 0ZM1760 219C1760 421 1653 461 1582 461C1471 461 1381 355 1381 226C1381 94 1477 -11 1597 -11C1660 -11 1717 13 1756 41L1750 106C1687 54 1621 50 1598 50C1518 50 1454 121 1451 219ZM1456 274C1472 350 1525 400 1582 400C1634 400 1690 366 1703 274ZM2224 298C2224 364 2209 455 2087 455C1997 455 1948 387 1942 379L1942 450L1870 450L1870 0L1948 0L1948 245C1948 311 1973 394 2049 394C2145 394 2146 323 2146 291L2146 0L2224 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,68.578125,71.98);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,76.71356201171875,71.98);"><path d="M435 298C435 364 420 455 298 455C208 455 159 387 153 379L153 450L81 450L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,90.05731201171875,76.30266412353515);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,100.078125,71.98);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,115.55731201171875,71.98);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,139.2552490234375,71.98);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,148.80731201171875,76.30266412353515);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g></g><g><g style="transform:matrix(1,0,0,1,12.171875,103.64666412353516);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136ZM829 220C829 354 729 461 610 461C487 461 390 351 390 220C390 88 492 -11 609 -11C729 -11 829 90 829 220ZM609 53C540 53 468 109 468 230C468 351 544 400 609 400C679 400 751 348 751 230C751 112 683 53 609 53ZM1140 272L1308 444L1218 444L1015 236L1015 694L943 694L943 0L1012 0L1012 141L1092 224L1248 0L1330 0ZM1760 219C1760 421 1653 461 1582 461C1471 461 1381 355 1381 226C1381 94 1477 -11 1597 -11C1660 -11 1717 13 1756 41L1750 106C1687 54 1621 50 1598 50C1518 50 1454 121 1451 219ZM1456 274C1472 350 1525 400 1582 400C1634 400 1690 366 1703 274ZM2224 298C2224 364 2209 455 2087 455C1997 455 1948 387 1942 379L1942 450L1870 450L1870 0L1948 0L1948 245C1948 311 1973 394 2049 394C2145 394 2146 323 2146 291L2146 0L2224 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,68.578125,103.64666412353516);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,76.71356201171875,103.64666412353516);"><path d="M435 298C435 364 420 455 298 455C208 455 159 387 153 379L153 450L81 450L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,90.05731201171875,107.96933587646484);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,100.078125,103.64666412353516);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,115.55731201171875,103.64666412353516);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,139.2552490234375,103.64666412353516);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,148.80731201171875,107.96933587646484);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g></g><g><g style="transform:matrix(1,0,0,1,12.171875,135.31333587646483);"><path d="M124 111C94 111 67 83 67 53C67 23 94 -5 123 -5C155 -5 183 22 183 53C183 83 155 111 124 111ZM373 111C343 111 316 83 316 53C316 23 343 -5 372 -5C404 -5 432 22 432 53C432 83 404 111 373 111ZM622 111C592 111 565 83 565 53C565 23 592 -5 621 -5C653 -5 681 22 681 53C681 83 653 111 622 111Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,245.3802490234375,659.4047891235351);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,262.578125,665.2589131469726);"><path d="M459 253C459 366 378 446 264 446C216 446 180 443 127 396L127 605L432 604L432 689L75 690L75 322L95 316C142 363 169 377 218 377C314 377 374 309 374 201C374 90 310 25 201 25C147 25 97 43 83 69L37 151L13 137C36 80 48 48 62 4C90 -11 130 -20 173 -20C301 -20 459 89 459 253Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,465.3802490234375,444.4047891235352);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,482.578125,450.2588826293945);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,25.380218505859375,444.4047891235352);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,42.578125,450.2588826293945);"><path d="M409 603L47 -1L157 -1L497 659L497 689L44 689L44 477L74 477L81 533C89 595 96 603 142 603Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,405.3802490234375,284.4047891235352);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,422.578125,290.2588826293945);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,405.3802490234375,604.4047891235351);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,422.578125,610.2589131469726);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,85.38021850585938,604.4047891235351);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,102.578125,610.2589131469726);"><path d="M131 331C152 512 241 611 421 665L379 689C283 657 242 637 191 593C88 506 32 384 32 247C32 82 112 -20 241 -20C371 -20 468 83 468 219C468 334 399 409 293 409C216 409 184 370 131 331ZM255 349C331 349 382 283 382 184C382 80 331 13 254 13C169 13 123 86 123 220C123 255 127 274 138 291C160 325 207 349 255 349Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,332.04168701171875,37.480000000000004);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0ZM739 289C739 391 666 461 574 461C509 461 464 445 417 418L423 352C475 389 525 402 574 402C621 402 661 362 661 288L661 245C511 243 384 201 384 113C384 70 411 -11 498 -11C512 -11 606 -9 664 36L664 0L739 0ZM661 132C661 113 661 88 627 69C598 51 560 50 549 50C501 50 456 73 456 115C456 185 618 192 661 194ZM1254 298C1254 364 1239 455 1117 455C1027 455 978 387 972 379L972 450L900 450L900 0L978 0L978 245C978 311 1003 394 1079 394C1175 394 1176 323 1176 291L1176 0L1254 0ZM1686 391C1708 391 1736 395 1760 395C1778 395 1817 392 1819 392L1808 455C1738 455 1680 436 1650 423C1629 440 1595 455 1555 455C1469 455 1396 383 1396 292C1396 255 1409 219 1429 193C1400 152 1400 113 1400 108C1400 82 1409 53 1426 32C1374 1 1362 -45 1362 -71C1362 -146 1461 -206 1583 -206C1706 -206 1805 -147 1805 -70C1805 69 1638 69 1599 69L1511 69C1498 69 1453 69 1453 122C1453 133 1457 149 1464 158C1485 143 1518 129 1555 129C1645 129 1715 203 1715 292C1715 340 1693 377 1682 392ZM1555 186C1518 186 1466 209 1466 292C1466 375 1518 398 1555 398C1598 398 1645 370 1645 292C1645 214 1598 186 1555 186ZM1600 -3C1622 -3 1735 -3 1735 -72C1735 -116 1666 -149 1584 -149C1503 -149 1432 -118 1432 -71C1432 -68 1432 -3 1510 -3ZM2247 219C2247 421 2140 461 2069 461C1958 461 1868 355 1868 226C1868 94 1964 -11 2084 -11C2147 -11 2204 13 2243 41L2237 106C2174 54 2108 50 2085 50C2005 50 1941 121 1938 219ZM1943 274C1959 350 2012 400 2069 400C2121 400 2177 366 2190 274Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,387.76043701171875,37.480000000000004);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,395.8958740234375,37.480000000000004);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,405.44793701171875,41.80266412353515);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,415.46875,37.480000000000004);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,426.46875,37.480000000000004);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,442.1146240234375,41.80266412353515);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,452.13543701171875,37.480000000000004);"><path d="M245 -184L254 -171C248 -140 246 -112 246 -44L246 578C246 628 250 665 250 691C250 706 249 717 245 726L51 726L45 720L45 694L49 689L87 689C114 689 136 683 148 673C157 664 160 649 160 616L160 -75C160 -108 157 -122 148 -131C136 -141 114 -147 87 -147L49 -147L45 -152L45 -178L51 -184Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,460.2708740234375,37.480000000000004);"><path d="" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,471.2708740234375,37.480000000000004);"><path d="M949 272L743 486L711 452L836 300L65 300L65 241L836 241L711 89L743 55Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,500.96875,37.480000000000004);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,510.32293701171875,37.480000000000004);"><path d="M435 298C435 364 420 455 298 455C208 455 159 387 153 379L153 450L81 450L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,523.6666870117188,41.80266412353515);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,533.6875,37.480000000000004);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,544.6875,37.480000000000004);"><path d="M684 298C684 364 669 455 547 455C457 455 408 387 402 379L402 450L330 450L330 0L408 0L408 245C408 311 433 394 509 394C605 394 606 323 606 291L606 0L684 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,564.125,41.80266412353515);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,574.1458740234375,37.480000000000004);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,585.1458740234375,37.480000000000004);"><path d="M684 298C684 364 669 455 547 455C457 455 408 387 402 379L402 450L330 450L330 0L408 0L408 245C408 311 433 394 509 394C605 394 606 323 606 291L606 0L684 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,604.5833740234375,41.80266412353515);"><path d="M372 174L471 174L471 236L372 236L372 667L281 667L28 236L28 174L293 174L293 0L372 0ZM106 236C158 323 299 564 299 622L299 236Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,615.822998046875,37.480000000000004);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g><g><g><g><g><g style="transform:matrix(1,0,0,1,332.04168701171875,70.14666412353516);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0ZM739 289C739 391 666 461 574 461C509 461 464 445 417 418L423 352C475 389 525 402 574 402C621 402 661 362 661 288L661 245C511 243 384 201 384 113C384 70 411 -11 498 -11C512 -11 606 -9 664 36L664 0L739 0ZM661 132C661 113 661 88 627 69C598 51 560 50 549 50C501 50 456 73 456 115C456 185 618 192 661 194ZM1254 298C1254 364 1239 455 1117 455C1027 455 978 387 972 379L972 450L900 450L900 0L978 0L978 245C978 311 1003 394 1079 394C1175 394 1176 323 1176 291L1176 0L1254 0ZM1686 391C1708 391 1736 395 1760 395C1778 395 1817 392 1819 392L1808 455C1738 455 1680 436 1650 423C1629 440 1595 455 1555 455C1469 455 1396 383 1396 292C1396 255 1409 219 1429 193C1400 152 1400 113 1400 108C1400 82 1409 53 1426 32C1374 1 1362 -45 1362 -71C1362 -146 1461 -206 1583 -206C1706 -206 1805 -147 1805 -70C1805 69 1638 69 1599 69L1511 69C1498 69 1453 69 1453 122C1453 133 1457 149 1464 158C1485 143 1518 129 1555 129C1645 129 1715 203 1715 292C1715 340 1693 377 1682 392ZM1555 186C1518 186 1466 209 1466 292C1466 375 1518 398 1555 398C1598 398 1645 370 1645 292C1645 214 1598 186 1555 186ZM1600 -3C1622 -3 1735 -3 1735 -72C1735 -116 1666 -149 1584 -149C1503 -149 1432 -118 1432 -71C1432 -68 1432 -3 1510 -3ZM2247 219C2247 421 2140 461 2069 461C1958 461 1868 355 1868 226C1868 94 1964 -11 2084 -11C2147 -11 2204 13 2243 41L2237 106C2174 54 2108 50 2085 50C2005 50 1941 121 1938 219ZM1943 274C1959 350 2012 400 2069 400C2121 400 2177 366 2190 274Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,387.76043701171875,70.14666412353516);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,395.8958740234375,70.14666412353516);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,405.44793701171875,74.46933587646484);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,415.46875,70.14666412353516);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,426.46875,70.14666412353516);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,442.1146240234375,74.46933587646484);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,452.13543701171875,70.14666412353516);"><path d="M245 -184L254 -171C248 -140 246 -112 246 -44L246 578C246 628 250 665 250 691C250 706 249 717 245 726L51 726L45 720L45 694L49 689L87 689C114 689 136 683 148 673C157 664 160 649 160 616L160 -75C160 -108 157 -122 148 -131C136 -141 114 -147 87 -147L49 -147L45 -152L45 -178L51 -184Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,460.2708740234375,70.14666412353516);"><path d="" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,471.2708740234375,70.14666412353516);"><path d="M949 272L743 486L711 452L836 300L65 300L65 241L836 241L711 89L743 55Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,500.96875,70.14666412353516);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,510.32293701171875,70.14666412353516);"><path d="M435 298C435 364 420 455 298 455C208 455 159 387 153 379L153 450L81 450L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,523.6666870117188,74.46933587646484);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,533.6875,70.14666412353516);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,544.6875,70.14666412353516);"><path d="M684 298C684 364 669 455 547 455C457 455 408 387 402 379L402 450L330 450L330 0L408 0L408 245C408 311 433 394 509 394C605 394 606 323 606 291L606 0L684 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,564.125,74.46933587646484);"><path d="M372 174L471 174L471 236L372 236L372 667L281 667L28 236L28 174L293 174L293 0L372 0ZM106 236C158 323 299 564 299 622L299 236Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,574.1458740234375,70.14666412353516);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,585.1458740234375,70.14666412353516);"><path d="M684 298C684 364 669 455 547 455C457 455 408 387 402 379L402 450L330 450L330 0L408 0L408 245C408 311 433 394 509 394C605 394 606 323 606 291L606 0L684 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,604.5833740234375,74.46933587646484);"><path d="M153 602L416 602L416 667L81 667L81 292L147 292C164 332 201 372 259 372C306 372 360 330 360 208C360 40 238 40 229 40C162 40 101 79 72 134L39 77C80 19 149 -22 230 -22C349 -22 449 78 449 206C449 333 363 434 260 434C220 434 182 419 153 392Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,615.822998046875,70.14666412353516);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g><g><g><g><g><g style="transform:matrix(1,0,0,1,332.04168701171875,102.81333587646485);"><path d="M157 214C157 314 229 386 327 388L327 455C238 454 183 405 152 359L152 450L82 450L82 0L157 0ZM739 289C739 391 666 461 574 461C509 461 464 445 417 418L423 352C475 389 525 402 574 402C621 402 661 362 661 288L661 245C511 243 384 201 384 113C384 70 411 -11 498 -11C512 -11 606 -9 664 36L664 0L739 0ZM661 132C661 113 661 88 627 69C598 51 560 50 549 50C501 50 456 73 456 115C456 185 618 192 661 194ZM1254 298C1254 364 1239 455 1117 455C1027 455 978 387 972 379L972 450L900 450L900 0L978 0L978 245C978 311 1003 394 1079 394C1175 394 1176 323 1176 291L1176 0L1254 0ZM1686 391C1708 391 1736 395 1760 395C1778 395 1817 392 1819 392L1808 455C1738 455 1680 436 1650 423C1629 440 1595 455 1555 455C1469 455 1396 383 1396 292C1396 255 1409 219 1429 193C1400 152 1400 113 1400 108C1400 82 1409 53 1426 32C1374 1 1362 -45 1362 -71C1362 -146 1461 -206 1583 -206C1706 -206 1805 -147 1805 -70C1805 69 1638 69 1599 69L1511 69C1498 69 1453 69 1453 122C1453 133 1457 149 1464 158C1485 143 1518 129 1555 129C1645 129 1715 203 1715 292C1715 340 1693 377 1682 392ZM1555 186C1518 186 1466 209 1466 292C1466 375 1518 398 1555 398C1598 398 1645 370 1645 292C1645 214 1598 186 1555 186ZM1600 -3C1622 -3 1735 -3 1735 -72C1735 -116 1666 -149 1584 -149C1503 -149 1432 -118 1432 -71C1432 -68 1432 -3 1510 -3ZM2247 219C2247 421 2140 461 2069 461C1958 461 1868 355 1868 226C1868 94 1964 -11 2084 -11C2147 -11 2204 13 2243 41L2237 106C2174 54 2108 50 2085 50C2005 50 1941 121 1938 219ZM1943 274C1959 350 2012 400 2069 400C2121 400 2177 366 2190 274Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,387.76043701171875,102.81333587646485);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,395.8958740234375,102.81333587646485);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,405.44793701171875,107.13600762939453);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,415.46875,102.81333587646485);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,426.46875,102.81333587646485);"><path d="M424 386L565 386L565 444L424 444L424 571L355 571L355 444L268 444L268 386L352 386L352 119C352 59 366 -11 435 -11C505 -11 556 14 581 27L565 86C539 65 507 53 475 53C438 53 424 83 424 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,442.1146240234375,107.13600762939453);"><path d="M372 174L471 174L471 236L372 236L372 667L281 667L28 236L28 174L293 174L293 0L372 0ZM106 236C158 323 299 564 299 622L299 236Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,452.13543701171875,102.81333587646485);"><path d="M245 -184L254 -171C248 -140 246 -112 246 -44L246 578C246 628 250 665 250 691C250 706 249 717 245 726L51 726L45 720L45 694L49 689L87 689C114 689 136 683 148 673C157 664 160 649 160 616L160 -75C160 -108 157 -122 148 -131C136 -141 114 -147 87 -147L49 -147L45 -152L45 -178L51 -184Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,460.2708740234375,102.81333587646485);"><path d="" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,471.2708740234375,102.81333587646485);"><path d="M949 272L743 486L711 452L836 300L65 300L65 241L836 241L711 89L743 55Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,500.96875,102.81333587646485);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,510.32293701171875,102.81333587646485);"><path d="M435 298C435 364 420 455 298 455C208 455 159 387 153 379L153 450L81 450L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,523.6666870117188,107.13600762939453);"><path d="M372 174L471 174L471 236L372 236L372 667L281 667L28 236L28 174L293 174L293 0L372 0ZM106 236C158 323 299 564 299 622L299 236Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,533.6875,102.81333587646485);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,544.6875,102.81333587646485);"><path d="M684 298C684 364 669 455 547 455C457 455 408 387 402 379L402 450L330 450L330 0L408 0L408 245C408 311 433 394 509 394C605 394 606 323 606 291L606 0L684 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,564.125,107.13600762939453);"><path d="M153 602L416 602L416 667L81 667L81 292L147 292C164 332 201 372 259 372C306 372 360 330 360 208C360 40 238 40 229 40C162 40 101 79 72 134L39 77C80 19 149 -22 230 -22C349 -22 449 78 449 206C449 333 363 434 260 434C220 434 182 419 153 392Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,574.1458740234375,102.81333587646485);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,585.1458740234375,102.81333587646485);"><path d="M684 298C684 364 669 455 547 455C457 455 408 387 402 379L402 450L330 450L330 0L408 0L408 245C408 311 433 394 509 394C605 394 606 323 606 291L606 0L684 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,604.5833740234375,107.13600762939453);"><path d="M415 669C364 689 323 689 309 689C168 689 42 546 42 327C42 40 166 -22 251 -22C311 -22 354 1 393 47C438 99 457 145 457 226C457 356 391 469 295 469C263 469 187 461 126 385C139 549 218 630 310 630C348 630 380 623 415 609ZM127 223C127 237 127 239 128 251C128 326 173 407 256 407C304 407 332 382 352 344C373 307 375 271 375 226C375 191 375 144 351 103C334 74 308 40 251 40C145 40 130 189 127 223Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,615.822998046875,102.81333587646485);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g><g><text x="332.04168701171875" y="113.66666412353516" style="white-space:pre;stroke:none;fill:rgb(0, 0, 0);font-size:21.6px;font-family:Arial, Helvetica, sans-serif;font-weight:400;font-style:normal;dominant-baseline:text-before-edge;text-decoration:none solid rgb(0, 0, 0);">                                           ...</text></g></g><g><g><g><g><g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,284.9114990234375,163.04063262939454);"><path d="M435 298C435 364 420 455 298 455C236 455 188 424 156 383L156 694L81 694L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0ZM914 289C914 391 841 461 749 461C684 461 639 445 592 418L598 352C650 389 700 402 749 402C796 402 836 362 836 288L836 245C686 243 559 201 559 113C559 70 586 -11 673 -11C687 -11 781 -9 839 36L839 0L914 0ZM836 132C836 113 836 88 802 69C773 51 735 50 724 50C676 50 631 73 631 115C631 185 793 192 836 194ZM1354 128C1354 183 1317 217 1315 220C1276 255 1249 261 1199 270C1144 281 1098 291 1098 340C1098 402 1170 402 1183 402C1215 402 1268 398 1325 364L1337 429C1285 453 1244 461 1193 461C1168 461 1027 461 1027 330C1027 281 1056 249 1081 230C1112 208 1134 204 1189 193C1225 186 1283 174 1283 121C1283 52 1204 52 1189 52C1108 52 1052 89 1034 101L1022 33C1054 17 1109 -11 1190 -11C1328 -11 1354 75 1354 128ZM1811 298C1811 364 1796 455 1674 455C1612 455 1564 424 1532 383L1532 694L1457 694L1457 0L1535 0L1535 245C1535 311 1560 394 1636 394C1732 394 1733 323 1733 291L1733 0L1811 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,323.46356201171875,163.70728912353516);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,330.234375,163.04063262939454);"><path d="M105 469L137 665C138 667 138 669 138 671C138 689 116 709 95 709C74 709 52 689 52 670L52 665L85 469ZM286 469L318 665C319 667 319 669 319 670C319 689 297 709 276 709C254 709 233 690 233 670L233 665L266 469ZM546 386L656 386L656 444L543 444L543 563C543 637 610 644 636 644C656 644 683 642 717 627L717 694C705 697 674 705 637 705C543 705 471 634 471 534L471 444L397 444L397 386L471 386L471 0L546 0ZM1143 220C1143 354 1043 461 924 461C801 461 704 351 704 220C704 88 806 -11 923 -11C1043 -11 1143 90 1143 220ZM923 53C854 53 782 109 782 230C782 351 858 400 923 400C993 400 1065 348 1065 230C1065 112 997 53 923 53ZM1642 220C1642 354 1542 461 1423 461C1300 461 1203 351 1203 220C1203 88 1305 -11 1422 -11C1542 -11 1642 90 1642 220ZM1422 53C1353 53 1281 109 1281 230C1281 351 1357 400 1422 400C1492 400 1564 348 1564 230C1564 112 1496 53 1422 53ZM1777 469L1809 665C1810 667 1810 669 1810 671C1810 689 1788 709 1767 709C1746 709 1724 689 1724 670L1724 665L1757 469ZM1958 469L1990 665C1991 667 1991 669 1991 670C1991 689 1969 709 1948 709C1926 709 1905 690 1905 670L1905 665L1938 469Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,371.86981201171875,163.70728912353516);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g></g><g><g style="transform:matrix(1,0,0,1,284.9114990234375,187.04063262939454);"><path d="" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,324.52606201171875,187.04063262939454);"><path d="M949 272L743 486L711 452L836 300L65 300L65 241L836 241L711 89L743 55Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,349.2552490234375,187.70728912353516);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,357.0364990234375,187.04063262939454);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,368.96356201171875,191.30603912353516);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.01428,0,0,-0.01428,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,377.30731201171875,187.04063262939454);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,386.46356201171875,187.04063262939454);"><path d="M273 388L280 368L312 389C349 412 352 414 359 414C370 414 377 404 377 389C377 338 336 145 295 2L302 -9C327 -2 350 4 372 8C391 134 412 199 458 268C512 352 587 414 632 414C643 414 649 405 649 390C649 372 646 351 638 319L586 107C577 70 573 47 573 31C573 6 584 -9 603 -9C629 -9 665 12 763 85L753 103L727 86C698 67 676 56 666 56C659 56 653 65 653 76C653 81 654 92 655 96L721 372C728 401 732 429 732 446C732 469 721 482 701 482C659 482 590 444 531 389C493 354 465 320 413 247L451 408C455 426 457 438 457 449C457 470 449 482 434 482C413 482 374 460 301 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,403.46356201171875,191.30603912353516);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.01428,0,0,-0.01428,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,411.80731201171875,187.04063262939454);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,420.96356201171875,187.04063262939454);"><path d="M273 388L280 368L312 389C349 412 352 414 359 414C370 414 377 404 377 389C377 338 336 145 295 2L302 -9C327 -2 350 4 372 8C391 134 412 199 458 268C512 352 587 414 632 414C643 414 649 405 649 390C649 372 646 351 638 319L586 107C577 70 573 47 573 31C573 6 584 -9 603 -9C629 -9 665 12 763 85L753 103L727 86C698 67 676 56 666 56C659 56 653 65 653 76C653 81 654 92 655 96L721 372C728 401 732 429 732 446C732 469 721 482 701 482C659 482 590 444 531 389C493 354 465 320 413 247L451 408C455 426 457 438 457 449C457 470 449 482 434 482C413 482 374 460 301 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,437.96356201171875,191.30603912353516);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.01428,0,0,-0.01428,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,447.3177490234375,187.70728912353516);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,245.3802490234375,224.40478912353515);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,262.578125,230.25888262939452);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,85.38021850585938,284.4047891235352);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,102.578125,290.2588826293945);"><path d="M168 345C127 326 110 315 88 294C50 256 30 211 30 159C30 56 113 -20 226 -20C356 -20 464 82 464 206C464 286 427 329 313 381C404 443 436 485 436 545C436 631 365 689 259 689C140 689 53 613 53 508C53 440 80 402 168 345ZM284 295C347 267 385 218 385 164C385 80 322 14 241 14C156 14 101 74 101 167C101 240 130 286 204 331ZM223 423C160 454 128 494 128 544C128 610 176 655 247 655C320 655 368 607 368 534C368 477 343 438 278 396Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,457.4114990234375,316.56666412353513);"><path d="M435 298C435 364 420 455 298 455C236 455 188 424 156 383L156 694L81 694L81 0L159 0L159 245C159 311 184 394 260 394C356 394 357 323 357 291L357 0L435 0ZM914 289C914 391 841 461 749 461C684 461 639 445 592 418L598 352C650 389 700 402 749 402C796 402 836 362 836 288L836 245C686 243 559 201 559 113C559 70 586 -11 673 -11C687 -11 781 -9 839 36L839 0L914 0ZM836 132C836 113 836 88 802 69C773 51 735 50 724 50C676 50 631 73 631 115C631 185 793 192 836 194ZM1354 128C1354 183 1317 217 1315 220C1276 255 1249 261 1199 270C1144 281 1098 291 1098 340C1098 402 1170 402 1183 402C1215 402 1268 398 1325 364L1337 429C1285 453 1244 461 1193 461C1168 461 1027 461 1027 330C1027 281 1056 249 1081 230C1112 208 1134 204 1189 193C1225 186 1283 174 1283 121C1283 52 1204 52 1189 52C1108 52 1052 89 1034 101L1022 33C1054 17 1109 -11 1190 -11C1328 -11 1354 75 1354 128ZM1811 298C1811 364 1796 455 1674 455C1612 455 1564 424 1532 383L1532 694L1457 694L1457 0L1535 0L1535 245C1535 311 1560 394 1636 394C1732 394 1733 323 1733 291L1733 0L1811 0Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,495.96356201171875,317.2333511352539);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,502.734375,316.56666412353513);"><path d="M105 469L137 665C138 667 138 669 138 671C138 689 116 709 95 709C74 709 52 689 52 670L52 665L85 469ZM286 469L318 665C319 667 319 669 319 670C319 689 297 709 276 709C254 709 233 690 233 670L233 665L266 469ZM527 694L452 694L452 0L530 0L530 46C554 24 597 -11 664 -11C764 -11 850 89 850 223C850 347 782 455 688 455C649 455 587 445 527 396ZM530 335C546 359 582 394 637 394C696 394 772 351 772 223C772 93 688 50 627 50C588 50 555 68 530 114ZM1284 289C1284 391 1211 461 1119 461C1054 461 1009 445 962 418L968 352C1020 389 1070 402 1119 402C1166 402 1206 362 1206 288L1206 245C1056 243 929 201 929 113C929 70 956 -11 1043 -11C1057 -11 1151 -9 1209 36L1209 0L1284 0ZM1206 132C1206 113 1206 88 1172 69C1143 51 1105 50 1094 50C1046 50 1001 73 1001 115C1001 185 1163 192 1206 194ZM1521 214C1521 314 1593 386 1691 388L1691 455C1602 454 1547 405 1516 359L1516 450L1446 450L1446 0L1521 0ZM1809 469L1841 665C1842 667 1842 669 1842 671C1842 689 1820 709 1799 709C1778 709 1756 689 1756 670L1756 665L1789 469ZM1990 469L2022 665C2023 667 2023 669 2023 670C2023 689 2001 709 1980 709C1958 709 1937 690 1937 670L1937 665L1970 469Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,545.015625,317.2333511352539);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g></g></g></g></g><g><g><g><g><g style="transform:matrix(1,0,0,1,457.4114990234375,343.2333511352539);"><path d="" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g style="transform:matrix(1,0,0,1,497.02606201171875,343.2333511352539);"><path d="M949 272L743 486L711 452L836 300L65 300L65 241L836 241L711 89L743 55Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g></g><g style="transform:matrix(1,0,0,1,521.7552490234375,343.9000076293945);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,529.5364990234375,343.2333511352539);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,541.4635620117188,347.4987576293945);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.01428,0,0,-0.01428,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,549.8073120117188,343.2333511352539);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,558.9635620117188,343.2333511352539);"><path d="M273 388L280 368L312 389C349 412 352 414 359 414C370 414 377 404 377 389C377 338 336 145 295 2L302 -9C327 -2 350 4 372 8C391 134 412 199 458 268C512 352 587 414 632 414C643 414 649 405 649 390C649 372 646 351 638 319L586 107C577 70 573 47 573 31C573 6 584 -9 603 -9C629 -9 665 12 763 85L753 103L727 86C698 67 676 56 666 56C659 56 653 65 653 76C653 81 654 92 655 96L721 372C728 401 732 429 732 446C732 469 721 482 701 482C659 482 590 444 531 389C493 354 465 320 413 247L451 408C455 426 457 438 457 449C457 470 449 482 434 482C413 482 374 460 301 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,575.9635620117188,347.4987576293945);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.01428,0,0,-0.01428,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,584.3073120117188,343.2333511352539);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g style="transform:matrix(1,0,0,1,593.4635620117188,343.2333511352539);"><path d="M273 388L280 368L312 389C349 412 352 414 359 414C370 414 377 404 377 389C377 338 336 145 295 2L302 -9C327 -2 350 4 372 8C391 134 412 199 458 268C512 352 587 414 632 414C643 414 649 405 649 390C649 372 646 351 638 319L586 107C577 70 573 47 573 31C573 6 584 -9 603 -9C629 -9 665 12 763 85L753 103L727 86C698 67 676 56 666 56C659 56 653 65 653 76C653 81 654 92 655 96L721 372C728 401 732 429 732 446C732 469 721 482 701 482C659 482 590 444 531 389C493 354 465 320 413 247L451 408C455 426 457 438 457 449C457 470 449 482 434 482C413 482 374 460 301 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,610.463623046875,347.4987576293945);"><path d="M459 253C459 366 378 446 264 446C216 446 180 443 127 396L127 605L432 604L432 689L75 690L75 322L95 316C142 363 169 377 218 377C314 377 374 309 374 201C374 90 310 25 201 25C147 25 97 43 83 69L37 151L13 137C36 80 48 48 62 4C90 -11 130 -20 173 -20C301 -20 459 89 459 253Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.01428,0,0,-0.01428,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,619.8177490234375,343.9000076293945);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020399999999999998,0,0,-0.020399999999999998,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,254.71356201171875,324.78125762939453);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,261.33856201171875,328.4521011352539);"><path d="M299 689L279 689C220 627 137 624 89 622L89 563C122 564 170 566 220 587L220 59L95 59L95 0L424 0L424 59L299 59Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,331.71356201171875,354.78125762939453);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,338.33856201171875,358.4521011352539);"><path d="M83 466C103 545 131 624 222 624C316 624 367 548 367 468C367 382 310 324 251 263L174 191L50 65L50 0L449 0L449 72L267 72C255 72 243 71 231 71L122 71C154 100 230 176 261 205C333 274 449 347 449 471C449 587 368 689 236 689C122 689 66 610 42 522C66 487 59 501 83 466Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,359.71356201171875,439.78125762939453);"><path d="M175 386L316 386L316 444L175 444L175 571L106 571L106 444L19 444L19 386L103 386L103 119C103 59 117 -11 186 -11C256 -11 307 14 332 27L316 86C290 65 258 53 226 53C189 53 175 83 175 136Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017,0,0,-0.017,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,366.33856201171875,443.4521011352539);"><path d="M92 522C121 593 186 630 247 630C299 630 348 600 348 535C348 473 307 413 246 398C240 397 238 397 167 391L167 329L238 329C346 329 368 235 368 184C368 105 322 40 245 40C176 40 97 75 53 144L42 83C115 -12 207 -22 247 -22C369 -22 457 76 457 183C457 275 387 338 319 360C395 401 430 471 430 535C430 622 347 689 248 689C171 689 98 648 56 577Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.0119,0,0,-0.0119,0,0);"></path></g></g></g></g></g></g></g></g></g></svg>
+</svg>
diff --git a/src/doc/3.11.11/_images/vnodes.svg b/src/doc/3.11.11/_images/vnodes.svg
new file mode 100644
index 0000000..71b4fa2
--- /dev/null
+++ b/src/doc/3.11.11/_images/vnodes.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="651" height="384.66668701171875" style="
+        width:651px;
+        height:384.66668701171875px;
+        background: transparent;
+        fill: none;
+">
+        
+        
+        <svg xmlns="http://www.w3.org/2000/svg" class="role-diagram-draw-area"><g class="shapes-region" style="stroke: black; fill: none;"><g class="composite-shape"><path class="real" d=" M40.4,190 C40.4,107.38 107.38,40.4 190,40.4 C272.62,40.4 339.6,107.38 339.6,190 C339.6,272.62 272.62,339.6 190,339.6 C107.38,339.6 40.4,272.62 40.4,190 Z" style="stroke-width: 1; stroke: rgba(0, 0, 0, 0.52); fill: none; stroke-dasharray: 1.125, 3.35;"/></g><g class="composite-shape"><path class="real" d=" M160,340 C160,323.43 173.43,310 190,310 C206.57,310 220,323.43 220,340 C220,356.57 206.57,370 190,370 C173.43,370 160,356.57 160,340 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(130, 192, 233); stroke-dasharray: 6, 6;"/></g><g class="composite-shape"><path class="real" d=" M160,40 C160,23.43 173.43,10 190,10 C206.57,10 220,23.43 220,40 C220,56.57 206.57,70 190,70 C173.43,70 160,56.57 160,40 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(130, 192, 233); stroke-dasharray: 6, 6;"/></g><g class="composite-shape"><path class="real" d=" M310,190 C310,173.43 323.43,160 340,160 C356.57,160 370,173.43 370,190 C370,206.57 356.57,220 340,220 C323.43,220 310,206.57 310,190 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(103, 148, 135); stroke-dasharray: 1.125, 3.35;"/></g><g class="composite-shape"><path class="real" d=" M10,190 C10,173.43 23.43,160 40,160 C56.57,160 70,173.43 70,190 C70,206.57 56.57,220 40,220 C23.43,220 10,206.57 10,190 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(103, 148, 135); stroke-dasharray: 1.125, 3.35;"/></g><g class="composite-shape"><path class="real" d=" M270,80 C270,63.43 283.43,50 300,50 C316.57,50 330,63.43 330,80 C330,96.57 316.57,110 300,110 C283.43,110 270,96.57 270,80 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(202, 194, 126);"/></g><g class="composite-shape"><path class="real" d=" M270,300 C270,283.43 283.43,270 300,270 C316.57,270 330,283.43 330,300 C330,316.57 316.57,330 300,330 C283.43,330 270,316.57 270,300 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M50,300 C50,283.43 63.43,270 80,270 C96.57,270 110,283.43 110,300 C110,316.57 96.57,330 80,330 C63.43,330 50,316.57 50,300 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(202, 194, 126);"/></g><g class="composite-shape"><path class="real" d=" M50,80 C50,63.43 63.43,50 80,50 C96.57,50 110,63.43 110,80 C110,96.57 96.57,110 80,110 C63.43,110 50,96.57 50,80 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M380,158.4 C380,146.47 389.67,136.8 401.6,136.8 C413.53,136.8 423.2,146.47 423.2,158.4 C423.2,170.33 413.53,180 401.6,180 C389.67,180 380,170.33 380,158.4 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(103, 148, 135); stroke-dasharray: 1.125, 3.35;"/></g><g class="composite-shape"><path class="real" d=" M380,101.6 C380,89.67 389.67,80 401.6,80 C413.53,80 423.2,89.67 423.2,101.6 C423.2,113.53 413.53,123.2 401.6,123.2 C389.67,123.2 380,113.53 380,101.6 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(130, 192, 233); stroke-dasharray: 6, 6;"/></g><g class="composite-shape"><path class="real" d=" M380,218.4 C380,206.47 389.67,196.8 401.6,196.8 C413.53,196.8 423.2,206.47 423.2,218.4 C423.2,230.33 413.53,240 401.6,240 C389.67,240 380,230.33 380,218.4 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(202, 194, 126);"/></g><g class="composite-shape"><path class="real" d=" M380,278.4 C380,266.47 389.67,256.8 401.6,256.8 C413.53,256.8 423.2,266.47 423.2,278.4 C423.2,290.33 413.53,300 401.6,300 C389.67,300 380,290.33 380,278.4 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: rgb(187, 187, 187);"/></g><g class="composite-shape"><path class="real" d=" M430,80 L640,80 L640,300 L430,300 Z" style="stroke-width: 1; stroke: rgb(0, 0, 0); fill: none;"/></g><g/></g><g/><g/><g/></svg>
+        <svg xmlns="http://www.w3.org/2000/svg" width="649" height="382.66668701171875" style="width:649px;height:382.66668701171875px;font-family:Asana-Math, Asana;background:transparent;"><g><g><g><g><g><g style="transform:matrix(1,0,0,1,178.65625,348.9985620117188);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,189.3021240234375,354.852625);"><path d="M459 253C459 366 378 446 264 446C216 446 180 443 127 396L127 605L432 604L432 689L75 690L75 322L95 316C142 363 169 377 218 377C314 377 374 309 374 201C374 90 310 25 201 25C147 25 97 43 83 69L37 151L13 137C36 80 48 48 62 4C90 -11 130 -20 173 -20C301 -20 459 89 459 253Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,178.65625,49.800625);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,189.3021240234375,55.65471850585938);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,328.25,199.40481201171875);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,338.8958740234375,205.258875);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,29.052093505859375,199.40481201171875);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,39.69793701171875,205.258875);"><path d="M409 603L47 -1L157 -1L497 659L497 689L44 689L44 477L74 477L81 533C89 595 96 603 142 603Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,287.44793701171875,90.60271850585937);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,298.09375,96.45679675292969);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,287.44793701171875,308.1964685058594);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,298.09375,314.05056201171874);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,69.85418701171875,308.1964685058594);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,80.5,314.05056201171874);"><path d="M131 331C152 512 241 611 421 665L379 689C283 657 242 637 191 593C88 506 32 384 32 247C32 82 112 -20 241 -20C371 -20 468 83 468 219C468 334 399 409 293 409C216 409 184 370 131 331ZM255 349C331 349 382 283 382 184C382 80 331 13 254 13C169 13 123 86 123 220C123 255 127 274 138 291C160 325 207 349 255 349Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,69.85418701171875,90.60271850585937);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,80.5,96.45679675292969);"><path d="M168 345C127 326 110 315 88 294C50 256 30 211 30 159C30 56 113 -20 226 -20C356 -20 464 82 464 206C464 286 427 329 313 381C404 443 436 485 436 545C436 631 365 689 259 689C140 689 53 613 53 508C53 440 80 402 168 345ZM284 295C347 267 385 218 385 164C385 80 322 14 241 14C156 14 101 74 101 167C101 240 130 286 204 331ZM223 423C160 454 128 494 128 544C128 610 176 655 247 655C320 655 368 607 368 534C368 477 343 438 278 396Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,386.9739990234375,167.800625);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,404.171875,173.65471850585936);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,386.9739990234375,110.99856201171875);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,404.171875,116.852625);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,386.9739990234375,227.800625);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,404.171875,233.65471850585936);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,386.9739990234375,287.800625);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02941,0,0,-0.02941,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,404.171875,293.65471850585936);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.020587,0,0,-0.020587,0,0);"></path></g></g></g></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,438.125,111.64668701171875);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390ZM349 152C349 46 394 -11 477 -11C532 -11 592 15 637 57C699 116 743 230 743 331C743 425 693 482 610 482C506 482 349 382 349 152ZM573 444C634 444 667 399 667 315C667 219 636 113 592 60C574 39 548 27 517 27C459 27 425 72 425 151C425 264 464 387 513 427C526 438 549 444 573 444ZM1015 722L1003 733C951 707 915 698 843 691L839 670L887 670C911 670 921 663 921 646C921 638 920 629 919 622L871 354C857 279 841 210 789 1L798 -9L865 8L888 132C897 180 921 225 955 259C1024 59 1056 -9 1081 -9C1094 -9 1118 4 1162 35L1208 67L1200 86L1157 62C1143 54 1136 52 1128 52C1118 52 1111 58 1102 75C1067 139 1045 193 1006 316L1020 330C1081 391 1127 416 1177 416C1185 416 1196 414 1213 410L1230 473C1212 479 1194 482 1182 482C1116 482 1033 405 908 230ZM1571 111L1547 94C1494 56 1446 36 1410 36C1363 36 1334 73 1334 133C1334 158 1337 185 1342 214C1359 218 1468 248 1493 259C1578 296 1617 342 1617 404C1617 451 1583 482 1533 482C1465 496 1355 423 1318 349C1288 299 1258 180 1258 113C1258 35 1302 -11 1374 -11C1431 -11 1487 17 1579 92ZM1356 274C1373 343 1393 386 1422 412C1440 428 1471 440 1495 440C1524 440 1543 420 1543 388C1543 344 1508 297 1456 272C1428 258 1392 247 1347 237ZM1655 388L1662 368L1694 389C1731 412 1734 414 1741 414C1752 414 1759 404 1759 389C1759 338 1718 145 1677 2L1684 -9C1709 -2 1732 4 1754 8C1773 134 1794 199 1840 268C1894 352 1969 414 2014 414C2025 414 2031 405 2031 390C2031 372 2028 351 2020 319L1968 107C1959 70 1955 47 1955 31C1955 6 1966 -9 1985 -9C2011 -9 2047 12 2145 85L2135 103L2109 86C2080 67 2058 56 2048 56C2041 56 2035 65 2035 76C2035 81 2036 92 2037 96L2103 372C2110 401 2114 429 2114 446C2114 469 2103 482 2083 482C2041 482 1972 444 1913 389C1875 354 1847 320 1795 247L1833 408C1837 426 1839 438 1839 449C1839 470 1831 482 1816 482C1795 482 1756 460 1683 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,491.6458740234375,111.64668701171875);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,499.78125,111.64668701171875);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,514.1041870117188,115.96934350585937);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,524.125,111.64668701171875);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,539.6041870117188,111.64668701171875);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,563.3021240234375,111.64668701171875);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,572.65625,111.64668701171875);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,581.5208740234375,115.96934350585937);"><path d="M418 -3L418 27L366 30C311 33 301 44 301 96L301 700L60 598L67 548L217 614L217 96C217 44 206 33 152 30L96 27L96 -3C250 0 250 0 261 0C292 0 402 -3 418 -3Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,591.5416870117188,111.64668701171875);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,602.541748046875,111.64668701171875);"><path d="M374 390L318 107C317 99 305 61 305 31C305 6 316 -9 335 -9C370 -9 405 11 483 74L514 99L504 117L459 86C430 66 410 56 399 56C390 56 385 64 385 76C385 102 399 183 428 328L441 390L548 390L559 440C521 436 487 434 449 434C465 528 476 577 494 631L483 646C463 634 436 622 405 610L380 440C336 419 310 408 292 403L290 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,617.5,115.96934350585937);"><path d="M459 253C459 366 378 446 264 446C216 446 180 443 127 396L127 605L432 604L432 689L75 690L75 322L95 316C142 363 169 377 218 377C314 377 374 309 374 201C374 90 310 25 201 25C147 25 97 43 83 69L37 151L13 137C36 80 48 48 62 4C90 -11 130 -20 173 -20C301 -20 459 89 459 253Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,628.7396240234375,111.64668701171875);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,439.125,164.64668701171874);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390ZM349 152C349 46 394 -11 477 -11C532 -11 592 15 637 57C699 116 743 230 743 331C743 425 693 482 610 482C506 482 349 382 349 152ZM573 444C634 444 667 399 667 315C667 219 636 113 592 60C574 39 548 27 517 27C459 27 425 72 425 151C425 264 464 387 513 427C526 438 549 444 573 444ZM1015 722L1003 733C951 707 915 698 843 691L839 670L887 670C911 670 921 663 921 646C921 638 920 629 919 622L871 354C857 279 841 210 789 1L798 -9L865 8L888 132C897 180 921 225 955 259C1024 59 1056 -9 1081 -9C1094 -9 1118 4 1162 35L1208 67L1200 86L1157 62C1143 54 1136 52 1128 52C1118 52 1111 58 1102 75C1067 139 1045 193 1006 316L1020 330C1081 391 1127 416 1177 416C1185 416 1196 414 1213 410L1230 473C1212 479 1194 482 1182 482C1116 482 1033 405 908 230ZM1571 111L1547 94C1494 56 1446 36 1410 36C1363 36 1334 73 1334 133C1334 158 1337 185 1342 214C1359 218 1468 248 1493 259C1578 296 1617 342 1617 404C1617 451 1583 482 1533 482C1465 496 1355 423 1318 349C1288 299 1258 180 1258 113C1258 35 1302 -11 1374 -11C1431 -11 1487 17 1579 92ZM1356 274C1373 343 1393 386 1422 412C1440 428 1471 440 1495 440C1524 440 1543 420 1543 388C1543 344 1508 297 1456 272C1428 258 1392 247 1347 237ZM1655 388L1662 368L1694 389C1731 412 1734 414 1741 414C1752 414 1759 404 1759 389C1759 338 1718 145 1677 2L1684 -9C1709 -2 1732 4 1754 8C1773 134 1794 199 1840 268C1894 352 1969 414 2014 414C2025 414 2031 405 2031 390C2031 372 2028 351 2020 319L1968 107C1959 70 1955 47 1955 31C1955 6 1966 -9 1985 -9C2011 -9 2047 12 2145 85L2135 103L2109 86C2080 67 2058 56 2048 56C2041 56 2035 65 2035 76C2035 81 2036 92 2037 96L2103 372C2110 401 2114 429 2114 446C2114 469 2103 482 2083 482C2041 482 1972 444 1913 389C1875 354 1847 320 1795 247L1833 408C1837 426 1839 438 1839 449C1839 470 1831 482 1816 482C1795 482 1756 460 1683 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,492.6458740234375,164.64668701171874);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,500.78125,164.64668701171874);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,515.1041870117188,168.96934350585937);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,525.125,164.64668701171874);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,540.6041870117188,164.64668701171874);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,564.3021240234375,164.64668701171874);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,573.65625,164.64668701171874);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,582.5208740234375,168.96934350585937);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,592.5416870117188,164.64668701171874);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,603.541748046875,164.64668701171874);"><path d="M374 390L318 107C317 99 305 61 305 31C305 6 316 -9 335 -9C370 -9 405 11 483 74L514 99L504 117L459 86C430 66 410 56 399 56C390 56 385 64 385 76C385 102 399 183 428 328L441 390L548 390L559 440C521 436 487 434 449 434C465 528 476 577 494 631L483 646C463 634 436 622 405 610L380 440C336 419 310 408 292 403L290 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,618.5,168.96934350585937);"><path d="M409 603L47 -1L157 -1L497 659L497 689L44 689L44 477L74 477L81 533C89 595 96 603 142 603Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,629.7396240234375,164.64668701171874);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,439.125,221.64668701171874);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390ZM349 152C349 46 394 -11 477 -11C532 -11 592 15 637 57C699 116 743 230 743 331C743 425 693 482 610 482C506 482 349 382 349 152ZM573 444C634 444 667 399 667 315C667 219 636 113 592 60C574 39 548 27 517 27C459 27 425 72 425 151C425 264 464 387 513 427C526 438 549 444 573 444ZM1015 722L1003 733C951 707 915 698 843 691L839 670L887 670C911 670 921 663 921 646C921 638 920 629 919 622L871 354C857 279 841 210 789 1L798 -9L865 8L888 132C897 180 921 225 955 259C1024 59 1056 -9 1081 -9C1094 -9 1118 4 1162 35L1208 67L1200 86L1157 62C1143 54 1136 52 1128 52C1118 52 1111 58 1102 75C1067 139 1045 193 1006 316L1020 330C1081 391 1127 416 1177 416C1185 416 1196 414 1213 410L1230 473C1212 479 1194 482 1182 482C1116 482 1033 405 908 230ZM1571 111L1547 94C1494 56 1446 36 1410 36C1363 36 1334 73 1334 133C1334 158 1337 185 1342 214C1359 218 1468 248 1493 259C1578 296 1617 342 1617 404C1617 451 1583 482 1533 482C1465 496 1355 423 1318 349C1288 299 1258 180 1258 113C1258 35 1302 -11 1374 -11C1431 -11 1487 17 1579 92ZM1356 274C1373 343 1393 386 1422 412C1440 428 1471 440 1495 440C1524 440 1543 420 1543 388C1543 344 1508 297 1456 272C1428 258 1392 247 1347 237ZM1655 388L1662 368L1694 389C1731 412 1734 414 1741 414C1752 414 1759 404 1759 389C1759 338 1718 145 1677 2L1684 -9C1709 -2 1732 4 1754 8C1773 134 1794 199 1840 268C1894 352 1969 414 2014 414C2025 414 2031 405 2031 390C2031 372 2028 351 2020 319L1968 107C1959 70 1955 47 1955 31C1955 6 1966 -9 1985 -9C2011 -9 2047 12 2145 85L2135 103L2109 86C2080 67 2058 56 2048 56C2041 56 2035 65 2035 76C2035 81 2036 92 2037 96L2103 372C2110 401 2114 429 2114 446C2114 469 2103 482 2083 482C2041 482 1972 444 1913 389C1875 354 1847 320 1795 247L1833 408C1837 426 1839 438 1839 449C1839 470 1831 482 1816 482C1795 482 1756 460 1683 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,492.6458740234375,221.64668701171874);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,500.78125,221.64668701171874);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,515.1041870117188,225.96934350585937);"><path d="M462 224C462 345 355 366 308 374C388 436 418 482 418 541C418 630 344 689 233 689C165 689 120 670 72 622L43 498L74 498L92 554C103 588 166 622 218 622C283 622 336 569 336 506C336 431 277 368 206 368C198 368 187 369 174 370L159 371L147 318L154 312C192 329 211 334 238 334C321 334 369 281 369 190C369 88 308 21 215 21C169 21 128 36 98 64C74 86 61 109 42 163L15 153C36 92 44 56 50 6C103 -12 147 -20 184 -20C307 -20 462 87 462 224Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,525.125,221.64668701171874);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,540.6041870117188,221.64668701171874);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,564.3021240234375,221.64668701171874);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,573.65625,221.64668701171874);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,582.5208740234375,225.96934350585937);"><path d="M16 23L16 -3C203 -3 203 0 239 0C275 0 275 -3 468 -3L468 82C353 77 307 81 122 77L304 270C401 373 431 428 431 503C431 618 353 689 226 689C154 689 105 669 56 619L39 483L68 483L81 529C97 587 133 612 200 612C286 612 341 558 341 473C341 398 299 324 186 204Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,592.5416870117188,221.64668701171874);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,603.541748046875,221.64668701171874);"><path d="M374 390L318 107C317 99 305 61 305 31C305 6 316 -9 335 -9C370 -9 405 11 483 74L514 99L504 117L459 86C430 66 410 56 399 56C390 56 385 64 385 76C385 102 399 183 428 328L441 390L548 390L559 440C521 436 487 434 449 434C465 528 476 577 494 631L483 646C463 634 436 622 405 610L380 440C336 419 310 408 292 403L290 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,618.5,225.96934350585937);"><path d="M131 331C152 512 241 611 421 665L379 689C283 657 242 637 191 593C88 506 32 384 32 247C32 82 112 -20 241 -20C371 -20 468 83 468 219C468 334 399 409 293 409C216 409 184 370 131 331ZM255 349C331 349 382 283 382 184C382 80 331 13 254 13C169 13 123 86 123 220C123 255 127 274 138 291C160 325 207 349 255 349Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,629.7396240234375,221.64668701171874);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g></g><g><g><g><g><g><g style="transform:matrix(1,0,0,1,439.125,281.64668701171877);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390ZM349 152C349 46 394 -11 477 -11C532 -11 592 15 637 57C699 116 743 230 743 331C743 425 693 482 610 482C506 482 349 382 349 152ZM573 444C634 444 667 399 667 315C667 219 636 113 592 60C574 39 548 27 517 27C459 27 425 72 425 151C425 264 464 387 513 427C526 438 549 444 573 444ZM1015 722L1003 733C951 707 915 698 843 691L839 670L887 670C911 670 921 663 921 646C921 638 920 629 919 622L871 354C857 279 841 210 789 1L798 -9L865 8L888 132C897 180 921 225 955 259C1024 59 1056 -9 1081 -9C1094 -9 1118 4 1162 35L1208 67L1200 86L1157 62C1143 54 1136 52 1128 52C1118 52 1111 58 1102 75C1067 139 1045 193 1006 316L1020 330C1081 391 1127 416 1177 416C1185 416 1196 414 1213 410L1230 473C1212 479 1194 482 1182 482C1116 482 1033 405 908 230ZM1571 111L1547 94C1494 56 1446 36 1410 36C1363 36 1334 73 1334 133C1334 158 1337 185 1342 214C1359 218 1468 248 1493 259C1578 296 1617 342 1617 404C1617 451 1583 482 1533 482C1465 496 1355 423 1318 349C1288 299 1258 180 1258 113C1258 35 1302 -11 1374 -11C1431 -11 1487 17 1579 92ZM1356 274C1373 343 1393 386 1422 412C1440 428 1471 440 1495 440C1524 440 1543 420 1543 388C1543 344 1508 297 1456 272C1428 258 1392 247 1347 237ZM1655 388L1662 368L1694 389C1731 412 1734 414 1741 414C1752 414 1759 404 1759 389C1759 338 1718 145 1677 2L1684 -9C1709 -2 1732 4 1754 8C1773 134 1794 199 1840 268C1894 352 1969 414 2014 414C2025 414 2031 405 2031 390C2031 372 2028 351 2020 319L1968 107C1959 70 1955 47 1955 31C1955 6 1966 -9 1985 -9C2011 -9 2047 12 2145 85L2135 103L2109 86C2080 67 2058 56 2048 56C2041 56 2035 65 2035 76C2035 81 2036 92 2037 96L2103 372C2110 401 2114 429 2114 446C2114 469 2103 482 2083 482C2041 482 1972 444 1913 389C1875 354 1847 320 1795 247L1833 408C1837 426 1839 438 1839 449C1839 470 1831 482 1816 482C1795 482 1756 460 1683 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,492.6458740234375,281.64668701171877);"><path d="M146 266C146 526 243 632 301 700L282 726C225 675 60 542 60 266C60 159 85 58 133 -32C168 -99 200 -138 282 -215L301 -194C255 -137 146 -15 146 266Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,500.78125,281.64668701171877);"><path d="M24 388L31 368L63 389C100 412 103 414 110 414C121 414 128 404 128 389C128 338 87 145 46 2L53 -9C78 -2 101 4 123 8C142 134 163 199 209 268C263 352 338 414 383 414C394 414 400 405 400 390C400 372 397 351 389 319L337 107C328 70 324 47 324 31C324 6 335 -9 354 -9C380 -9 416 12 514 85L504 103L478 86C449 67 427 56 417 56C410 56 404 65 404 76C404 81 405 92 406 96L472 372C479 401 483 429 483 446C483 469 472 482 452 482C410 482 341 444 282 389C244 354 216 320 164 247L202 408C206 426 208 438 208 449C208 470 200 482 185 482C164 482 125 460 52 408Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,515.1041870117188,285.9693435058594);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,525.125,281.64668701171877);"><path d="M51 726L32 700C87 636 187 526 187 266C187 -10 83 -131 32 -194L51 -215C104 -165 273 -23 273 265C273 542 108 675 51 726Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,540.6041870117188,281.64668701171877);"><path d="M604 347L604 406L65 406L65 347ZM604 134L604 193L65 193L65 134Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,564.3021240234375,281.64668701171877);"><path d="M289 -175C226 -161 206 -117 206 -45L206 128C206 207 197 253 125 272L125 274C194 292 206 335 206 409L206 595C206 667 224 707 289 726C189 726 134 703 134 578L134 392C134 327 120 292 58 273C124 254 134 223 134 151L134 -17C134 -149 176 -175 289 -175Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,573.65625,281.64668701171877);"><path d="M125 390L69 107C68 99 56 61 56 31C56 6 67 -9 86 -9C121 -9 156 11 234 74L265 99L255 117L210 86C181 66 161 56 150 56C141 56 136 64 136 76C136 102 150 183 179 328L192 390L299 390L310 440C272 436 238 434 200 434C216 528 227 577 245 631L234 646C214 634 187 622 156 610L131 440C87 419 61 408 43 403L41 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,582.5208740234375,285.9693435058594);"><path d="M280 181L280 106C280 46 269 32 220 30L158 27L158 -3C291 0 291 0 315 0C339 0 339 0 472 -3L472 27L424 30C375 33 364 46 364 106L364 181C423 181 444 180 472 177L472 248L364 245L365 697L285 667L2 204L2 181ZM280 245L65 245L280 597Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,592.5416870117188,281.64668701171877);"><path d="M204 123C177 114 159 108 106 93C99 17 74 -48 16 -144L30 -155L71 -136C152 -31 190 32 218 109Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g style="transform:matrix(1,0,0,1,603.541748046875,281.64668701171877);"><path d="M374 390L318 107C317 99 305 61 305 31C305 6 316 -9 335 -9C370 -9 405 11 483 74L514 99L504 117L459 86C430 66 410 56 399 56C390 56 385 64 385 76C385 102 399 183 428 328L441 390L548 390L559 440C521 436 487 434 449 434C465 528 476 577 494 631L483 646C463 634 436 622 405 610L380 440C336 419 310 408 292 403L290 390Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g><g><g><g><g style="transform:matrix(1,0,0,1,618.5,285.9693435058594);"><path d="M168 345C127 326 110 315 88 294C50 256 30 211 30 159C30 56 113 -20 226 -20C356 -20 464 82 464 206C464 286 427 329 313 381C404 443 436 485 436 545C436 631 365 689 259 689C140 689 53 613 53 508C53 440 80 402 168 345ZM284 295C347 267 385 218 385 164C385 80 322 14 241 14C156 14 101 74 101 167C101 240 130 286 204 331ZM223 423C160 454 128 494 128 544C128 610 176 655 247 655C320 655 368 607 368 534C368 477 343 438 278 396Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.017136,0,0,-0.017136,0,0);"></path></g></g></g></g><g style="transform:matrix(1,0,0,1,629.7396240234375,281.64668701171877);"><path d="M275 273C213 292 199 327 199 392L199 578C199 703 144 726 44 726C109 707 127 667 127 595L127 409C127 335 139 292 208 274L208 272C136 253 127 207 127 128L127 -45C127 -117 107 -161 44 -175C157 -175 199 -149 199 -17L199 151C199 223 209 254 275 273Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.024480000000000002,0,0,-0.024480000000000002,0,0);"></path></g></g></g></g></g></g><g><g><g style="transform:matrix(1,0,0,1,471.734375,61.95);"><path d="M35 623L177 623L295 624L295 0L384 0L384 624L501 623L643 623L643 689L35 689ZM627 221C627 85 732 -11 846 -11C960 -11 1066 84 1066 220C1066 345 974 461 846 461C728 461 627 357 627 221ZM705 231C705 352 782 399 846 399C910 399 987 353 987 231C987 106 913 53 846 53C780 53 705 105 705 231ZM1180 0L1250 0L1250 142L1330 224L1486 0L1568 0L1378 273L1546 445L1456 445L1252 236L1252 722L1180 722ZM1592 226C1592 102 1679 -11 1810 -11C1873 -11 1925 11 1968 40L1962 106C1918 74 1873 51 1810 51C1734 51 1666 117 1662 220L1972 220L1972 249C1963 420 1865 461 1794 461C1688 461 1592 360 1592 226ZM1667 275C1678 324 1718 399 1794 399C1823 399 1898 386 1915 275ZM2082 0L2160 0L2160 240C2160 314 2185 394 2262 394C2360 394 2360 319 2360 281L2360 0L2438 0L2438 288C2438 358 2429 455 2301 455C2213 455 2169 398 2155 380L2155 450L2082 450ZM2952 0L3030 0L3030 624C3039 580 3063 517 3102 411L3252 22L3324 22L3478 423L3538 587L3548 624L3549 592L3549 0L3627 0L3627 694L3512 694L3358 292C3309 164 3293 114 3290 92L3289 92C3285 115 3261 182 3220 293L3066 694L2952 694ZM3771 113C3771 67 3801 -11 3885 -11C3995 -11 4050 34 4051 35L4051 0L4127 0L4127 305C4122 389 4056 461 3961 461C3898 461 3852 445 3804 417L3810 350C3843 373 3885 401 3960 401C3973 401 3999 400 4023 371C4048 341 4048 307 4049 279L4049 245C3946 244 3771 219 3771 113ZM3844 114C3844 177 3977 192 4049 193L4049 130C4049 65 3980 51 3937 51C3883 51 3844 78 3844 114ZM4288 -195L4366 -195L4366 46C4399 15 4442 -11 4501 -11C4598 -11 4687 83 4687 224C4687 343 4624 455 4529 455C4495 455 4427 448 4363 396L4363 445L4288 445ZM4366 126L4366 334C4372 341 4406 391 4472 391C4554 391 4608 310 4608 222C4608 116 4533 50 4463 50C4404 50 4366 102 4366 126Z" stroke="rgb(0, 0, 0)" stroke-width="8" fill="rgb(0, 0, 0)" style="transform:matrix(0.02595,0,0,-0.02595,0,0);"></path></g></g></g></svg>
+</svg>
diff --git a/src/doc/3.11.11/_sources/configuration/cass_cl_archive_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_cl_archive_file.rst.txt
new file mode 100644
index 0000000..9396574
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_cl_archive_file.rst.txt
@@ -0,0 +1,46 @@
+.. _cassandra-cl-archive:
+
+commitlog_archiving.properties file
+================================
+
+The ``commitlog_archiving.properties`` configuration file can optionally set commands that are executed when archiving or restoring a commitlog segment.
+
+===========================
+Options
+===========================
+
+``archive_command=<command>``
+------
+One command can be inserted with %path and %name arguments. %path is the fully qualified path of the commitlog segment to archive. %name is the filename of the commitlog. STDOUT, STDIN, or multiple commands cannot be executed. If multiple commands are required, add a pointer to a script in this option.
+
+**Example:** archive_command=/bin/ln %path /backup/%name
+
+**Default value:** blank
+
+``restore_command=<command>``
+------
+One command can be inserted with %from and %to arguments. %from is the fully qualified path to an archived commitlog segment using the specified restore directories. %to defines the directory to the live commitlog location.
+
+**Example:** restore_command=/bin/cp -f %from %to
+
+**Default value:** blank
+
+``restore_directories=<directory>``
+------
+Defines the directory to scan the recovery files into.
+
+**Default value:** blank
+
+``restore_point_in_time=<timestamp>``
+------
+Restore mutations created up to and including this timestamp in GMT in the format ``yyyy:MM:dd HH:mm:ss``.  Recovery will continue through the segment when the first client-supplied timestamp greater than this time is encountered, but only mutations less than or equal to this timestamp will be applied.
+
+**Example:** 2020:04:31 20:43:12
+
+**Default value:** blank
+
+``precision=<timestamp_precision>``
+------
+Precision of the timestamp used in the inserts. Choice is generally MILLISECONDS or MICROSECONDS
+
+**Default value:** MICROSECONDS
diff --git a/src/doc/3.11.11/_sources/configuration/cass_env_sh_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_env_sh_file.rst.txt
new file mode 100644
index 0000000..eb48a51
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_env_sh_file.rst.txt
@@ -0,0 +1,128 @@
+.. _cassandra-envsh:
+
+cassandra-env.sh file 
+=====================
+
+The ``cassandra-env.sh`` bash script file can be used to pass additional options to the Java virtual machine (JVM), such as maximum and minimum heap size, rather than setting them in the environment. If the JVM settings are static and do not need to be computed from the node characteristics, the :ref:`cassandra-jvm-options` files should be used instead. For example, commonly computed values are the heap sizes, using the system values.
+
+For example, add ``JVM_OPTS="$JVM_OPTS -Dcassandra.load_ring_state=false"`` to the ``cassandra_env.sh`` file
+and run the command-line ``cassandra`` to start. The option is set from the ``cassandra-env.sh`` file, and is equivalent to starting Cassandra with the command-line option ``cassandra -Dcassandra.load_ring_state=false``.
+
+The ``-D`` option specifies the start-up parameters in both the command line and ``cassandra-env.sh`` file. The following options are available:
+
+``cassandra.auto_bootstrap=false``
+----------------------------------
+Facilitates setting auto_bootstrap to false on initial set-up of the cluster. The next time you start the cluster, you do not need to change the ``cassandra.yaml`` file on each node to revert to true, the default value.
+
+``cassandra.available_processors=<number_of_processors>``
+---------------------------------------------------------
+In a multi-instance deployment, multiple Cassandra instances will independently assume that all CPU processors are available to it. This setting allows you to specify a smaller set of processors.
+
+``cassandra.config=<directory>``
+--------------------------------
+The directory location of the ``cassandra.yaml file``. The default location depends on the type of installation.
+
+``cassandra.ignore_dynamic_snitch_severity=true|false`` 
+-------------------------------------------------------
+Setting this property to true causes the dynamic snitch to ignore the severity indicator from gossip when scoring nodes.  Explore failure detection and recovery and dynamic snitching for more information.
+
+**Default:** false
+
+``cassandra.initial_token=<token>``
+-----------------------------------
+Use when virtual nodes (vnodes) are not used. Sets the initial partitioner token for a node the first time the node is started. 
+Note: Vnodes are highly recommended as they automatically select tokens.
+
+**Default:** disabled
+
+``cassandra.join_ring=true|false``
+----------------------------------
+Set to false to start Cassandra on a node but not have the node join the cluster. 
+You can use ``nodetool join`` and a JMX call to join the ring afterwards.
+
+**Default:** true
+
+``cassandra.load_ring_state=true|false``
+----------------------------------------
+Set to false to clear all gossip state for the node on restart. 
+
+**Default:** true
+
+``cassandra.metricsReporterConfigFile=<filename>``
+--------------------------------------------------
+Enable pluggable metrics reporter. Explore pluggable metrics reporting for more information.
+
+``cassandra.partitioner=<partitioner>``
+---------------------------------------
+Set the partitioner. 
+
+**Default:** org.apache.cassandra.dht.Murmur3Partitioner
+
+``cassandra.prepared_statements_cache_size_in_bytes=<cache_size>``
+------------------------------------------------------------------
+Set the cache size for prepared statements.
+
+``cassandra.replace_address=<listen_address of dead node>|<broadcast_address of dead node>``
+--------------------------------------------------------------------------------------------
+To replace a node that has died, restart a new node in its place specifying the ``listen_address`` or ``broadcast_address`` that the new node is assuming. The new node must not have any data in its data directory, the same state as before bootstrapping.
+Note: The ``broadcast_address`` defaults to the ``listen_address`` except when using the ``Ec2MultiRegionSnitch``.
+
+``cassandra.replayList=<table>``
+--------------------------------
+Allow restoring specific tables from an archived commit log.
+
+``cassandra.ring_delay_ms=<number_of_ms>``
+------------------------------------------
+Defines the amount of time a node waits to hear from other nodes before formally joining the ring. 
+
+**Default:** 1000ms
+
+``cassandra.native_transport_port=<port>``
+------------------------------------------
+Set the port on which the CQL native transport listens for clients. 
+
+**Default:** 9042
+
+``cassandra.rpc_port=<port>``
+-----------------------------
+Set the port for the Thrift RPC service, which is used for client connections. 
+
+**Default:** 9160
+
+``cassandra.storage_port=<port>``
+---------------------------------
+Set the port for inter-node communication. 
+
+**Default:** 7000
+
+``cassandra.ssl_storage_port=<port>``
+-------------------------------------
+Set the SSL port for encrypted communication. 
+
+**Default:** 7001
+
+``cassandra.start_native_transport=true|false``
+-----------------------------------------------
+Enable or disable the native transport server. See ``start_native_transport`` in ``cassandra.yaml``. 
+
+**Default:** true
+
+``cassandra.start_rpc=true|false``
+----------------------------------
+Enable or disable the Thrift RPC server. 
+
+**Default:** true
+
+``cassandra.triggers_dir=<directory>``
+--------------------------------------
+Set the default location for the trigger JARs. 
+
+**Default:** conf/triggers
+
+``cassandra.write_survey=true``
+-------------------------------
+For testing new compaction and compression strategies. It allows you to experiment with different strategies and benchmark write performance differences without affecting the production workload.
+
+``consistent.rangemovement=true|false``
+---------------------------------------
+Set to true makes Cassandra perform bootstrap safely without violating consistency. False disables this.
diff --git a/src/doc/3.11.11/_sources/configuration/cass_jvm_options_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_jvm_options_file.rst.txt
new file mode 100644
index 0000000..f5a6326
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_jvm_options_file.rst.txt
@@ -0,0 +1,10 @@
+.. _cassandra-jvm-options:
+
+jvm-* files 
+===========
+
+Several files for JVM configuration are included in Cassandra. The ``jvm-server.options`` file, and corresponding files ``jvm8-server.options`` and ``jvm11-server.options`` are the main file for settings that affect the operation of the Cassandra JVM on cluster nodes. The file includes startup parameters, general JVM settings such as garbage collection, and heap settings. The ``jvm-clients.options`` and corresponding ``jvm8-clients.options`` and ``jvm11-clients.options`` files can be used to configure JVM settings for clients like ``nodetool`` and the ``sstable`` tools. 
+
+See each file for examples of settings.
+
+.. note:: The ``jvm-*`` files replace the :ref:`cassandra-envsh` file used in Cassandra versions prior to Cassandra 3.0. The ``cassandra-env.sh`` bash script file is still useful if JVM settings must be dynamically calculated based on system settings. The ``jvm-*`` files only store static JVM settings.
diff --git a/src/doc/3.11.11/_sources/configuration/cass_logback_xml_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_logback_xml_file.rst.txt
new file mode 100644
index 0000000..3de1c77
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_logback_xml_file.rst.txt
@@ -0,0 +1,157 @@
+.. _cassandra-logback-xml:
+
+logback.xml file 
+================================
+
+The ``logback.xml`` configuration file can optionally set logging levels for the logs written to ``system.log`` and ``debug.log``. The logging levels can also be set using ``nodetool setlogginglevels``.
+
+===========================
+Options
+===========================
+
+``appender name="<appender_choice>"...</appender>``
+------
+
+Specify log type and settings. Possible appender names are: ``SYSTEMLOG``, ``DEBUGLOG``, ``ASYNCDEBUGLOG``, and ``STDOUT``. ``SYSTEMLOG`` ensures that WARN and ERROR message are written synchronously to the specified file. ``DEBUGLOG`` and  ``ASYNCDEBUGLOG`` ensure that DEBUG messages are written either synchronously or asynchronously, respectively, to the specified file. ``STDOUT`` writes all messages to the console in a human-readable format.
+
+**Example:** <appender name="SYSTEMLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+``<file> <filename> </file>``
+------
+
+Specify the filename for a log.
+
+**Example:** <file>${cassandra.logdir}/system.log</file>
+
+``<level> <log_level> </level>``
+------
+
+Specify the level for a log. Part of the filter. Levels are: ``ALL``, ``TRACE``, ``DEBUG``, ``INFO``, ``WARN``, ``ERROR``, ``OFF``. ``TRACE`` creates the most verbose log, ``ERROR`` the least.
+
+.. note::
+Note: Increasing logging levels can generate heavy logging output on a moderately trafficked cluster.
+You can use the ``nodetool getlogginglevels`` command to see the current logging configuration.
+
+**Default:** INFO
+
+**Example:** <level>INFO</level>
+
+``<rollingPolicy class="<rolling_policy_choice>" <fileNamePattern><pattern_info></fileNamePattern> ... </rollingPolicy>``
+------
+
+Specify the policy for rolling logs over to an archive.
+
+**Example:** <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+``<fileNamePattern> <pattern_info> </fileNamePattern>``
+------
+
+Specify the pattern information for rolling over the log to archive. Part of the rolling policy.
+
+**Example:** <fileNamePattern>${cassandra.logdir}/system.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
+
+``<maxFileSize> <size> </maxFileSize>``
+------
+
+Specify the maximum file size to trigger rolling a log. Part of the rolling policy.
+
+**Example:** <maxFileSize>50MB</maxFileSize>
+
+``<maxHistory> <number_of_days> </maxHistory>``
+------
+
+Specify the maximum history in days to trigger rolling a log. Part of the rolling policy.
+
+**Example:** <maxHistory>7</maxHistory>
+
+``<encoder> <pattern>...</pattern> </encoder>``
+------
+
+Specify the format of the message. Part of the rolling policy.
+
+**Example:** <maxHistory>7</maxHistory>
+**Example:** <encoder> <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern> </encoder>
+
+Contents of default ``logback.xml``
+-----------------------
+
+.. code-block:: XML
+
+	<configuration scan="true" scanPeriod="60 seconds">
+	  <jmxConfigurator />
+
+	  <!-- No shutdown hook; we run it ourselves in StorageService after shutdown -->
+
+	  <!-- SYSTEMLOG rolling file appender to system.log (INFO level) -->
+
+	  <appender name="SYSTEMLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>INFO</level>
+	    </filter>
+	    <file>${cassandra.logdir}/system.log</file>
+	    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+	      <!-- rollover daily -->
+	      <fileNamePattern>${cassandra.logdir}/system.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
+	      <!-- each file should be at most 50MB, keep 7 days worth of history, but at most 5GB -->
+	      <maxFileSize>50MB</maxFileSize>
+	      <maxHistory>7</maxHistory>
+	      <totalSizeCap>5GB</totalSizeCap>
+	    </rollingPolicy>
+	    <encoder>
+	      <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern>
+	    </encoder>
+	  </appender>
+
+	  <!-- DEBUGLOG rolling file appender to debug.log (all levels) -->
+
+	  <appender name="DEBUGLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${cassandra.logdir}/debug.log</file>
+	    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+	      <!-- rollover daily -->
+	      <fileNamePattern>${cassandra.logdir}/debug.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
+	      <!-- each file should be at most 50MB, keep 7 days worth of history, but at most 5GB -->
+	      <maxFileSize>50MB</maxFileSize>
+	      <maxHistory>7</maxHistory>
+	      <totalSizeCap>5GB</totalSizeCap>
+	    </rollingPolicy>
+	    <encoder>
+	      <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern>
+	    </encoder>
+	  </appender>
+
+	  <!-- ASYNCLOG assynchronous appender to debug.log (all levels) -->
+
+	  <appender name="ASYNCDEBUGLOG" class="ch.qos.logback.classic.AsyncAppender">
+	    <queueSize>1024</queueSize>
+	    <discardingThreshold>0</discardingThreshold>
+	    <includeCallerData>true</includeCallerData>
+	    <appender-ref ref="DEBUGLOG" />
+	  </appender>
+
+	  <!-- STDOUT console appender to stdout (INFO level) -->
+
+	  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+	    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+	      <level>INFO</level>
+	    </filter>
+	    <encoder>
+	      <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern>
+	    </encoder>
+	  </appender>
+
+	  <!-- Uncomment bellow and corresponding appender-ref to activate logback metrics
+	  <appender name="LogbackMetrics" class="com.codahale.metrics.logback.InstrumentedAppender" />
+	   -->
+
+	  <root level="INFO">
+	    <appender-ref ref="SYSTEMLOG" />
+	    <appender-ref ref="STDOUT" />
+	    <appender-ref ref="ASYNCDEBUGLOG" /> <!-- Comment this line to disable debug.log -->
+	    <!--
+	    <appender-ref ref="LogbackMetrics" />
+	    -->
+	  </root>
+
+	  <logger name="org.apache.cassandra" level="DEBUG"/>
+	  <logger name="com.thinkaurelius.thrift" level="ERROR"/>
+	</configuration>
diff --git a/src/doc/3.11.11/_sources/configuration/cass_rackdc_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_rackdc_file.rst.txt
new file mode 100644
index 0000000..9921092
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_rackdc_file.rst.txt
@@ -0,0 +1,67 @@
+.. _cassandra-rackdc:
+
+cassandra-rackdc.properties file 
+================================
+
+Several :term:`snitch` options use the ``cassandra-rackdc.properties`` configuration file to determine which :term:`datacenters` and racks cluster nodes belong to. Information about the 
+network topology allows requests to be routed efficiently and to distribute replicas evenly. The following snitches can be configured here:
+
+- GossipingPropertyFileSnitch
+- AWS EC2 single-region snitch
+- AWS EC2 multi-region snitch
+
+The GossipingPropertyFileSnitch is recommended for production. This snitch uses the datacenter and rack information configured in a local node's ``cassandra-rackdc.properties``
+file and propagates the information to other nodes using :term:`gossip`. It is the default snitch and the settings in this properties file are enabled.
+
+The AWS EC2 snitches are configured for clusters in AWS. This snitch uses the ``cassandra-rackdc.properties`` options to designate one of two AWS EC2 datacenter and rack naming conventions:
+
+- legacy: Datacenter name is the part of the availability zone name preceding the last "-" when the zone ends in -1 and includes the number if not -1. Rack name is the portion of the availability zone name following  the last "-".
+
+          Examples: us-west-1a => dc: us-west, rack: 1a; us-west-2b => dc: us-west-2, rack: 2b;
+
+- standard: Datacenter name is the standard AWS region name, including the number. Rack name is the region plus the availability zone letter.
+
+          Examples: us-west-1a => dc: us-west-1, rack: us-west-1a; us-west-2b => dc: us-west-2, rack: us-west-2b;
+
+Either snitch can set to use the local or internal IP address when multiple datacenters are not communicating.
+
+===========================
+GossipingPropertyFileSnitch
+===========================
+
+``dc``
+------
+Name of the datacenter. The value is case-sensitive.
+
+**Default value:** DC1
+
+``rack``
+--------
+Rack designation. The value is case-sensitive.
+
+**Default value:** RAC1 
+
+===========================
+AWS EC2 snitch
+===========================
+
+``ec2_naming_scheme``
+---------------------
+Datacenter and rack naming convention. Options are ``legacy`` or ``standard`` (default). **This option is commented out by default.** 
+
+**Default value:** standard
+
+
+.. NOTE::
+          YOU MUST USE THE ``legacy`` VALUE IF YOU ARE UPGRADING A PRE-4.0 CLUSTER.
+
+===========================
+Either snitch
+===========================
+
+``prefer_local``
+----------------
+Option to use the local or internal IP address when communication is not across different datacenters. **This option is commented out by default.**
+
+**Default value:** true
+
diff --git a/src/doc/3.11.11/_sources/configuration/cass_topo_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_topo_file.rst.txt
new file mode 100644
index 0000000..264addc
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_topo_file.rst.txt
@@ -0,0 +1,48 @@
+.. _cassandra-topology:
+
+cassandra-topologies.properties file 
+================================
+
+The ``PropertyFileSnitch`` :term:`snitch` option uses the ``cassandra-topologies.properties`` configuration file to determine which :term:`datacenters` and racks cluster nodes belong to. If other snitches are used, the 
+:ref:cassandra_rackdc must be used. The snitch determines network topology (proximity by rack and datacenter) so that requests are routed efficiently and allows the database to distribute replicas evenly.
+
+Include every node in the cluster in the properties file, defining your datacenter names as in the keyspace definition. The datacenter and rack names are case-sensitive.
+
+The ``cassandra-topologies.properties`` file must be copied identically to every node in the cluster.
+
+
+===========================
+Example
+===========================
+This example uses three datacenters:
+
+.. code-block:: bash
+
+   # datacenter One
+
+   175.56.12.105=DC1:RAC1
+   175.50.13.200=DC1:RAC1
+   175.54.35.197=DC1:RAC1
+
+   120.53.24.101=DC1:RAC2
+   120.55.16.200=DC1:RAC2
+   120.57.102.103=DC1:RAC2
+
+   # datacenter Two
+
+   110.56.12.120=DC2:RAC1
+   110.50.13.201=DC2:RAC1
+   110.54.35.184=DC2:RAC1
+
+   50.33.23.120=DC2:RAC2
+   50.45.14.220=DC2:RAC2
+   50.17.10.203=DC2:RAC2
+
+   # datacenter Three
+
+   172.106.12.120=DC3:RAC1
+   172.106.12.121=DC3:RAC1
+   172.106.12.122=DC3:RAC1
+
+   # default for unknown nodes 
+   default =DC3:RAC1
diff --git a/src/doc/3.11.11/_sources/configuration/cass_yaml_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cass_yaml_file.rst.txt
new file mode 100644
index 0000000..8a14336
--- /dev/null
+++ b/src/doc/3.11.11/_sources/configuration/cass_yaml_file.rst.txt
@@ -0,0 +1,2109 @@
+.. _cassandra-yaml:
+
+cassandra.yaml file configuration 
+=================================
+
+``cluster_name``
+----------------
+The name of the cluster. This is mainly used to prevent machines in
+one logical cluster from joining another.
+
+*Default Value:* 'Test Cluster'
+
+``num_tokens``
+--------------
+
+This defines the number of tokens randomly assigned to this node on the ring
+The more tokens, relative to other nodes, the larger the proportion of data
+that this node will store. We recommend all nodes to have the same number
+of tokens assuming they have equal hardware capability.
+
+If you leave this unspecified, Cassandra will use the default of 1 token for legacy compatibility,
+and will use the initial_token as described below.
+
+Specifying initial_token will override this setting on the node's initial start,
+on subsequent starts, this setting will apply even if initial token is set.
+
+We recommend setting ``allocate_tokens_for_local_replication_factor`` in conjunction with this setting to ensure even allocation.
+
+*Default Value:* 256
+
+``allocate_tokens_for_keyspace``
+--------------------------------
+*This option is commented out by default.*
+
+Triggers automatic allocation of num_tokens tokens for this node. The allocation
+algorithm attempts to choose tokens in a way that optimizes replicated load over
+the nodes in the datacenter for the replica factor.
+
+The load assigned to each node will be close to proportional to its number of
+vnodes.
+
+Only supported with the Murmur3Partitioner.
+
+Replica factor is determined via the replication strategy used by the specified
+keyspace.
+
+We recommend using the ``allocate_tokens_for_local_replication_factor`` setting instead for operational simplicity.
+
+*Default Value:* KEYSPACE
+
+``allocate_tokens_for_local_replication_factor``
+------------------------------------------------
+*This option is commented out by default.*
+
+Tokens will be allocated based on this replication factor, regardless of keyspace or datacenter.
+
+*Default Value:* 3
+
+``initial_token``
+-----------------
+*This option is commented out by default.*
+
+initial_token allows you to specify tokens manually.  While you can use it with
+vnodes (num_tokens > 1, above) -- in which case you should provide a 
+comma-separated list -- it's primarily used when adding nodes to legacy clusters 
+that do not have vnodes enabled.
+
+``hinted_handoff_enabled``
+--------------------------
+
+May either be "true" or "false" to enable globally
+
+*Default Value:* true
+
+``hinted_handoff_disabled_datacenters``
+---------------------------------------
+*This option is commented out by default.*
+
+When hinted_handoff_enabled is true, a black list of data centers that will not
+perform hinted handoff
+
+*Default Value (complex option)*::
+
+    #    - DC1
+    #    - DC2
+
+``max_hint_window_in_ms``
+-------------------------
+This defines the maximum amount of time a dead host will have hints
+generated.  After it has been dead this long, new hints for it will not be
+created until it has been seen alive and gone down again.
+
+*Default Value:* 10800000 # 3 hours
+
+``hinted_handoff_throttle_in_kb``
+---------------------------------
+
+Maximum throttle in KBs per second, per delivery thread.  This will be
+reduced proportionally to the number of nodes in the cluster.  (If there
+are two nodes in the cluster, each delivery thread will use the maximum
+rate; if there are three, each will throttle to half of the maximum,
+since we expect two nodes to be delivering hints simultaneously.)
+
+*Default Value:* 1024
+
+``max_hints_delivery_threads``
+------------------------------
+
+Number of threads with which to deliver hints;
+Consider increasing this number when you have multi-dc deployments, since
+cross-dc handoff tends to be slower
+
+*Default Value:* 2
+
+``hints_directory``
+-------------------
+*This option is commented out by default.*
+
+Directory where Cassandra should store hints.
+If not set, the default directory is $CASSANDRA_HOME/data/hints.
+
+*Default Value:*  /var/lib/cassandra/hints
+
+``hints_flush_period_in_ms``
+----------------------------
+
+How often hints should be flushed from the internal buffers to disk.
+Will *not* trigger fsync.
+
+*Default Value:* 10000
+
+``max_hints_file_size_in_mb``
+-----------------------------
+
+Maximum size for a single hints file, in megabytes.
+
+*Default Value:* 128
+
+``hints_compression``
+---------------------
+*This option is commented out by default.*
+
+Compression to apply to the hint files. If omitted, hints files
+will be written uncompressed. LZ4, Snappy, and Deflate compressors
+are supported.
+
+*Default Value (complex option)*::
+
+    #   - class_name: LZ4Compressor
+    #     parameters:
+    #         -
+
+``batchlog_replay_throttle_in_kb``
+----------------------------------
+Maximum throttle in KBs per second, total. This will be
+reduced proportionally to the number of nodes in the cluster.
+
+*Default Value:* 1024
+
+``authenticator``
+-----------------
+
+Authentication backend, implementing IAuthenticator; used to identify users
+Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthenticator,
+PasswordAuthenticator}.
+
+- AllowAllAuthenticator performs no checks - set it to disable authentication.
+- PasswordAuthenticator relies on username/password pairs to authenticate
+  users. It keeps usernames and hashed passwords in system_auth.roles table.
+  Please increase system_auth keyspace replication factor if you use this authenticator.
+  If using PasswordAuthenticator, CassandraRoleManager must also be used (see below)
+
+*Default Value:* AllowAllAuthenticator
+
+``authorizer``
+--------------
+
+Authorization backend, implementing IAuthorizer; used to limit access/provide permissions
+Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer,
+CassandraAuthorizer}.
+
+- AllowAllAuthorizer allows any action to any user - set it to disable authorization.
+- CassandraAuthorizer stores permissions in system_auth.role_permissions table. Please
+  increase system_auth keyspace replication factor if you use this authorizer.
+
+*Default Value:* AllowAllAuthorizer
+
+``role_manager``
+----------------
+
+Part of the Authentication & Authorization backend, implementing IRoleManager; used
+to maintain grants and memberships between roles.
+Out of the box, Cassandra provides org.apache.cassandra.auth.CassandraRoleManager,
+which stores role information in the system_auth keyspace. Most functions of the
+IRoleManager require an authenticated login, so unless the configured IAuthenticator
+actually implements authentication, most of this functionality will be unavailable.
+
+- CassandraRoleManager stores role data in the system_auth keyspace. Please
+  increase system_auth keyspace replication factor if you use this role manager.
+
+*Default Value:* CassandraRoleManager
+
+``network_authorizer``
+----------------------
+
+Network authorization backend, implementing INetworkAuthorizer; used to restrict user
+access to certain DCs
+Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllNetworkAuthorizer,
+CassandraNetworkAuthorizer}.
+
+- AllowAllNetworkAuthorizer allows access to any DC to any user - set it to disable authorization.
+- CassandraNetworkAuthorizer stores permissions in system_auth.network_permissions table. Please
+  increase system_auth keyspace replication factor if you use this authorizer.
+
+*Default Value:* AllowAllNetworkAuthorizer
+
+``roles_validity_in_ms``
+------------------------
+
+Validity period for roles cache (fetching granted roles can be an expensive
+operation depending on the role manager, CassandraRoleManager is one example)
+Granted roles are cached for authenticated sessions in AuthenticatedUser and
+after the period specified here, become eligible for (async) reload.
+Defaults to 2000, set to 0 to disable caching entirely.
+Will be disabled automatically for AllowAllAuthenticator.
+
+*Default Value:* 2000
+
+``roles_update_interval_in_ms``
+-------------------------------
+*This option is commented out by default.*
+
+Refresh interval for roles cache (if enabled).
+After this interval, cache entries become eligible for refresh. Upon next
+access, an async reload is scheduled and the old value returned until it
+completes. If roles_validity_in_ms is non-zero, then this must be
+also.
+Defaults to the same value as roles_validity_in_ms.
+
+*Default Value:* 2000
+
+``permissions_validity_in_ms``
+------------------------------
+
+Validity period for permissions cache (fetching permissions can be an
+expensive operation depending on the authorizer, CassandraAuthorizer is
+one example). Defaults to 2000, set to 0 to disable.
+Will be disabled automatically for AllowAllAuthorizer.
+
+*Default Value:* 2000
+
+``permissions_update_interval_in_ms``
+-------------------------------------
+*This option is commented out by default.*
+
+Refresh interval for permissions cache (if enabled).
+After this interval, cache entries become eligible for refresh. Upon next
+access, an async reload is scheduled and the old value returned until it
+completes. If permissions_validity_in_ms is non-zero, then this must be
+also.
+Defaults to the same value as permissions_validity_in_ms.
+
+*Default Value:* 2000
+
+``credentials_validity_in_ms``
+------------------------------
+
+Validity period for credentials cache. This cache is tightly coupled to
+the provided PasswordAuthenticator implementation of IAuthenticator. If
+another IAuthenticator implementation is configured, this cache will not
+be automatically used and so the following settings will have no effect.
+Please note, credentials are cached in their encrypted form, so while
+activating this cache may reduce the number of queries made to the
+underlying table, it may not  bring a significant reduction in the
+latency of individual authentication attempts.
+Defaults to 2000, set to 0 to disable credentials caching.
+
+*Default Value:* 2000
+
+``credentials_update_interval_in_ms``
+-------------------------------------
+*This option is commented out by default.*
+
+Refresh interval for credentials cache (if enabled).
+After this interval, cache entries become eligible for refresh. Upon next
+access, an async reload is scheduled and the old value returned until it
+completes. If credentials_validity_in_ms is non-zero, then this must be
+also.
+Defaults to the same value as credentials_validity_in_ms.
+
+*Default Value:* 2000
+
+``partitioner``
+---------------
+
+The partitioner is responsible for distributing groups of rows (by
+partition key) across nodes in the cluster. The partitioner can NOT be
+changed without reloading all data.  If you are adding nodes or upgrading,
+you should set this to the same partitioner that you are currently using.
+
+The default partitioner is the Murmur3Partitioner. Older partitioners
+such as the RandomPartitioner, ByteOrderedPartitioner, and
+OrderPreservingPartitioner have been included for backward compatibility only.
+For new clusters, you should NOT change this value.
+
+
+*Default Value:* org.apache.cassandra.dht.Murmur3Partitioner
+
+``data_file_directories``
+-------------------------
+*This option is commented out by default.*
+
+Directories where Cassandra should store data on disk. If multiple
+directories are specified, Cassandra will spread data evenly across 
+them by partitioning the token ranges.
+If not set, the default directory is $CASSANDRA_HOME/data/data.
+
+*Default Value (complex option)*::
+
+    #     - /var/lib/cassandra/data
+
+``local_system_data_file_directory``
+-------------------------
+*This option is commented out by default.*
+
+Directory were Cassandra should store the data of the local system keyspaces.
+By default Cassandra will store the data of the local system keyspaces (at the exception of the system.batches,
+system.paxos, system.compaction_history, system.prepared_statements and system.repair tables) in the first of the data
+directories specified by data_file_directories.
+This approach ensures that if one of the other disks is lost Cassandra can continue to operate. For extra security
+this setting allows to store those data on a different directory that provides redundancy.
+
+``commitlog_directory``
+-----------------------
+*This option is commented out by default.*
+commit log.  when running on magnetic HDD, this should be a
+separate spindle than the data directories.
+If not set, the default directory is $CASSANDRA_HOME/data/commitlog.
+
+*Default Value:*  /var/lib/cassandra/commitlog
+
+``cdc_enabled``
+---------------
+
+Enable / disable CDC functionality on a per-node basis. This modifies the logic used
+for write path allocation rejection (standard: never reject. cdc: reject Mutation
+containing a CDC-enabled table if at space limit in cdc_raw_directory).
+
+*Default Value:* false
+
+``cdc_raw_directory``
+---------------------
+*This option is commented out by default.*
+
+CommitLogSegments are moved to this directory on flush if cdc_enabled: true and the
+segment contains mutations for a CDC-enabled table. This should be placed on a
+separate spindle than the data directories. If not set, the default directory is
+$CASSANDRA_HOME/data/cdc_raw.
+
+*Default Value:*  /var/lib/cassandra/cdc_raw
+
+``disk_failure_policy``
+-----------------------
+
+Policy for data disk failures:
+
+die
+  shut down gossip and client transports and kill the JVM for any fs errors or
+  single-sstable errors, so the node can be replaced.
+
+stop_paranoid
+  shut down gossip and client transports even for single-sstable errors,
+  kill the JVM for errors during startup.
+
+stop
+  shut down gossip and client transports, leaving the node effectively dead, but
+  can still be inspected via JMX, kill the JVM for errors during startup.
+
+best_effort
+   stop using the failed disk and respond to requests based on
+   remaining available sstables.  This means you WILL see obsolete
+   data at CL.ONE!
+
+ignore
+   ignore fatal errors and let requests fail, as in pre-1.2 Cassandra
+
+*Default Value:* stop
+
+``commit_failure_policy``
+-------------------------
+
+Policy for commit disk failures:
+
+die
+  shut down the node and kill the JVM, so the node can be replaced.
+
+stop
+  shut down the node, leaving the node effectively dead, but
+  can still be inspected via JMX.
+
+stop_commit
+  shutdown the commit log, letting writes collect but
+  continuing to service reads, as in pre-2.0.5 Cassandra
+
+ignore
+  ignore fatal errors and let the batches fail
+
+*Default Value:* stop
+
+``prepared_statements_cache_size_mb``
+-------------------------------------
+
+Maximum size of the native protocol prepared statement cache
+
+Valid values are either "auto" (omitting the value) or a value greater 0.
+
+Note that specifying a too large value will result in long running GCs and possbily
+out-of-memory errors. Keep the value at a small fraction of the heap.
+
+If you constantly see "prepared statements discarded in the last minute because
+cache limit reached" messages, the first step is to investigate the root cause
+of these messages and check whether prepared statements are used correctly -
+i.e. use bind markers for variable parts.
+
+Do only change the default value, if you really have more prepared statements than
+fit in the cache. In most cases it is not neccessary to change this value.
+Constantly re-preparing statements is a performance penalty.
+
+Default value ("auto") is 1/256th of the heap or 10MB, whichever is greater
+
+``key_cache_size_in_mb``
+------------------------
+
+Maximum size of the key cache in memory.
+
+Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the
+minimum, sometimes more. The key cache is fairly tiny for the amount of
+time it saves, so it's worthwhile to use it at large numbers.
+The row cache saves even more time, but must contain the entire row,
+so it is extremely space-intensive. It's best to only use the
+row cache if you have hot rows or static rows.
+
+NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.
+
+Default value is empty to make it "auto" (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache.
+
+``key_cache_save_period``
+-------------------------
+
+Duration in seconds after which Cassandra should
+save the key cache. Caches are saved to saved_caches_directory as
+specified in this configuration file.
+
+Saved caches greatly improve cold-start speeds, and is relatively cheap in
+terms of I/O for the key cache. Row cache saving is much more expensive and
+has limited use.
+
+Default is 14400 or 4 hours.
+
+*Default Value:* 14400
+
+``key_cache_keys_to_save``
+--------------------------
+*This option is commented out by default.*
+
+Number of keys from the key cache to save
+Disabled by default, meaning all keys are going to be saved
+
+*Default Value:* 100
+
+``row_cache_class_name``
+------------------------
+*This option is commented out by default.*
+
+Row cache implementation class name. Available implementations:
+
+org.apache.cassandra.cache.OHCProvider
+  Fully off-heap row cache implementation (default).
+
+org.apache.cassandra.cache.SerializingCacheProvider
+  This is the row cache implementation availabile
+  in previous releases of Cassandra.
+
+*Default Value:* org.apache.cassandra.cache.OHCProvider
+
+``row_cache_size_in_mb``
+------------------------
+
+Maximum size of the row cache in memory.
+Please note that OHC cache implementation requires some additional off-heap memory to manage
+the map structures and some in-flight memory during operations before/after cache entries can be
+accounted against the cache capacity. This overhead is usually small compared to the whole capacity.
+Do not specify more memory that the system can afford in the worst usual situation and leave some
+headroom for OS block level cache. Do never allow your system to swap.
+
+Default value is 0, to disable row caching.
+
+*Default Value:* 0
+
+``row_cache_save_period``
+-------------------------
+
+Duration in seconds after which Cassandra should save the row cache.
+Caches are saved to saved_caches_directory as specified in this configuration file.
+
+Saved caches greatly improve cold-start speeds, and is relatively cheap in
+terms of I/O for the key cache. Row cache saving is much more expensive and
+has limited use.
+
+Default is 0 to disable saving the row cache.
+
+*Default Value:* 0
+
+``row_cache_keys_to_save``
+--------------------------
+*This option is commented out by default.*
+
+Number of keys from the row cache to save.
+Specify 0 (which is the default), meaning all keys are going to be saved
+
+*Default Value:* 100
+
+``counter_cache_size_in_mb``
+----------------------------
+
+Maximum size of the counter cache in memory.
+
+Counter cache helps to reduce counter locks' contention for hot counter cells.
+In case of RF = 1 a counter cache hit will cause Cassandra to skip the read before
+write entirely. With RF > 1 a counter cache hit will still help to reduce the duration
+of the lock hold, helping with hot counter cell updates, but will not allow skipping
+the read entirely. Only the local (clock, count) tuple of a counter cell is kept
+in memory, not the whole counter, so it's relatively cheap.
+
+NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.
+
+Default value is empty to make it "auto" (min(2.5% of Heap (in MB), 50MB)). Set to 0 to disable counter cache.
+NOTE: if you perform counter deletes and rely on low gcgs, you should disable the counter cache.
+
+``counter_cache_save_period``
+-----------------------------
+
+Duration in seconds after which Cassandra should
+save the counter cache (keys only). Caches are saved to saved_caches_directory as
+specified in this configuration file.
+
+Default is 7200 or 2 hours.
+
+*Default Value:* 7200
+
+``counter_cache_keys_to_save``
+------------------------------
+*This option is commented out by default.*
+
+Number of keys from the counter cache to save
+Disabled by default, meaning all keys are going to be saved
+
+*Default Value:* 100
+
+``saved_caches_directory``
+--------------------------
+*This option is commented out by default.*
+
+saved caches
+If not set, the default directory is $CASSANDRA_HOME/data/saved_caches.
+
+*Default Value:*  /var/lib/cassandra/saved_caches
+
+``commitlog_sync_batch_window_in_ms``
+-------------------------------------
+*This option is commented out by default.*
+
+commitlog_sync may be either "periodic", "group", or "batch." 
+
+When in batch mode, Cassandra won't ack writes until the commit log
+has been flushed to disk.  Each incoming write will trigger the flush task.
+commitlog_sync_batch_window_in_ms is a deprecated value. Previously it had
+almost no value, and is being removed.
+
+
+*Default Value:* 2
+
+``commitlog_sync_group_window_in_ms``
+-------------------------------------
+*This option is commented out by default.*
+
+group mode is similar to batch mode, where Cassandra will not ack writes
+until the commit log has been flushed to disk. The difference is group
+mode will wait up to commitlog_sync_group_window_in_ms between flushes.
+
+
+*Default Value:* 1000
+
+``commitlog_sync``
+------------------
+
+the default option is "periodic" where writes may be acked immediately
+and the CommitLog is simply synced every commitlog_sync_period_in_ms
+milliseconds.
+
+*Default Value:* periodic
+
+``commitlog_sync_period_in_ms``
+-------------------------------
+
+*Default Value:* 10000
+
+``periodic_commitlog_sync_lag_block_in_ms``
+-------------------------------------------
+*This option is commented out by default.*
+
+When in periodic commitlog mode, the number of milliseconds to block writes
+while waiting for a slow disk flush to complete.
+
+``commitlog_segment_size_in_mb``
+--------------------------------
+
+The size of the individual commitlog file segments.  A commitlog
+segment may be archived, deleted, or recycled once all the data
+in it (potentially from each columnfamily in the system) has been
+flushed to sstables.
+
+The default size is 32, which is almost always fine, but if you are
+archiving commitlog segments (see commitlog_archiving.properties),
+then you probably want a finer granularity of archiving; 8 or 16 MB
+is reasonable.
+Max mutation size is also configurable via max_mutation_size_in_kb setting in
+cassandra.yaml. The default is half the size commitlog_segment_size_in_mb * 1024.
+This should be positive and less than 2048.
+
+NOTE: If max_mutation_size_in_kb is set explicitly then commitlog_segment_size_in_mb must
+be set to at least twice the size of max_mutation_size_in_kb / 1024
+
+
+*Default Value:* 32
+
+``commitlog_compression``
+-------------------------
+*This option is commented out by default.*
+
+Compression to apply to the commit log. If omitted, the commit log
+will be written uncompressed.  LZ4, Snappy, and Deflate compressors
+are supported.
+
+*Default Value (complex option)*::
+
+    #   - class_name: LZ4Compressor
+    #     parameters:
+    #         -
+
+``table``
+---------
+*This option is commented out by default.*
+Compression to apply to SSTables as they flush for compressed tables.
+Note that tables without compression enabled do not respect this flag.
+
+As high ratio compressors like LZ4HC, Zstd, and Deflate can potentially
+block flushes for too long, the default is to flush with a known fast
+compressor in those cases. Options are:
+
+none : Flush without compressing blocks but while still doing checksums.
+fast : Flush with a fast compressor. If the table is already using a
+       fast compressor that compressor is used.
+
+*Default Value:* Always flush with the same compressor that the table uses. This
+
+``flush_compression``
+---------------------
+*This option is commented out by default.*
+       was the pre 4.0 behavior.
+
+
+*Default Value:* fast
+
+``seed_provider``
+-----------------
+
+any class that implements the SeedProvider interface and has a
+constructor that takes a Map<String, String> of parameters will do.
+
+*Default Value (complex option)*::
+
+        # Addresses of hosts that are deemed contact points. 
+        # Cassandra nodes use this list of hosts to find each other and learn
+        # the topology of the ring.  You must change this if you are running
+        # multiple nodes!
+        - class_name: org.apache.cassandra.locator.SimpleSeedProvider
+          parameters:
+              # seeds is actually a comma-delimited list of addresses.
+              # Ex: "<ip1>,<ip2>,<ip3>"
+              - seeds: "127.0.0.1:7000"
+
+``concurrent_reads``
+--------------------
+For workloads with more data than can fit in memory, Cassandra's
+bottleneck will be reads that need to fetch data from
+disk. "concurrent_reads" should be set to (16 * number_of_drives) in
+order to allow the operations to enqueue low enough in the stack
+that the OS and drives can reorder them. Same applies to
+"concurrent_counter_writes", since counter writes read the current
+values before incrementing and writing them back.
+
+On the other hand, since writes are almost never IO bound, the ideal
+number of "concurrent_writes" is dependent on the number of cores in
+your system; (8 * number_of_cores) is a good rule of thumb.
+
+*Default Value:* 32
+
+``concurrent_writes``
+---------------------
+
+*Default Value:* 32
+
+``concurrent_counter_writes``
+-----------------------------
+
+*Default Value:* 32
+
+``concurrent_materialized_view_writes``
+---------------------------------------
+
+For materialized view writes, as there is a read involved, so this should
+be limited by the less of concurrent reads or concurrent writes.
+
+*Default Value:* 32
+
+``file_cache_size_in_mb``
+-------------------------
+*This option is commented out by default.*
+
+Maximum memory to use for sstable chunk cache and buffer pooling.
+32MB of this are reserved for pooling buffers, the rest is used as an
+cache that holds uncompressed sstable chunks.
+Defaults to the smaller of 1/4 of heap or 512MB. This pool is allocated off-heap,
+so is in addition to the memory allocated for heap. The cache also has on-heap
+overhead which is roughly 128 bytes per chunk (i.e. 0.2% of the reserved size
+if the default 64k chunk size is used).
+Memory is only allocated when needed.
+
+*Default Value:* 512
+
+``buffer_pool_use_heap_if_exhausted``
+-------------------------------------
+*This option is commented out by default.*
+
+Flag indicating whether to allocate on or off heap when the sstable buffer
+pool is exhausted, that is when it has exceeded the maximum memory
+file_cache_size_in_mb, beyond which it will not cache buffers but allocate on request.
+
+
+*Default Value:* true
+
+``disk_optimization_strategy``
+------------------------------
+*This option is commented out by default.*
+
+The strategy for optimizing disk read
+Possible values are:
+ssd (for solid state disks, the default)
+spinning (for spinning disks)
+
+*Default Value:* ssd
+
+``memtable_heap_space_in_mb``
+-----------------------------
+*This option is commented out by default.*
+
+Total permitted memory to use for memtables. Cassandra will stop
+accepting writes when the limit is exceeded until a flush completes,
+and will trigger a flush based on memtable_cleanup_threshold
+If omitted, Cassandra will set both to 1/4 the size of the heap.
+
+*Default Value:* 2048
+
+``memtable_offheap_space_in_mb``
+--------------------------------
+*This option is commented out by default.*
+
+*Default Value:* 2048
+
+``memtable_cleanup_threshold``
+------------------------------
+*This option is commented out by default.*
+
+memtable_cleanup_threshold is deprecated. The default calculation
+is the only reasonable choice. See the comments on  memtable_flush_writers
+for more information.
+
+Ratio of occupied non-flushing memtable size to total permitted size
+that will trigger a flush of the largest memtable. Larger mct will
+mean larger flushes and hence less compaction, but also less concurrent
+flush activity which can make it difficult to keep your disks fed
+under heavy write load.
+
+memtable_cleanup_threshold defaults to 1 / (memtable_flush_writers + 1)
+
+*Default Value:* 0.11
+
+``memtable_allocation_type``
+----------------------------
+
+Specify the way Cassandra allocates and manages memtable memory.
+Options are:
+
+heap_buffers
+  on heap nio buffers
+
+offheap_buffers
+  off heap (direct) nio buffers
+
+offheap_objects
+   off heap objects
+
+*Default Value:* heap_buffers
+
+``repair_session_space_in_mb``
+------------------------------
+*This option is commented out by default.*
+
+Limit memory usage for Merkle tree calculations during repairs. The default
+is 1/16th of the available heap. The main tradeoff is that smaller trees
+have less resolution, which can lead to over-streaming data. If you see heap
+pressure during repairs, consider lowering this, but you cannot go below
+one megabyte. If you see lots of over-streaming, consider raising
+this or using subrange repair.
+
+For more details see https://issues.apache.org/jira/browse/CASSANDRA-14096.
+
+
+``commitlog_total_space_in_mb``
+-------------------------------
+*This option is commented out by default.*
+
+Total space to use for commit logs on disk.
+
+If space gets above this value, Cassandra will flush every dirty CF
+in the oldest segment and remove it.  So a small total commitlog space
+will tend to cause more flush activity on less-active columnfamilies.
+
+The default value is the smaller of 8192, and 1/4 of the total space
+of the commitlog volume.
+
+
+*Default Value:* 8192
+
+``memtable_flush_writers``
+--------------------------
+*This option is commented out by default.*
+
+This sets the number of memtable flush writer threads per disk
+as well as the total number of memtables that can be flushed concurrently.
+These are generally a combination of compute and IO bound.
+
+Memtable flushing is more CPU efficient than memtable ingest and a single thread
+can keep up with the ingest rate of a whole server on a single fast disk
+until it temporarily becomes IO bound under contention typically with compaction.
+At that point you need multiple flush threads. At some point in the future
+it may become CPU bound all the time.
+
+You can tell if flushing is falling behind using the MemtablePool.BlockedOnAllocation
+metric which should be 0, but will be non-zero if threads are blocked waiting on flushing
+to free memory.
+
+memtable_flush_writers defaults to two for a single data directory.
+This means that two  memtables can be flushed concurrently to the single data directory.
+If you have multiple data directories the default is one memtable flushing at a time
+but the flush will use a thread per data directory so you will get two or more writers.
+
+Two is generally enough to flush on a fast disk [array] mounted as a single data directory.
+Adding more flush writers will result in smaller more frequent flushes that introduce more
+compaction overhead.
+
+There is a direct tradeoff between number of memtables that can be flushed concurrently
+and flush size and frequency. More is not better you just need enough flush writers
+to never stall waiting for flushing to free memory.
+
+
+*Default Value:* 2
+
+``cdc_total_space_in_mb``
+-------------------------
+*This option is commented out by default.*
+
+Total space to use for change-data-capture logs on disk.
+
+If space gets above this value, Cassandra will throw WriteTimeoutException
+on Mutations including tables with CDC enabled. A CDCCompactor is responsible
+for parsing the raw CDC logs and deleting them when parsing is completed.
+
+The default value is the min of 4096 mb and 1/8th of the total space
+of the drive where cdc_raw_directory resides.
+
+*Default Value:* 4096
+
+``cdc_free_space_check_interval_ms``
+------------------------------------
+*This option is commented out by default.*
+
+When we hit our cdc_raw limit and the CDCCompactor is either running behind
+or experiencing backpressure, we check at the following interval to see if any
+new space for cdc-tracked tables has been made available. Default to 250ms
+
+*Default Value:* 250
+
+``index_summary_capacity_in_mb``
+--------------------------------
+
+A fixed memory pool size in MB for for SSTable index summaries. If left
+empty, this will default to 5% of the heap size. If the memory usage of
+all index summaries exceeds this limit, SSTables with low read rates will
+shrink their index summaries in order to meet this limit.  However, this
+is a best-effort process. In extreme conditions Cassandra may need to use
+more than this amount of memory.
+
+``index_summary_resize_interval_in_minutes``
+--------------------------------------------
+
+How frequently index summaries should be resampled.  This is done
+periodically to redistribute memory from the fixed-size pool to sstables
+proportional their recent read rates.  Setting to -1 will disable this
+process, leaving existing index summaries at their current sampling level.
+
+*Default Value:* 60
+
+``trickle_fsync``
+-----------------
+
+Whether to, when doing sequential writing, fsync() at intervals in
+order to force the operating system to flush the dirty
+buffers. Enable this to avoid sudden dirty buffer flushing from
+impacting read latencies. Almost always a good idea on SSDs; not
+necessarily on platters.
+
+*Default Value:* false
+
+``trickle_fsync_interval_in_kb``
+--------------------------------
+
+*Default Value:* 10240
+
+``storage_port``
+----------------
+
+TCP port, for commands and data
+For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+
+*Default Value:* 7000
+
+``ssl_storage_port``
+--------------------
+
+SSL port, for legacy encrypted communication. This property is unused unless enabled in
+server_encryption_options (see below). As of cassandra 4.0, this property is deprecated
+as a single port can be used for either/both secure and insecure connections.
+For security reasons, you should not expose this port to the internet. Firewall it if needed.
+
+*Default Value:* 7001
+
+``listen_address``
+------------------
+
+Address or interface to bind to and tell other Cassandra nodes to connect to.
+You _must_ change this if you want multiple nodes to be able to communicate!
+
+Set listen_address OR listen_interface, not both.
+
+Leaving it blank leaves it up to InetAddress.getLocalHost(). This
+will always do the Right Thing _if_ the node is properly configured
+(hostname, name resolution, etc), and the Right Thing is to use the
+address associated with the hostname (it might not be).
+
+Setting listen_address to 0.0.0.0 is always wrong.
+
+
+*Default Value:* localhost
+
+``listen_interface``
+--------------------
+*This option is commented out by default.*
+
+Set listen_address OR listen_interface, not both. Interfaces must correspond
+to a single address, IP aliasing is not supported.
+
+*Default Value:* eth0
+
+``listen_interface_prefer_ipv6``
+--------------------------------
+*This option is commented out by default.*
+
+If you choose to specify the interface by name and the interface has an ipv4 and an ipv6 address
+you can specify which should be chosen using listen_interface_prefer_ipv6. If false the first ipv4
+address will be used. If true the first ipv6 address will be used. Defaults to false preferring
+ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.
+
+*Default Value:* false
+
+``broadcast_address``
+---------------------
+*This option is commented out by default.*
+
+Address to broadcast to other Cassandra nodes
+Leaving this blank will set it to the same value as listen_address
+
+*Default Value:* 1.2.3.4
+
+``listen_on_broadcast_address``
+-------------------------------
+*This option is commented out by default.*
+
+When using multiple physical network interfaces, set this
+to true to listen on broadcast_address in addition to
+the listen_address, allowing nodes to communicate in both
+interfaces.
+Ignore this property if the network configuration automatically
+routes  between the public and private networks such as EC2.
+
+*Default Value:* false
+
+``internode_authenticator``
+---------------------------
+*This option is commented out by default.*
+
+Internode authentication backend, implementing IInternodeAuthenticator;
+used to allow/disallow connections from peer nodes.
+
+*Default Value:* org.apache.cassandra.auth.AllowAllInternodeAuthenticator
+
+``start_native_transport``
+--------------------------
+
+Whether to start the native transport server.
+The address on which the native transport is bound is defined by rpc_address.
+
+*Default Value:* true
+
+``native_transport_port``
+-------------------------
+port for the CQL native transport to listen for clients on
+For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+
+*Default Value:* 9042
+
+``native_transport_port_ssl``
+-----------------------------
+*This option is commented out by default.*
+Enabling native transport encryption in client_encryption_options allows you to either use
+encryption for the standard port or to use a dedicated, additional port along with the unencrypted
+standard native_transport_port.
+Enabling client encryption and keeping native_transport_port_ssl disabled will use encryption
+for native_transport_port. Setting native_transport_port_ssl to a different value
+from native_transport_port will use encryption for native_transport_port_ssl while
+keeping native_transport_port unencrypted.
+
+*Default Value:* 9142
+
+``native_transport_max_threads``
+--------------------------------
+*This option is commented out by default.*
+The maximum threads for handling requests (note that idle threads are stopped
+after 30 seconds so there is not corresponding minimum setting).
+
+*Default Value:* 128
+
+``native_transport_max_frame_size_in_mb``
+-----------------------------------------
+*This option is commented out by default.*
+
+The maximum size of allowed frame. Frame (requests) larger than this will
+be rejected as invalid. The default is 256MB. If you're changing this parameter,
+you may want to adjust max_value_size_in_mb accordingly. This should be positive and less than 2048.
+
+*Default Value:* 256
+
+``native_transport_frame_block_size_in_kb``
+-------------------------------------------
+*This option is commented out by default.*
+
+If checksumming is enabled as a protocol option, denotes the size of the chunks into which frame
+are bodies will be broken and checksummed.
+
+*Default Value:* 32
+
+``native_transport_max_concurrent_connections``
+-----------------------------------------------
+*This option is commented out by default.*
+
+The maximum number of concurrent client connections.
+The default is -1, which means unlimited.
+
+*Default Value:* -1
+
+``native_transport_max_concurrent_connections_per_ip``
+------------------------------------------------------
+*This option is commented out by default.*
+
+The maximum number of concurrent client connections per source ip.
+The default is -1, which means unlimited.
+
+*Default Value:* -1
+
+``native_transport_allow_older_protocols``
+------------------------------------------
+
+Controls whether Cassandra honors older, yet currently supported, protocol versions.
+The default is true, which means all supported protocols will be honored.
+
+*Default Value:* true
+
+``native_transport_idle_timeout_in_ms``
+---------------------------------------
+*This option is commented out by default.*
+
+Controls when idle client connections are closed. Idle connections are ones that had neither reads
+nor writes for a time period.
+
+Clients may implement heartbeats by sending OPTIONS native protocol message after a timeout, which
+will reset idle timeout timer on the server side. To close idle client connections, corresponding
+values for heartbeat intervals have to be set on the client side.
+
+Idle connection timeouts are disabled by default.
+
+*Default Value:* 60000
+
+``rpc_address``
+---------------
+
+The address or interface to bind the native transport server to.
+
+Set rpc_address OR rpc_interface, not both.
+
+Leaving rpc_address blank has the same effect as on listen_address
+(i.e. it will be based on the configured hostname of the node).
+
+Note that unlike listen_address, you can specify 0.0.0.0, but you must also
+set broadcast_rpc_address to a value other than 0.0.0.0.
+
+For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+
+*Default Value:* localhost
+
+``rpc_interface``
+-----------------
+*This option is commented out by default.*
+
+Set rpc_address OR rpc_interface, not both. Interfaces must correspond
+to a single address, IP aliasing is not supported.
+
+*Default Value:* eth1
+
+``rpc_interface_prefer_ipv6``
+-----------------------------
+*This option is commented out by default.*
+
+If you choose to specify the interface by name and the interface has an ipv4 and an ipv6 address
+you can specify which should be chosen using rpc_interface_prefer_ipv6. If false the first ipv4
+address will be used. If true the first ipv6 address will be used. Defaults to false preferring
+ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.
+
+*Default Value:* false
+
+``broadcast_rpc_address``
+-------------------------
+*This option is commented out by default.*
+
+RPC address to broadcast to drivers and other Cassandra nodes. This cannot
+be set to 0.0.0.0. If left blank, this will be set to the value of
+rpc_address. If rpc_address is set to 0.0.0.0, broadcast_rpc_address must
+be set.
+
+*Default Value:* 1.2.3.4
+
+``rpc_keepalive``
+-----------------
+
+enable or disable keepalive on rpc/native connections
+
+*Default Value:* true
+
+``internode_send_buff_size_in_bytes``
+-------------------------------------
+*This option is commented out by default.*
+
+Uncomment to set socket buffer size for internode communication
+Note that when setting this, the buffer size is limited by net.core.wmem_max
+and when not setting it it is defined by net.ipv4.tcp_wmem
+See also:
+/proc/sys/net/core/wmem_max
+/proc/sys/net/core/rmem_max
+/proc/sys/net/ipv4/tcp_wmem
+/proc/sys/net/ipv4/tcp_wmem
+and 'man tcp'
+
+``internode_recv_buff_size_in_bytes``
+-------------------------------------
+*This option is commented out by default.*
+
+Uncomment to set socket buffer size for internode communication
+Note that when setting this, the buffer size is limited by net.core.wmem_max
+and when not setting it it is defined by net.ipv4.tcp_wmem
+
+``incremental_backups``
+-----------------------
+
+Set to true to have Cassandra create a hard link to each sstable
+flushed or streamed locally in a backups/ subdirectory of the
+keyspace data.  Removing these links is the operator's
+responsibility.
+
+*Default Value:* false
+
+``snapshot_before_compaction``
+------------------------------
+
+Whether or not to take a snapshot before each compaction.  Be
+careful using this option, since Cassandra won't clean up the
+snapshots for you.  Mostly useful if you're paranoid when there
+is a data format change.
+
+*Default Value:* false
+
+``auto_snapshot``
+-----------------
+
+Whether or not a snapshot is taken of the data before keyspace truncation
+or dropping of column families. The STRONGLY advised default of true 
+should be used to provide data safety. If you set this flag to false, you will
+lose data on truncation or drop.
+
+*Default Value:* true
+
+``column_index_size_in_kb``
+---------------------------
+
+Granularity of the collation index of rows within a partition.
+Increase if your rows are large, or if you have a very large
+number of rows per partition.  The competing goals are these:
+
+- a smaller granularity means more index entries are generated
+  and looking up rows withing the partition by collation column
+  is faster
+- but, Cassandra will keep the collation index in memory for hot
+  rows (as part of the key cache), so a larger granularity means
+  you can cache more hot rows
+
+*Default Value:* 64
+
+``column_index_cache_size_in_kb``
+---------------------------------
+
+Per sstable indexed key cache entries (the collation index in memory
+mentioned above) exceeding this size will not be held on heap.
+This means that only partition information is held on heap and the
+index entries are read from disk.
+
+Note that this size refers to the size of the
+serialized index information and not the size of the partition.
+
+*Default Value:* 2
+
+``concurrent_compactors``
+-------------------------
+*This option is commented out by default.*
+
+Number of simultaneous compactions to allow, NOT including
+validation "compactions" for anti-entropy repair.  Simultaneous
+compactions can help preserve read performance in a mixed read/write
+workload, by mitigating the tendency of small sstables to accumulate
+during a single long running compactions. The default is usually
+fine and if you experience problems with compaction running too
+slowly or too fast, you should look at
+compaction_throughput_mb_per_sec first.
+
+concurrent_compactors defaults to the smaller of (number of disks,
+number of cores), with a minimum of 2 and a maximum of 8.
+
+If your data directories are backed by SSD, you should increase this
+to the number of cores.
+
+*Default Value:* 1
+
+``concurrent_validations``
+--------------------------
+*This option is commented out by default.*
+
+Number of simultaneous repair validations to allow. Default is unbounded
+Values less than one are interpreted as unbounded (the default)
+
+*Default Value:* 0
+
+``concurrent_materialized_view_builders``
+-----------------------------------------
+
+Number of simultaneous materialized view builder tasks to allow.
+
+*Default Value:* 1
+
+``compaction_throughput_mb_per_sec``
+------------------------------------
+
+Throttles compaction to the given total throughput across the entire
+system. The faster you insert data, the faster you need to compact in
+order to keep the sstable count down, but in general, setting this to
+16 to 32 times the rate you are inserting data is more than sufficient.
+Setting this to 0 disables throttling. Note that this account for all types
+of compaction, including validation compaction.
+
+*Default Value:* 16
+
+``sstable_preemptive_open_interval_in_mb``
+------------------------------------------
+
+When compacting, the replacement sstable(s) can be opened before they
+are completely written, and used in place of the prior sstables for
+any range that has been written. This helps to smoothly transfer reads 
+between the sstables, reducing page cache churn and keeping hot rows hot
+
+*Default Value:* 50
+
+``stream_entire_sstables``
+--------------------------
+*This option is commented out by default.*
+
+When enabled, permits Cassandra to zero-copy stream entire eligible
+SSTables between nodes, including every component.
+This speeds up the network transfer significantly subject to
+throttling specified by stream_throughput_outbound_megabits_per_sec.
+Enabling this will reduce the GC pressure on sending and receiving node.
+When unset, the default is enabled. While this feature tries to keep the
+disks balanced, it cannot guarantee it. This feature will be automatically
+disabled if internode encryption is enabled. Currently this can be used with
+Leveled Compaction. Once CASSANDRA-14586 is fixed other compaction strategies
+will benefit as well when used in combination with CASSANDRA-6696.
+
+*Default Value:* true
+
+``stream_throughput_outbound_megabits_per_sec``
+-----------------------------------------------
+*This option is commented out by default.*
+
+Throttles all outbound streaming file transfers on this node to the
+given total throughput in Mbps. This is necessary because Cassandra does
+mostly sequential IO when streaming data during bootstrap or repair, which
+can lead to saturating the network connection and degrading rpc performance.
+When unset, the default is 200 Mbps or 25 MB/s.
+
+*Default Value:* 200
+
+``inter_dc_stream_throughput_outbound_megabits_per_sec``
+--------------------------------------------------------
+*This option is commented out by default.*
+
+Throttles all streaming file transfer between the datacenters,
+this setting allows users to throttle inter dc stream throughput in addition
+to throttling all network stream traffic as configured with
+stream_throughput_outbound_megabits_per_sec
+When unset, the default is 200 Mbps or 25 MB/s
+
+*Default Value:* 200
+
+``read_request_timeout_in_ms``
+------------------------------
+
+How long the coordinator should wait for read operations to complete.
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 5000
+
+``range_request_timeout_in_ms``
+-------------------------------
+How long the coordinator should wait for seq or index scans to complete.
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 10000
+
+``write_request_timeout_in_ms``
+-------------------------------
+How long the coordinator should wait for writes to complete.
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 2000
+
+``counter_write_request_timeout_in_ms``
+---------------------------------------
+How long the coordinator should wait for counter writes to complete.
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 5000
+
+``cas_contention_timeout_in_ms``
+--------------------------------
+How long a coordinator should continue to retry a CAS operation
+that contends with other proposals for the same row.
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 1000
+
+``truncate_request_timeout_in_ms``
+----------------------------------
+How long the coordinator should wait for truncates to complete
+(This can be much longer, because unless auto_snapshot is disabled
+we need to flush first so we can snapshot before removing the data.)
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 60000
+
+``request_timeout_in_ms``
+-------------------------
+The default timeout for other, miscellaneous operations.
+Lowest acceptable value is 10 ms.
+
+*Default Value:* 10000
+
+``internode_application_send_queue_capacity_in_bytes``
+------------------------------------------------------
+*This option is commented out by default.*
+
+Defensive settings for protecting Cassandra from true network partitions.
+See (CASSANDRA-14358) for details.
+
+
+``internode_tcp_connect_timeout_in_ms``
+---------------------------------------
+The amount of time to wait for internode tcp connections to establish.
+
+*Default Value:* 2000
+
+``internode_tcp_user_timeout_in_ms``
+------------------------------------
+The amount of time unacknowledged data is allowed on a connection before we throw out the connection
+Note this is only supported on Linux + epoll, and it appears to behave oddly above a setting of 30000
+(it takes much longer than 30s) as of Linux 4.12. If you want something that high set this to 0
+which picks up the OS default and configure the net.ipv4.tcp_retries2 sysctl to be ~8.
+
+*Default Value:* 30000
+
+``internode_streaming_tcp_user_timeout_in_ms``
+----------------------------------------------
+The amount of time unacknowledged data is allowed on a streaming connection before we close the connection.
+
+*Default Value:* 300000 (5 minutes)
+
+``internode_application_timeout_in_ms``
+---------------------------------------
+The maximum continuous period a connection may be unwritable in application space.
+
+*Default Value:* 30000
+
+Global, per-endpoint and per-connection limits imposed on messages queued for delivery to other nodes
+and waiting to be processed on arrival from other nodes in the cluster.  These limits are applied to the on-wire
+size of the message being sent or received.
+
+The basic per-link limit is consumed in isolation before any endpoint or global limit is imposed.
+Each node-pair has three links: urgent, small and large.  So any given node may have a maximum of
+N*3*(internode_application_send_queue_capacity_in_bytes+internode_application_receive_queue_capacity_in_bytes)
+messages queued without any coordination between them although in practice, with token-aware routing, only RF*tokens
+nodes should need to communicate with significant bandwidth.
+
+The per-endpoint limit is imposed on all messages exceeding the per-link limit, simultaneously with the global limit,
+on all links to or from a single node in the cluster.
+The global limit is imposed on all messages exceeding the per-link limit, simultaneously with the per-endpoint limit,
+on all links to or from any node in the cluster.
+
+
+*Default Value:* 4194304                       #4MiB
+
+``internode_application_send_queue_reserve_endpoint_capacity_in_bytes``
+-----------------------------------------------------------------------
+*This option is commented out by default.*
+
+*Default Value:* 134217728    #128MiB
+
+``internode_application_send_queue_reserve_global_capacity_in_bytes``
+---------------------------------------------------------------------
+*This option is commented out by default.*
+
+*Default Value:* 536870912      #512MiB
+
+``internode_application_receive_queue_capacity_in_bytes``
+---------------------------------------------------------
+*This option is commented out by default.*
+
+*Default Value:* 4194304                    #4MiB
+
+``internode_application_receive_queue_reserve_endpoint_capacity_in_bytes``
+--------------------------------------------------------------------------
+*This option is commented out by default.*
+
+*Default Value:* 134217728 #128MiB
+
+``internode_application_receive_queue_reserve_global_capacity_in_bytes``
+------------------------------------------------------------------------
+*This option is commented out by default.*
+
+*Default Value:* 536870912   #512MiB
+
+``slow_query_log_timeout_in_ms``
+--------------------------------
+
+
+How long before a node logs slow queries. Select queries that take longer than
+this timeout to execute, will generate an aggregated log message, so that slow queries
+can be identified. Set this value to zero to disable slow query logging.
+
+*Default Value:* 500
+
+``cross_node_timeout``
+----------------------
+*This option is commented out by default.*
+
+Enable operation timeout information exchange between nodes to accurately
+measure request timeouts.  If disabled, replicas will assume that requests
+were forwarded to them instantly by the coordinator, which means that
+under overload conditions we will waste that much extra time processing 
+already-timed-out requests.
+
+Warning: It is generally assumed that users have setup NTP on their clusters, and that clocks are modestly in sync, 
+since this is a requirement for general correctness of last write wins.
+
+*Default Value:* true
+
+``streaming_keep_alive_period_in_secs``
+---------------------------------------
+*This option is commented out by default.*
+
+Set keep-alive period for streaming
+This node will send a keep-alive message periodically with this period.
+If the node does not receive a keep-alive message from the peer for
+2 keep-alive cycles the stream session times out and fail
+Default value is 300s (5 minutes), which means stalled stream
+times out in 10 minutes by default
+
+*Default Value:* 300
+
+``streaming_connections_per_host``
+----------------------------------
+*This option is commented out by default.*
+
+Limit number of connections per host for streaming
+Increase this when you notice that joins are CPU-bound rather that network
+bound (for example a few nodes with big files).
+
+*Default Value:* 1
+
+``phi_convict_threshold``
+-------------------------
+*This option is commented out by default.*
+
+
+phi value that must be reached for a host to be marked down.
+most users should never need to adjust this.
+
+*Default Value:* 8
+
+``endpoint_snitch``
+-------------------
+
+endpoint_snitch -- Set this to a class that implements
+IEndpointSnitch.  The snitch has two functions:
+
+- it teaches Cassandra enough about your network topology to route
+  requests efficiently
+- it allows Cassandra to spread replicas around your cluster to avoid
+  correlated failures. It does this by grouping machines into
+  "datacenters" and "racks."  Cassandra will do its best not to have
+  more than one replica on the same "rack" (which may not actually
+  be a physical location)
+
+CASSANDRA WILL NOT ALLOW YOU TO SWITCH TO AN INCOMPATIBLE SNITCH
+ONCE DATA IS INSERTED INTO THE CLUSTER.  This would cause data loss.
+This means that if you start with the default SimpleSnitch, which
+locates every node on "rack1" in "datacenter1", your only options
+if you need to add another datacenter are GossipingPropertyFileSnitch
+(and the older PFS).  From there, if you want to migrate to an
+incompatible snitch like Ec2Snitch you can do it by adding new nodes
+under Ec2Snitch (which will locate them in a new "datacenter") and
+decommissioning the old ones.
+
+Out of the box, Cassandra provides:
+
+SimpleSnitch:
+   Treats Strategy order as proximity. This can improve cache
+   locality when disabling read repair.  Only appropriate for
+   single-datacenter deployments.
+
+GossipingPropertyFileSnitch
+   This should be your go-to snitch for production use.  The rack
+   and datacenter for the local node are defined in
+   cassandra-rackdc.properties and propagated to other nodes via
+   gossip.  If cassandra-topology.properties exists, it is used as a
+   fallback, allowing migration from the PropertyFileSnitch.
+
+PropertyFileSnitch:
+   Proximity is determined by rack and data center, which are
+   explicitly configured in cassandra-topology.properties.
+
+Ec2Snitch:
+   Appropriate for EC2 deployments in a single Region. Loads Region
+   and Availability Zone information from the EC2 API. The Region is
+   treated as the datacenter, and the Availability Zone as the rack.
+   Only private IPs are used, so this will not work across multiple
+   Regions.
+
+Ec2MultiRegionSnitch:
+   Uses public IPs as broadcast_address to allow cross-region
+   connectivity.  (Thus, you should set seed addresses to the public
+   IP as well.) You will need to open the storage_port or
+   ssl_storage_port on the public IP firewall.  (For intra-Region
+   traffic, Cassandra will switch to the private IP after
+   establishing a connection.)
+
+RackInferringSnitch:
+   Proximity is determined by rack and data center, which are
+   assumed to correspond to the 3rd and 2nd octet of each node's IP
+   address, respectively.  Unless this happens to match your
+   deployment conventions, this is best used as an example of
+   writing a custom Snitch class and is provided in that spirit.
+
+You can use a custom Snitch by setting this to the full class name
+of the snitch, which will be assumed to be on your classpath.
+
+*Default Value:* SimpleSnitch
+
+``dynamic_snitch_update_interval_in_ms``
+----------------------------------------
+
+controls how often to perform the more expensive part of host score
+calculation
+
+*Default Value:* 100 
+
+``dynamic_snitch_reset_interval_in_ms``
+---------------------------------------
+controls how often to reset all host scores, allowing a bad host to
+possibly recover
+
+*Default Value:* 600000
+
+``dynamic_snitch_badness_threshold``
+------------------------------------
+if set greater than zero, this will allow
+'pinning' of replicas to hosts in order to increase cache capacity.
+The badness threshold will control how much worse the pinned host has to be
+before the dynamic snitch will prefer other replicas over it.  This is
+expressed as a double which represents a percentage.  Thus, a value of
+0.2 means Cassandra would continue to prefer the static snitch values
+until the pinned host was 20% worse than the fastest.
+
+*Default Value:* 0.1
+
+``server_encryption_options``
+-----------------------------
+
+Enable or disable inter-node encryption
+JVM and netty defaults for supported SSL socket protocols and cipher suites can
+be replaced using custom encryption options. This is not recommended
+unless you have policies in place that dictate certain settings, or
+need to disable vulnerable ciphers or protocols in case the JVM cannot
+be updated.
+FIPS compliant settings can be configured at JVM level and should not
+involve changing encryption settings here:
+https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/FIPS.html
+
+*NOTE* No custom encryption options are enabled at the moment
+The available internode options are : all, none, dc, rack
+If set to dc cassandra will encrypt the traffic between the DCs
+If set to rack cassandra will encrypt the traffic between the racks
+
+The passwords used in these options must match the passwords used when generating
+the keystore and truststore.  For instructions on generating these files, see:
+http://download.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore
+
+
+*Default Value (complex option)*::
+
+        # set to true for allowing secure incoming connections
+        enabled: false
+        # If enabled and optional are both set to true, encrypted and unencrypted connections are handled on the storage_port
+        optional: false
+        # if enabled, will open up an encrypted listening socket on ssl_storage_port. Should be used
+        # during upgrade to 4.0; otherwise, set to false.
+        enable_legacy_ssl_storage_port: false
+        # on outbound connections, determine which type of peers to securely connect to. 'enabled' must be set to true.
+        internode_encryption: none
+        keystore: conf/.keystore
+        keystore_password: cassandra
+        truststore: conf/.truststore
+        truststore_password: cassandra
+        # More advanced defaults below:
+        # protocol: TLS
+        # store_type: JKS
+        # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
+        # require_client_auth: false
+        # require_endpoint_verification: false
+
+``client_encryption_options``
+-----------------------------
+enable or disable client-to-server encryption.
+
+*Default Value (complex option)*::
+
+        enabled: false
+        # If enabled and optional is set to true encrypted and unencrypted connections are handled.
+        optional: false
+        keystore: conf/.keystore
+        keystore_password: cassandra
+        # require_client_auth: false
+        # Set trustore and truststore_password if require_client_auth is true
+        # truststore: conf/.truststore
+        # truststore_password: cassandra
+        # More advanced defaults below:
+        # protocol: TLS
+        # store_type: JKS
+        # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
+
+``internode_compression``
+-------------------------
+internode_compression controls whether traffic between nodes is
+compressed.
+Can be:
+
+all
+  all traffic is compressed
+
+dc
+  traffic between different datacenters is compressed
+
+none
+  nothing is compressed.
+
+*Default Value:* dc
+
+``inter_dc_tcp_nodelay``
+------------------------
+
+Enable or disable tcp_nodelay for inter-dc communication.
+Disabling it will result in larger (but fewer) network packets being sent,
+reducing overhead from the TCP protocol itself, at the cost of increasing
+latency if you block for cross-datacenter responses.
+
+*Default Value:* false
+
+``tracetype_query_ttl``
+-----------------------
+
+TTL for different trace types used during logging of the repair process.
+
+*Default Value:* 86400
+
+``tracetype_repair_ttl``
+------------------------
+
+*Default Value:* 604800
+
+``enable_user_defined_functions``
+---------------------------------
+
+If unset, all GC Pauses greater than gc_log_threshold_in_ms will log at
+INFO level
+UDFs (user defined functions) are disabled by default.
+As of Cassandra 3.0 there is a sandbox in place that should prevent execution of evil code.
+
+*Default Value:* false
+
+``enable_scripted_user_defined_functions``
+------------------------------------------
+
+Enables scripted UDFs (JavaScript UDFs).
+Java UDFs are always enabled, if enable_user_defined_functions is true.
+Enable this option to be able to use UDFs with "language javascript" or any custom JSR-223 provider.
+This option has no effect, if enable_user_defined_functions is false.
+
+*Default Value:* false
+
+``windows_timer_interval``
+--------------------------
+
+The default Windows kernel timer and scheduling resolution is 15.6ms for power conservation.
+Lowering this value on Windows can provide much tighter latency and better throughput, however
+some virtualized environments may see a negative performance impact from changing this setting
+below their system default. The sysinternals 'clockres' tool can confirm your system's default
+setting.
+
+*Default Value:* 1
+
+``transparent_data_encryption_options``
+---------------------------------------
+
+
+Enables encrypting data at-rest (on disk). Different key providers can be plugged in, but the default reads from
+a JCE-style keystore. A single keystore can hold multiple keys, but the one referenced by
+the "key_alias" is the only key that will be used for encrypt opertaions; previously used keys
+can still (and should!) be in the keystore and will be used on decrypt operations
+(to handle the case of key rotation).
+
+It is strongly recommended to download and install Java Cryptography Extension (JCE)
+Unlimited Strength Jurisdiction Policy Files for your version of the JDK.
+(current link: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)
+
+Currently, only the following file types are supported for transparent data encryption, although
+more are coming in future cassandra releases: commitlog, hints
+
+*Default Value (complex option)*::
+
+        enabled: false
+        chunk_length_kb: 64
+        cipher: AES/CBC/PKCS5Padding
+        key_alias: testing:1
+        # CBC IV length for AES needs to be 16 bytes (which is also the default size)
+        # iv_length: 16
+        key_provider:
+          - class_name: org.apache.cassandra.security.JKSKeyProvider
+            parameters:
+              - keystore: conf/.keystore
+                keystore_password: cassandra
+                store_type: JCEKS
+                key_password: cassandra
+
+``tombstone_warn_threshold``
+----------------------------
+
+####################
+SAFETY THRESHOLDS #
+####################
+
+When executing a scan, within or across a partition, we need to keep the
+tombstones seen in memory so we can return them to the coordinator, which
+will use them to make sure other replicas also know about the deleted rows.
+With workloads that generate a lot of tombstones, this can cause performance
+problems and even exaust the server heap.
+(http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets)
+Adjust the thresholds here if you understand the dangers and want to
+scan more tombstones anyway.  These thresholds may also be adjusted at runtime
+using the StorageService mbean.
+
+*Default Value:* 1000
+
+``tombstone_failure_threshold``
+-------------------------------
+
+*Default Value:* 100000
+
+``batch_size_warn_threshold_in_kb``
+-----------------------------------
+
+Log WARN on any multiple-partition batch size exceeding this value. 5kb per batch by default.
+Caution should be taken on increasing the size of this threshold as it can lead to node instability.
+
+*Default Value:* 5
+
+``batch_size_fail_threshold_in_kb``
+-----------------------------------
+
+Fail any multiple-partition batch exceeding this value. 50kb (10x warn threshold) by default.
+
+*Default Value:* 50
+
+``unlogged_batch_across_partitions_warn_threshold``
+---------------------------------------------------
+
+Log WARN on any batches not of type LOGGED than span across more partitions than this limit
+
+*Default Value:* 10
+
+``compaction_large_partition_warning_threshold_mb``
+---------------------------------------------------
+
+Log a warning when compacting partitions larger than this value
+
+*Default Value:* 100
+
+``gc_log_threshold_in_ms``
+--------------------------
+*This option is commented out by default.*
+
+GC Pauses greater than 200 ms will be logged at INFO level
+This threshold can be adjusted to minimize logging if necessary
+
+*Default Value:* 200
+
+``gc_warn_threshold_in_ms``
+---------------------------
+*This option is commented out by default.*
+
+GC Pauses greater than gc_warn_threshold_in_ms will be logged at WARN level
+Adjust the threshold based on your application throughput requirement. Setting to 0
+will deactivate the feature.
+
+*Default Value:* 1000
+
+``max_value_size_in_mb``
+------------------------
+*This option is commented out by default.*
+
+Maximum size of any value in SSTables. Safety measure to detect SSTable corruption
+early. Any value size larger than this threshold will result into marking an SSTable
+as corrupted. This should be positive and less than 2048.
+
+*Default Value:* 256
+
+``back_pressure_enabled``
+-------------------------
+
+Back-pressure settings #
+If enabled, the coordinator will apply the back-pressure strategy specified below to each mutation
+sent to replicas, with the aim of reducing pressure on overloaded replicas.
+
+*Default Value:* false
+
+``back_pressure_strategy``
+--------------------------
+The back-pressure strategy applied.
+The default implementation, RateBasedBackPressure, takes three arguments:
+high ratio, factor, and flow type, and uses the ratio between incoming mutation responses and outgoing mutation requests.
+If below high ratio, outgoing mutations are rate limited according to the incoming rate decreased by the given factor;
+if above high ratio, the rate limiting is increased by the given factor;
+such factor is usually best configured between 1 and 10, use larger values for a faster recovery
+at the expense of potentially more dropped mutations;
+the rate limiting is applied according to the flow type: if FAST, it's rate limited at the speed of the fastest replica,
+if SLOW at the speed of the slowest one.
+New strategies can be added. Implementors need to implement org.apache.cassandra.net.BackpressureStrategy and
+provide a public constructor accepting a Map<String, Object>.
+
+``otc_coalescing_strategy``
+---------------------------
+*This option is commented out by default.*
+
+Coalescing Strategies #
+Coalescing multiples messages turns out to significantly boost message processing throughput (think doubling or more).
+On bare metal, the floor for packet processing throughput is high enough that many applications won't notice, but in
+virtualized environments, the point at which an application can be bound by network packet processing can be
+surprisingly low compared to the throughput of task processing that is possible inside a VM. It's not that bare metal
+doesn't benefit from coalescing messages, it's that the number of packets a bare metal network interface can process
+is sufficient for many applications such that no load starvation is experienced even without coalescing.
+There are other benefits to coalescing network messages that are harder to isolate with a simple metric like messages
+per second. By coalescing multiple tasks together, a network thread can process multiple messages for the cost of one
+trip to read from a socket, and all the task submission work can be done at the same time reducing context switching
+and increasing cache friendliness of network message processing.
+See CASSANDRA-8692 for details.
+
+Strategy to use for coalescing messages in OutboundTcpConnection.
+Can be fixed, movingaverage, timehorizon, disabled (default).
+You can also specify a subclass of CoalescingStrategies.CoalescingStrategy by name.
+
+*Default Value:* DISABLED
+
+``otc_coalescing_window_us``
+----------------------------
+*This option is commented out by default.*
+
+How many microseconds to wait for coalescing. For fixed strategy this is the amount of time after the first
+message is received before it will be sent with any accompanying messages. For moving average this is the
+maximum amount of time that will be waited as well as the interval at which messages must arrive on average
+for coalescing to be enabled.
+
+*Default Value:* 200
+
+``otc_coalescing_enough_coalesced_messages``
+--------------------------------------------
+*This option is commented out by default.*
+
+Do not try to coalesce messages if we already got that many messages. This should be more than 2 and less than 128.
+
+*Default Value:* 8
+
+``otc_backlog_expiration_interval_ms``
+--------------------------------------
+*This option is commented out by default.*
+
+How many milliseconds to wait between two expiration runs on the backlog (queue) of the OutboundTcpConnection.
+Expiration is done if messages are piling up in the backlog. Droppable messages are expired to free the memory
+taken by expired messages. The interval should be between 0 and 1000, and in most installations the default value
+will be appropriate. A smaller value could potentially expire messages slightly sooner at the expense of more CPU
+time and queue contention while iterating the backlog of messages.
+An interval of 0 disables any wait time, which is the behavior of former Cassandra versions.
+
+
+*Default Value:* 200
+
+``ideal_consistency_level``
+---------------------------
+*This option is commented out by default.*
+
+Track a metric per keyspace indicating whether replication achieved the ideal consistency
+level for writes without timing out. This is different from the consistency level requested by
+each write which may be lower in order to facilitate availability.
+
+*Default Value:* EACH_QUORUM
+
+``automatic_sstable_upgrade``
+-----------------------------
+*This option is commented out by default.*
+
+Automatically upgrade sstables after upgrade - if there is no ordinary compaction to do, the
+oldest non-upgraded sstable will get upgraded to the latest version
+
+*Default Value:* false
+
+``max_concurrent_automatic_sstable_upgrades``
+---------------------------------------------
+*This option is commented out by default.*
+Limit the number of concurrent sstable upgrades
+
+*Default Value:* 1
+
+``audit_logging_options``
+-------------------------
+
+Audit logging - Logs every incoming CQL command request, authentication to a node. See the docs
+on audit_logging for full details about the various configuration options.
+
+``full_query_logging_options``
+------------------------------
+*This option is commented out by default.*
+
+
+default options for full query logging - these can be overridden from command line when executing
+nodetool enablefullquerylog
+
+``corrupted_tombstone_strategy``
+--------------------------------
+*This option is commented out by default.*
+
+validate tombstones on reads and compaction
+can be either "disabled", "warn" or "exception"
+
+*Default Value:* disabled
+
+``diagnostic_events_enabled``
+-----------------------------
+
+Diagnostic Events #
+If enabled, diagnostic events can be helpful for troubleshooting operational issues. Emitted events contain details
+on internal state and temporal relationships across events, accessible by clients via JMX.
+
+*Default Value:* false
+
+``native_transport_flush_in_batches_legacy``
+--------------------------------------------
+*This option is commented out by default.*
+
+Use native transport TCP message coalescing. If on upgrade to 4.0 you found your throughput decreasing, and in
+particular you run an old kernel or have very fewer client connections, this option might be worth evaluating.
+
+*Default Value:* false
+
+``repaired_data_tracking_for_range_reads_enabled``
+--------------------------------------------------
+
+Enable tracking of repaired state of data during reads and comparison between replicas
+Mismatches between the repaired sets of replicas can be characterized as either confirmed
+or unconfirmed. In this context, unconfirmed indicates that the presence of pending repair
+sessions, unrepaired partition tombstones, or some other condition means that the disparity
+cannot be considered conclusive. Confirmed mismatches should be a trigger for investigation
+as they may be indicative of corruption or data loss.
+There are separate flags for range vs partition reads as single partition reads are only tracked
+when CL > 1 and a digest mismatch occurs. Currently, range queries don't use digests so if
+enabled for range reads, all range reads will include repaired data tracking. As this adds
+some overhead, operators may wish to disable it whilst still enabling it for partition reads
+
+*Default Value:* false
+
+``repaired_data_tracking_for_partition_reads_enabled``
+------------------------------------------------------
+
+*Default Value:* false
+
+``report_unconfirmed_repaired_data_mismatches``
+-----------------------------------------------
+If false, only confirmed mismatches will be reported. If true, a separate metric for unconfirmed
+mismatches will also be recorded. This is to avoid potential signal:noise issues are unconfirmed
+mismatches are less actionable than confirmed ones.
+
+*Default Value:* false
+
+``enable_materialized_views``
+-----------------------------
+
+########################
+EXPERIMENTAL FEATURES #
+########################
+
+Enables materialized view creation on this node.
+Materialized views are considered experimental and are not recommended for production use.
+
+*Default Value:* false
+
+``enable_sasi_indexes``
+-----------------------
+
+Enables SASI index creation on this node.
+SASI indexes are considered experimental and are not recommended for production use.
+
+*Default Value:* false
+
+``enable_transient_replication``
+--------------------------------
+
+Enables creation of transiently replicated keyspaces on this node.
+Transient replication is experimental and is not recommended for production use.
+
+*Default Value:* false
+
+``enable_drop_compact_storage``
+--------------------------------
+
+Enables the used of 'ALTER ... DROP COMPACT STORAGE' statements on this node.
+'ALTER ... DROP COMPACT STORAGE' is considered experimental and is not recommended for production use.
+
+*Default Value:* false
diff --git a/src/doc/3.11.11/_sources/configuration/cassandra_config_file.rst.txt b/src/doc/3.11.11/_sources/configuration/cassandra_config_file.rst.txt
index e09f6d3..d48e51f 100644
--- a/src/doc/3.11.11/_sources/configuration/cassandra_config_file.rst.txt
+++ b/src/doc/3.11.11/_sources/configuration/cassandra_config_file.rst.txt
@@ -1919,3 +1919,11 @@
 SASI indexes are considered experimental and are not recommended for production use.
 
 *Default Value:* true
+
+``enable_drop_compact_storage``
+-------------------------------
+
+Enables the used of 'ALTER ... DROP COMPACT STORAGE' statements on this node.
+'ALTER ... DROP COMPACT STORAGE' is considered experimental and is not recommended for production use.
+
+*Default Value:* false
diff --git a/src/doc/3.11.11/_sources/cql/operators.rst.txt b/src/doc/3.11.11/_sources/cql/operators.rst.txt
new file mode 100644
index 0000000..1faf0d0
--- /dev/null
+++ b/src/doc/3.11.11/_sources/cql/operators.rst.txt
@@ -0,0 +1,74 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. highlight:: cql
+
+.. _arithmetic_operators:
+
+Arithmetic Operators
+--------------------
+
+CQL supports the following operators:
+
+=============== =======================================================================================================
+ Operator        Description
+=============== =======================================================================================================
+ \- (unary)      Negates operand
+ \+              Addition
+ \-              Substraction
+ \*              Multiplication
+ /               Division
+ %               Returns the remainder of a division
+=============== =======================================================================================================
+
+.. _number-arithmetic:
+
+Number Arithmetic
+^^^^^^^^^^^^^^^^^
+
+All arithmetic operations are supported on numeric types or counters.
+
+The return type of the operation will be based on the operand types:
+
+============= =========== ========== ========== ========== ========== ========== ========== ========== ==========
+ left/right   tinyint      smallint   int        bigint     counter    float      double     varint     decimal
+============= =========== ========== ========== ========== ========== ========== ========== ========== ==========
+ **tinyint**   tinyint     smallint   int        bigint     bigint     float      double     varint     decimal
+ **smallint**  smallint    smallint   int        bigint     bigint     float      double     varint     decimal
+ **int**       int         int        int        bigint     bigint     float      double     varint     decimal
+ **bigint**    bigint      bigint     bigint     bigint     bigint     double     double     varint     decimal
+ **counter**   bigint      bigint     bigint     bigint     bigint     double     double     varint     decimal
+ **float**     float       float      float      double     double     float      double     decimal    decimal
+ **double**    double      double     double     double     double     double     double     decimal    decimal
+ **varint**    varint      varint     varint     decimal    decimal    decimal    decimal    decimal    decimal
+ **decimal**   decimal     decimal    decimal    decimal    decimal    decimal    decimal    decimal    decimal
+============= =========== ========== ========== ========== ========== ========== ========== ========== ==========
+
+``*``, ``/`` and ``%`` operators have a higher precedence level than ``+`` and ``-`` operator. By consequence,
+they will be evaluated before. If two operator in an expression have the same precedence level, they will be evaluated
+left to right based on their position in the expression.
+
+.. _datetime--arithmetic:
+
+Datetime Arithmetic
+^^^^^^^^^^^^^^^^^^^
+
+A ``duration`` can be added (+) or substracted (-) from a ``timestamp`` or a ``date`` to create a new
+``timestamp`` or ``date``. So for instance::
+
+    SELECT * FROM myTable WHERE t = '2017-01-01' - 2d
+
+will select all the records with a value of ``t`` which is in the last 2 days of 2016.
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_conceptual.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_conceptual.rst.txt
new file mode 100644
index 0000000..8749b79
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_conceptual.rst.txt
@@ -0,0 +1,63 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. conceptual_data_modeling
+
+Conceptual Data Modeling
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+First, let’s create a simple domain model that is easy to understand in
+the relational world, and then see how you might map it from a relational
+to a distributed hashtable model in Cassandra.
+
+Let's use an example that is complex enough
+to show the various data structures and design patterns, but not
+something that will bog you down with details. Also, a domain that’s
+familiar to everyone will allow you to concentrate on how to work with
+Cassandra, not on what the application domain is all about.
+
+For example, let's use a domain that is easily understood and that
+everyone can relate to: making hotel reservations.
+
+The conceptual domain includes hotels, guests that stay in the hotels, a
+collection of rooms for each hotel, the rates and availability of those
+rooms, and a record of reservations booked for guests. Hotels typically
+also maintain a collection of “points of interest,” which are parks,
+museums, shopping galleries, monuments, or other places near the hotel
+that guests might want to visit during their stay. Both hotels and
+points of interest need to maintain geolocation data so that they can be
+found on maps for mashups, and to calculate distances.
+
+The conceptual domain is depicted below using the entity–relationship
+model popularized by Peter Chen. This simple diagram represents the
+entities in the domain with rectangles, and attributes of those entities
+with ovals. Attributes that represent unique identifiers for items are
+underlined. Relationships between entities are represented as diamonds,
+and the connectors between the relationship and each entity show the
+multiplicity of the connection.
+
+.. image:: images/data_modeling_hotel_erd.png
+
+Obviously, in the real world, there would be many more considerations
+and much more complexity. For example, hotel rates are notoriously
+dynamic, and calculating them involves a wide array of factors. Here
+you’re defining something complex enough to be interesting and touch on
+the important points, but simple enough to maintain the focus on
+learning Cassandra.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_logical.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_logical.rst.txt
new file mode 100644
index 0000000..27fa4be
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_logical.rst.txt
@@ -0,0 +1,219 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Logical Data Modeling
+=====================
+
+Now that you have defined your queries, you’re ready to begin designing
+Cassandra tables. First, create a logical model containing a table
+for each query, capturing entities and relationships from the conceptual
+model.
+
+To name each table, you’ll identify the primary entity type for which you
+are querying and use that to start the entity name. If you are querying
+by attributes of other related entities, append those to the table
+name, separated with ``_by_``. For example, ``hotels_by_poi``.
+
+Next, you identify the primary key for the table, adding partition key
+columns based on the required query attributes, and clustering columns
+in order to guarantee uniqueness and support desired sort ordering.
+
+The design of the primary key is extremely important, as it will
+determine how much data will be stored in each partition and how that
+data is organized on disk, which in turn will affect how quickly
+Cassandra processes reads.
+
+Complete each table by adding any additional attributes identified by
+the query. If any of these additional attributes are the same for every
+instance of the partition key, mark the column as static.
+
+Now that was a pretty quick description of a fairly involved process, so
+it will be worthwhile to work through a detailed example. First,
+let’s introduce a notation that you can use to represent logical
+models.
+
+Several individuals within the Cassandra community have proposed
+notations for capturing data models in diagrammatic form. This document
+uses a notation popularized by Artem Chebotko which provides a simple,
+informative way to visualize the relationships between queries and
+tables in your designs. This figure shows the Chebotko notation for a
+logical data model.
+
+.. image:: images/data_modeling_chebotko_logical.png
+
+Each table is shown with its title and a list of columns. Primary key
+columns are identified via symbols such as **K** for partition key
+columns and **C**\ ↑ or **C**\ ↓ to represent clustering columns. Lines
+are shown entering tables or between tables to indicate the queries that
+each table is designed to support.
+
+Hotel Logical Data Model
+------------------------
+
+The figure below shows a Chebotko logical data model for the queries
+involving hotels, points of interest, rooms, and amenities. One thing you'll
+notice immediately is that the Cassandra design doesn’t include dedicated
+tables for rooms or amenities, as you had in the relational design. This
+is because the workflow didn’t identify any queries requiring this
+direct access.
+
+.. image:: images/data_modeling_hotel_logical.png
+
+Let’s explore the details of each of these tables.
+
+The first query Q1 is to find hotels near a point of interest, so you’ll
+call this table ``hotels_by_poi``. Searching by a named point of
+interest is a clue that the point of interest should be a part
+of the primary key. Let’s reference the point of interest by name,
+because according to the workflow that is how users will start their
+search.
+
+You’ll note that you certainly could have more than one hotel near a
+given point of interest, so you’ll need another component in the primary
+key in order to make sure you have a unique partition for each hotel. So
+you add the hotel key as a clustering column.
+
+An important consideration in designing your table’s primary key is
+making sure that it defines a unique data element. Otherwise you run the
+risk of accidentally overwriting data.
+
+Now for the second query (Q2), you’ll need a table to get information
+about a specific hotel. One approach would have been to put all of the
+attributes of a hotel in the ``hotels_by_poi`` table, but you added
+only those attributes that were required by the application workflow.
+
+From the workflow diagram, you know that the ``hotels_by_poi`` table is
+used to display a list of hotels with basic information on each hotel,
+and the application knows the unique identifiers of the hotels returned.
+When the user selects a hotel to view details, you can then use Q2, which
+is used to obtain details about the hotel. Because you already have the
+``hotel_id`` from Q1, you use that as a reference to the hotel you’re
+looking for. Therefore the second table is just called ``hotels``.
+
+Another option would have been to store a set of ``poi_names`` in the
+hotels table. This is an equally valid approach. You’ll learn through
+experience which approach is best for your application.
+
+Q3 is just a reverse of Q1—looking for points of interest near a hotel,
+rather than hotels near a point of interest. This time, however, you need
+to access the details of each point of interest, as represented by the
+``pois_by_hotel`` table. As previously, you add the point of
+interest name as a clustering key to guarantee uniqueness.
+
+At this point, let’s now consider how to support query Q4 to help the
+user find available rooms at a selected hotel for the nights they are
+interested in staying. Note that this query involves both a start date
+and an end date. Because you’re querying over a range instead of a single
+date, you know that you’ll need to use the date as a clustering key.
+Use the ``hotel_id`` as a primary key to group room data for each hotel
+on a single partition, which should help searches be super fast. Let’s
+call this the ``available_rooms_by_hotel_date`` table.
+
+To support searching over a range, use :ref:`clustering columns
+<clustering-columns>` to store
+attributes that you need to access in a range query. Remember that the
+order of the clustering columns is important.
+
+The design of the ``available_rooms_by_hotel_date`` table is an instance
+of the **wide partition** pattern. This
+pattern is sometimes called the **wide row** pattern when discussing
+databases that support similar models, but wide partition is a more
+accurate description from a Cassandra perspective. The essence of the
+pattern is to group multiple related rows in a partition in order to
+support fast access to multiple rows within the partition in a single
+query.
+
+In order to round out the shopping portion of the data model, add the
+``amenities_by_room`` table to support Q5. This will allow users to
+view the amenities of one of the rooms that is available for the desired
+stay dates.
+
+Reservation Logical Data Model
+------------------------------
+
+Now let's switch gears to look at the reservation queries. The figure
+shows a logical data model for reservations. You’ll notice that these
+tables represent a denormalized design; the same data appears in
+multiple tables, with differing keys.
+
+.. image:: images/data_modeling_reservation_logical.png
+
+In order to satisfy Q6, the ``reservations_by_guest`` table can be used
+to look up the reservation by guest name. You could envision query Q7
+being used on behalf of a guest on a self-serve website or a call center
+agent trying to assist the guest. Because the guest name might not be
+unique, you include the guest ID here as a clustering column as well.
+
+Q8 and Q9 in particular help to remind you to create queries
+that support various stakeholders of the application, not just customers
+but staff as well, and perhaps even the analytics team, suppliers, and so
+on.
+
+The hotel staff might wish to see a record of upcoming reservations by
+date in order to get insight into how the hotel is performing, such as
+what dates the hotel is sold out or undersold. Q8 supports the retrieval
+of reservations for a given hotel by date.
+
+Finally, you create a ``guests`` table. This provides a single
+location that used to store guest information. In this case, you specify a
+separate unique identifier for guest records, as it is not uncommon
+for guests to have the same name. In many organizations, a customer
+database such as the ``guests`` table would be part of a separate
+customer management application, which is why other guest
+access patterns were omitted from the example.
+
+
+Patterns and Anti-Patterns
+--------------------------
+
+As with other types of software design, there are some well-known
+patterns and anti-patterns for data modeling in Cassandra. You’ve already
+used one of the most common patterns in this hotel model—the wide
+partition pattern.
+
+The **time series** pattern is an extension of the wide partition
+pattern. In this pattern, a series of measurements at specific time
+intervals are stored in a wide partition, where the measurement time is
+used as part of the partition key. This pattern is frequently used in
+domains including business analysis, sensor data management, and
+scientific experiments.
+
+The time series pattern is also useful for data other than measurements.
+Consider the example of a banking application. You could store each
+customer’s balance in a row, but that might lead to a lot of read and
+write contention as various customers check their balance or make
+transactions. You’d probably be tempted to wrap a transaction around
+writes just to protect the balance from being updated in error. In
+contrast, a time series–style design would store each transaction as a
+timestamped row and leave the work of calculating the current balance to
+the application.
+
+One design trap that many new users fall into is attempting to use
+Cassandra as a queue. Each item in the queue is stored with a timestamp
+in a wide partition. Items are appended to the end of the queue and read
+from the front, being deleted after they are read. This is a design that
+seems attractive, especially given its apparent similarity to the time
+series pattern. The problem with this approach is that the deleted items
+are now :ref:`tombstones <asynch-deletes>` that Cassandra must scan past
+in order to read from the front of the queue. Over time, a growing number
+of tombstones begins to degrade read performance.
+
+The queue anti-pattern serves as a reminder that any design that relies
+on the deletion of data is potentially a poorly performing design.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_physical.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_physical.rst.txt
new file mode 100644
index 0000000..7584004
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_physical.rst.txt
@@ -0,0 +1,117 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Physical Data Modeling
+======================
+
+Once you have a logical data model defined, creating the physical model
+is a relatively simple process.
+
+You walk through each of the logical model tables, assigning types to
+each item. You can use any valid :ref:`CQL data type <data-types>`,
+including the basic types, collections, and user-defined types. You may
+identify additional user-defined types that can be created to simplify
+your design.
+
+After you’ve assigned data types, you analyze the model by performing
+size calculations and testing out how the model works. You may make some
+adjustments based on your findings. Once again let's cover the data
+modeling process in more detail by working through an example.
+
+Before getting started, let’s look at a few additions to the Chebotko
+notation for physical data models. To draw physical models, you need to
+be able to add the typing information for each column. This figure
+shows the addition of a type for each column in a sample table.
+
+.. image:: images/data_modeling_chebotko_physical.png
+
+The figure includes a designation of the keyspace containing each table
+and visual cues for columns represented using collections and
+user-defined types. Note the designation of static columns and
+secondary index columns. There is no restriction on assigning these as
+part of a logical model, but they are typically more of a physical data
+modeling concern.
+
+Hotel Physical Data Model
+-------------------------
+
+Now let’s get to work on the physical model. First, you need keyspaces
+to contain the tables. To keep the design relatively simple, create a
+``hotel`` keyspace to contain tables for hotel and availability
+data, and a ``reservation`` keyspace to contain tables for reservation
+and guest data. In a real system, you might divide the tables across even
+more keyspaces in order to separate concerns.
+
+For the ``hotels`` table, use Cassandra’s ``text`` type to
+represent the hotel’s ``id``. For the address, create an
+``address`` user defined type. Use the ``text`` type to represent the
+phone number, as there is considerable variance in the formatting of
+numbers between countries.
+
+While it would make sense to use the ``uuid`` type for attributes such
+as the ``hotel_id``, this document uses mostly ``text`` attributes as
+identifiers, to keep the samples simple and readable. For example, a
+common convention in the hospitality industry is to reference properties
+by short codes like "AZ123" or "NY229". This example uses these values
+for ``hotel_ids``, while acknowledging they are not necessarily globally
+unique.
+
+You’ll find that it’s often helpful to use unique IDs to uniquely
+reference elements, and to use these ``uuids`` as references in tables
+representing other entities. This helps to minimize coupling between
+different entity types. This may prove especially effective if you are
+using a microservice architectural style for your application, in which
+there are separate services responsible for each entity type.
+
+As you work to create physical representations of various tables in the
+logical hotel data model, you use the same approach. The resulting design
+is shown in this figure:
+
+.. image:: images/data_modeling_hotel_physical.png
+
+Note that the ``address`` type is also included in the design. It
+is designated with an asterisk to denote that it is a user-defined type,
+and has no primary key columns identified. This type is used in
+the ``hotels`` and ``hotels_by_poi`` tables.
+
+User-defined types are frequently used to help reduce duplication of
+non-primary key columns, as was done with the ``address``
+user-defined type. This can reduce complexity in the design.
+
+Remember that the scope of a UDT is the keyspace in which it is defined.
+To use ``address`` in the ``reservation`` keyspace defined below
+design, you’ll have to declare it again. This is just one of the many
+trade-offs you have to make in data model design.
+
+Reservation Physical Data Model
+-------------------------------
+
+Now, let’s examine reservation tables in the design.
+Remember that the logical model contained three denormalized tables to
+support queries for reservations by confirmation number, guest, and
+hotel and date. For the first iteration of your physical data model
+design, assume you're going to manage this denormalization
+manually. Note that this design could be revised to use Cassandra’s
+(experimental) materialized view feature.
+
+.. image:: images/data_modeling_reservation_physical.png
+
+Note that the ``address`` type is reproduced in this keyspace and
+``guest_id`` is modeled as a ``uuid`` type in all of the tables.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_queries.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_queries.rst.txt
new file mode 100644
index 0000000..d011994
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_queries.rst.txt
@@ -0,0 +1,85 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Defining Application Queries
+============================
+
+Let’s try the query-first approach to start designing the data model for
+a hotel application. The user interface design for the application is
+often a great artifact to use to begin identifying queries. Let’s assume
+that you’ve talked with the project stakeholders and your UX designers
+have produced user interface designs or wireframes for the key use
+cases. You’ll likely have a list of shopping queries like the following:
+
+-  Q1. Find hotels near a given point of interest.
+
+-  Q2. Find information about a given hotel, such as its name and
+   location.
+
+-  Q3. Find points of interest near a given hotel.
+
+-  Q4. Find an available room in a given date range.
+
+-  Q5. Find the rate and amenities for a room.
+
+It is often helpful to be able to refer
+to queries by a shorthand number rather that explaining them in full.
+The queries listed here are numbered Q1, Q2, and so on, which is how they
+are referenced in diagrams throughout the example.
+
+Now if the application is to be a success, you’ll certainly want
+customers to be able to book reservations at hotels. This includes
+steps such as selecting an available room and entering their guest
+information. So clearly you will also need some queries that address the
+reservation and guest entities from the conceptual data model. Even
+here, however, you’ll want to think not only from the customer
+perspective in terms of how the data is written, but also in terms of
+how the data will be queried by downstream use cases.
+
+You natural tendency as might be to focus first on
+designing the tables to store reservation and guest records, and only
+then start thinking about the queries that would access them. You may
+have felt a similar tension already when discussing the
+shopping queries before, thinking “but where did the hotel and point of
+interest data come from?” Don’t worry, you will see soon enough.
+Here are some queries that describe how users will access
+reservations:
+
+-  Q6. Lookup a reservation by confirmation number.
+
+-  Q7. Lookup a reservation by hotel, date, and guest name.
+
+-  Q8. Lookup all reservations by guest name.
+
+-  Q9. View guest details.
+
+All of the queries are shown in the context of the workflow of the
+application in the figure below. Each box on the diagram represents a
+step in the application workflow, with arrows indicating the flows
+between steps and the associated query. If you’ve modeled the application
+well, each step of the workflow accomplishes a task that “unlocks”
+subsequent steps. For example, the “View hotels near POI” task helps
+the application learn about several hotels, including their unique keys.
+The key for a selected hotel may be used as part of Q2, in order to
+obtain detailed description of the hotel. The act of booking a room
+creates a reservation record that may be accessed by the guest and
+hotel staff at a later time through various additional queries.
+
+.. image:: images/data_modeling_hotel_queries.png
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_rdbms.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_rdbms.rst.txt
new file mode 100644
index 0000000..7d67d69
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_rdbms.rst.txt
@@ -0,0 +1,171 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+RDBMS Design
+============
+
+When you set out to build a new data-driven application that will use a
+relational database, you might start by modeling the domain as a set of
+properly normalized tables and use foreign keys to reference related
+data in other tables.
+
+The figure below shows how you might represent the data storage for your application
+using a relational database model. The relational model includes a
+couple of “join” tables in order to realize the many-to-many
+relationships from the conceptual model of hotels-to-points of interest,
+rooms-to-amenities, rooms-to-availability, and guests-to-rooms (via a
+reservation).
+
+.. image:: images/data_modeling_hotel_relational.png
+
+.. design_differences_between_rdbms_and_cassandra
+
+Design Differences Between RDBMS and Cassandra
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Let’s take a minute to highlight some of the key differences in doing
+ata modeling for Cassandra versus a relational database.
+
+No joins
+~~~~~~~~
+
+You cannot perform joins in Cassandra. If you have designed a data model
+and find that you need something like a join, you’ll have to either do
+the work on the client side, or create a denormalized second table that
+represents the join results for you. This latter option is preferred in
+Cassandra data modeling. Performing joins on the client should be a very
+rare case; you really want to duplicate (denormalize) the data instead.
+
+No referential integrity
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Although Cassandra supports features such as lightweight transactions
+and batches, Cassandra itself has no concept of referential integrity
+across tables. In a relational database, you could specify foreign keys
+in a table to reference the primary key of a record in another table.
+But Cassandra does not enforce this. It is still a common design
+requirement to store IDs related to other entities in your tables, but
+operations such as cascading deletes are not available.
+
+Denormalization
+~~~~~~~~~~~~~~~
+
+In relational database design, you are often taught the importance of
+normalization. This is not an advantage when working with Cassandra
+because it performs best when the data model is denormalized. It is
+often the case that companies end up denormalizing data in relational
+databases as well. There are two common reasons for this. One is
+performance. Companies simply can’t get the performance they need when
+they have to do so many joins on years’ worth of data, so they
+denormalize along the lines of known queries. This ends up working, but
+goes against the grain of how relational databases are intended to be
+designed, and ultimately makes one question whether using a relational
+database is the best approach in these circumstances.
+
+A second reason that relational databases get denormalized on purpose is
+a business document structure that requires retention. That is, you have
+an enclosing table that refers to a lot of external tables whose data
+could change over time, but you need to preserve the enclosing document
+as a snapshot in history. The common example here is with invoices. You
+already have customer and product tables, and you’d think that you could
+just make an invoice that refers to those tables. But this should never
+be done in practice. Customer or price information could change, and
+then you would lose the integrity of the invoice document as it was on
+the invoice date, which could violate audits, reports, or laws, and
+cause other problems.
+
+In the relational world, denormalization violates Codd’s normal forms,
+and you try to avoid it. But in Cassandra, denormalization is, well,
+perfectly normal. It’s not required if your data model is simple. But
+don’t be afraid of it.
+
+Historically, denormalization in Cassandra has required designing and
+managing multiple tables using techniques described in this documentation.
+Beginning with the 3.0 release, Cassandra provides a feature known
+as :ref:`materialized views <materialized-views>`
+which allows you to create multiple denormalized
+views of data based on a base table design. Cassandra manages
+materialized views on the server, including the work of keeping the
+views in sync with the table.
+
+Query-first design
+~~~~~~~~~~~~~~~~~~
+
+Relational modeling, in simple terms, means that you start from the
+conceptual domain and then represent the nouns in the domain in tables.
+You then assign primary keys and foreign keys to model relationships.
+When you have a many-to-many relationship, you create the join tables
+that represent just those keys. The join tables don’t exist in the real
+world, and are a necessary side effect of the way relational models
+work. After you have all your tables laid out, you can start writing
+queries that pull together disparate data using the relationships
+defined by the keys. The queries in the relational world are very much
+secondary. It is assumed that you can always get the data you want as
+long as you have your tables modeled properly. Even if you have to use
+several complex subqueries or join statements, this is usually true.
+
+By contrast, in Cassandra you don’t start with the data model; you start
+with the query model. Instead of modeling the data first and then
+writing queries, with Cassandra you model the queries and let the data
+be organized around them. Think of the most common query paths your
+application will use, and then create the tables that you need to
+support them.
+
+Detractors have suggested that designing the queries first is overly
+constraining on application design, not to mention database modeling.
+But it is perfectly reasonable to expect that you should think hard
+about the queries in your application, just as you would, presumably,
+think hard about your relational domain. You may get it wrong, and then
+you’ll have problems in either world. Or your query needs might change
+over time, and then you’ll have to work to update your data set. But
+this is no different from defining the wrong tables, or needing
+additional tables, in an RDBMS.
+
+Designing for optimal storage
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In a relational database, it is frequently transparent to the user how
+tables are stored on disk, and it is rare to hear of recommendations
+about data modeling based on how the RDBMS might store tables on disk.
+However, that is an important consideration in Cassandra. Because
+Cassandra tables are each stored in separate files on disk, it’s
+important to keep related columns defined together in the same table.
+
+A key goal that you will see as you begin creating data models in
+Cassandra is to minimize the number of partitions that must be searched
+in order to satisfy a given query. Because the partition is a unit of
+storage that does not get divided across nodes, a query that searches a
+single partition will typically yield the best performance.
+
+Sorting is a design decision
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In an RDBMS, you can easily change the order in which records are
+returned to you by using ``ORDER BY`` in your query. The default sort
+order is not configurable; by default, records are returned in the order
+in which they are written. If you want to change the order, you just
+modify your query, and you can sort by any list of columns.
+
+In Cassandra, however, sorting is treated differently; it is a design
+decision. The sort order available on queries is fixed, and is
+determined entirely by the selection of clustering columns you supply in
+the ``CREATE TABLE`` command. The CQL ``SELECT`` statement does support
+``ORDER BY`` semantics, but only in the order specified by the
+clustering columns.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_refining.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_refining.rst.txt
new file mode 100644
index 0000000..13a276e
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_refining.rst.txt
@@ -0,0 +1,218 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. role:: raw-latex(raw)
+   :format: latex
+..
+
+Evaluating and Refining Data Models
+===================================
+
+Once you’ve created a physical model, there are some steps you’ll want
+to take to evaluate and refine table designs to help ensure optimal
+performance.
+
+Calculating Partition Size
+--------------------------
+
+The first thing that you want to look for is whether your tables will have
+partitions that will be overly large, or to put it another way, too
+wide. Partition size is measured by the number of cells (values) that
+are stored in the partition. Cassandra’s hard limit is 2 billion cells
+per partition, but you’ll likely run into performance issues before
+reaching that limit.
+
+In order to calculate the size of partitions, use the following
+formula:
+
+.. math:: N_v = N_r (N_c - N_{pk} - N_s) + N_s
+
+The number of values (or cells) in the partition (N\ :sub:`v`) is equal to
+the number of static columns (N\ :sub:`s`) plus the product of the number
+of rows (N\ :sub:`r`) and the number of of values per row. The number of
+values per row is defined as the number of columns (N\ :sub:`c`) minus the
+number of primary key columns (N\ :sub:`pk`) and static columns
+(N\ :sub:`s`).
+
+The number of columns tends to be relatively static, although it
+is possible to alter tables at runtime. For this reason, a
+primary driver of partition size is the number of rows in the partition.
+This is a key factor that you must consider in determining whether a
+partition has the potential to get too large. Two billion values sounds
+like a lot, but in a sensor system where tens or hundreds of values are
+measured every millisecond, the number of values starts to add up pretty
+fast.
+
+Let’s take a look at one of the tables to analyze the partition size.
+Because it has a wide partition design with one partition per hotel,
+look at the ``available_rooms_by_hotel_date`` table. The table has
+four columns total (N\ :sub:`c` = 4), including three primary key columns
+(N\ :sub:`pk` = 3) and no static columns (N\ :sub:`s` = 0). Plugging these
+values into the formula, the result is:
+
+.. math:: N_v = N_r (4 - 3 - 0) + 0 = 1N_r
+
+Therefore the number of values for this table is equal to the number of
+rows. You still need to determine a number of rows. To do this, make
+estimates based on the application design. The table is
+storing a record for each room, in each of hotel, for every night.
+Let's assume the system will be used to store two years of
+inventory at a time, and there are 5,000 hotels in the system, with an
+average of 100 rooms in each hotel.
+
+Since there is a partition for each hotel, the estimated number of rows
+per partition is as follows:
+
+.. math:: N_r = 100 rooms/hotel \times 730 days = 73,000 rows
+
+This relatively small number of rows per partition is not going to get
+you in too much trouble, but if you start storing more dates of inventory,
+or don’t manage the size of the inventory well using TTL, you could start
+having issues. You still might want to look at breaking up this large
+partition, which you'll see how to do shortly.
+
+When performing sizing calculations, it is tempting to assume the
+nominal or average case for variables such as the number of rows.
+Consider calculating the worst case as well, as these sorts of
+predictions have a way of coming true in successful systems.
+
+Calculating Size on Disk
+------------------------
+
+In addition to calculating the size of a partition, it is also an
+excellent idea to estimate the amount of disk space that will be
+required for each table you plan to store in the cluster. In order to
+determine the size, use the following formula to determine the size
+S\ :sub:`t` of a partition:
+
+.. math:: S_t = \displaystyle\sum_i sizeOf\big (c_{k_i}\big) + \displaystyle\sum_j sizeOf\big(c_{s_j}\big) + N_r\times \bigg(\displaystyle\sum_k sizeOf\big(c_{r_k}\big) + \displaystyle\sum_l sizeOf\big(c_{c_l}\big)\bigg) +
+
+.. math:: N_v\times sizeOf\big(t_{avg}\big)
+
+This is a bit more complex than the previous formula, but let's break it
+down a bit at a time. Let’s take a look at the notation first:
+
+-  In this formula, c\ :sub:`k` refers to partition key columns,
+   c\ :sub:`s` to static columns, c\ :sub:`r` to regular columns, and
+   c\ :sub:`c` to clustering columns.
+
+-  The term t\ :sub:`avg` refers to the average number of bytes of
+   metadata stored per cell, such as timestamps. It is typical to use an
+   estimate of 8 bytes for this value.
+
+-  You'll recognize the number of rows N\ :sub:`r` and number of values
+   N\ :sub:`v` from previous calculations.
+
+-  The **sizeOf()** function refers to the size in bytes of the CQL data
+   type of each referenced column.
+
+The first term asks you to sum the size of the partition key columns. For
+this example, the ``available_rooms_by_hotel_date`` table has a single
+partition key column, the ``hotel_id``, which is of type
+``text``. Assuming that hotel identifiers are simple 5-character codes,
+you have a 5-byte value, so the sum of the partition key column sizes is
+5 bytes.
+
+The second term asks you to sum the size of the static columns. This table
+has no static columns, so the size is 0 bytes.
+
+The third term is the most involved, and for good reason—it is
+calculating the size of the cells in the partition. Sum the size of
+the clustering columns and regular columns. The two clustering columns
+are the ``date``, which is 4 bytes, and the ``room_number``,
+which is a 2-byte short integer, giving a sum of 6 bytes.
+There is only a single regular column, the boolean ``is_available``,
+which is 1 byte in size. Summing the regular column size
+(1 byte) plus the clustering column size (6 bytes) gives a total of 7
+bytes. To finish up the term, multiply this value by the number of
+rows (73,000), giving a result of 511,000 bytes (0.51 MB).
+
+The fourth term is simply counting the metadata that that Cassandra
+stores for each cell. In the storage format used by Cassandra 3.0 and
+later, the amount of metadata for a given cell varies based on the type
+of data being stored, and whether or not custom timestamp or TTL values
+are specified for individual cells. For this table, reuse the number
+of values from the previous calculation (73,000) and multiply by 8,
+which gives 0.58 MB.
+
+Adding these terms together, you get a final estimate:
+
+.. math:: Partition size = 16 bytes + 0 bytes + 0.51 MB + 0.58 MB = 1.1 MB
+
+This formula is an approximation of the actual size of a partition on
+disk, but is accurate enough to be quite useful. Remembering that the
+partition must be able to fit on a single node, it looks like the table
+design will not put a lot of strain on disk storage.
+
+Cassandra’s storage engine was re-implemented for the 3.0 release,
+including a new format for SSTable files. The previous format stored a
+separate copy of the clustering columns as part of the record for each
+cell. The newer format eliminates this duplication, which reduces the
+size of stored data and simplifies the formula for computing that size.
+
+Keep in mind also that this estimate only counts a single replica of
+data. You will need to multiply the value obtained here by the number of
+partitions and the number of replicas specified by the keyspace’s
+replication strategy in order to determine the total required total
+capacity for each table. This will come in handy when you
+plan your cluster.
+
+Breaking Up Large Partitions
+----------------------------
+
+As discussed previously, the goal is to design tables that can provide
+the data you need with queries that touch a single partition, or failing
+that, the minimum possible number of partitions. However, as shown in
+the examples, it is quite possible to design wide
+partition-style tables that approach Cassandra’s built-in limits.
+Performing sizing analysis on tables may reveal partitions that are
+potentially too large, either in number of values, size on disk, or
+both.
+
+The technique for splitting a large partition is straightforward: add an
+additional column to the partition key. In most cases, moving one of the
+existing columns into the partition key will be sufficient. Another
+option is to introduce an additional column to the table to act as a
+sharding key, but this requires additional application logic.
+
+Continuing to examine the available rooms example, if you add the ``date``
+column to the partition key for the ``available_rooms_by_hotel_date``
+table, each partition would then represent the availability of rooms
+at a specific hotel on a specific date. This will certainly yield
+partitions that are significantly smaller, perhaps too small, as the
+data for consecutive days will likely be on separate nodes.
+
+Another technique known as **bucketing** is often used to break the data
+into moderate-size partitions. For example, you could bucketize the
+``available_rooms_by_hotel_date`` table by adding a ``month`` column to
+the partition key, perhaps represented as an integer. The comparision
+with the original design is shown in the figure below. While the
+``month`` column is partially duplicative of the ``date``, it provides
+a nice way of grouping related data in a partition that will not get
+too large.
+
+.. image:: images/data_modeling_hotel_bucketing.png
+
+If you really felt strongly about preserving a wide partition design, you
+could instead add the ``room_id`` to the partition key, so that each
+partition would represent the availability of the room across all
+dates. Because there was no query identified that involves searching
+availability of a specific room, the first or second design approach
+is most suitable to the application needs.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_schema.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_schema.rst.txt
new file mode 100644
index 0000000..1876ec3
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_schema.rst.txt
@@ -0,0 +1,144 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. highlight:: cql
+
+Defining Database Schema
+========================
+
+Once you have finished evaluating and refining the physical model, you’re
+ready to implement the schema in CQL. Here is the schema for the
+``hotel`` keyspace, using CQL’s comment feature to document the query
+pattern supported by each table::
+
+    CREATE KEYSPACE hotel WITH replication =
+      {‘class’: ‘SimpleStrategy’, ‘replication_factor’ : 3};
+
+    CREATE TYPE hotel.address (
+      street text,
+      city text,
+      state_or_province text,
+      postal_code text,
+      country text );
+
+    CREATE TABLE hotel.hotels_by_poi (
+      poi_name text,
+      hotel_id text,
+      name text,
+      phone text,
+      address frozen<address>,
+      PRIMARY KEY ((poi_name), hotel_id) )
+      WITH comment = ‘Q1. Find hotels near given poi’
+      AND CLUSTERING ORDER BY (hotel_id ASC) ;
+
+    CREATE TABLE hotel.hotels (
+      id text PRIMARY KEY,
+      name text,
+      phone text,
+      address frozen<address>,
+      pois set )
+      WITH comment = ‘Q2. Find information about a hotel’;
+
+    CREATE TABLE hotel.pois_by_hotel (
+      poi_name text,
+      hotel_id text,
+      description text,
+      PRIMARY KEY ((hotel_id), poi_name) )
+      WITH comment = Q3. Find pois near a hotel’;
+
+    CREATE TABLE hotel.available_rooms_by_hotel_date (
+      hotel_id text,
+      date date,
+      room_number smallint,
+      is_available boolean,
+      PRIMARY KEY ((hotel_id), date, room_number) )
+      WITH comment = ‘Q4. Find available rooms by hotel date’;
+
+    CREATE TABLE hotel.amenities_by_room (
+      hotel_id text,
+      room_number smallint,
+      amenity_name text,
+      description text,
+      PRIMARY KEY ((hotel_id, room_number), amenity_name) )
+      WITH comment = ‘Q5. Find amenities for a room’;
+
+
+Notice that the elements of the partition key are surrounded
+with parentheses, even though the partition key consists
+of the single column ``poi_name``. This is a best practice that makes
+the selection of partition key more explicit to others reading your CQL.
+
+Similarly, here is the schema for the ``reservation`` keyspace::
+
+    CREATE KEYSPACE reservation WITH replication = {‘class’:
+      ‘SimpleStrategy’, ‘replication_factor’ : 3};
+
+    CREATE TYPE reservation.address (
+      street text,
+      city text,
+      state_or_province text,
+      postal_code text,
+      country text );
+
+    CREATE TABLE reservation.reservations_by_confirmation (
+      confirm_number text,
+      hotel_id text,
+      start_date date,
+      end_date date,
+      room_number smallint,
+      guest_id uuid,
+      PRIMARY KEY (confirm_number) )
+      WITH comment = ‘Q6. Find reservations by confirmation number’;
+
+    CREATE TABLE reservation.reservations_by_hotel_date (
+      hotel_id text,
+      start_date date,
+      end_date date,
+      room_number smallint,
+      confirm_number text,
+      guest_id uuid,
+      PRIMARY KEY ((hotel_id, start_date), room_number) )
+      WITH comment = ‘Q7. Find reservations by hotel and date’;
+
+    CREATE TABLE reservation.reservations_by_guest (
+      guest_last_name text,
+      hotel_id text,
+      start_date date,
+      end_date date,
+      room_number smallint,
+      confirm_number text,
+      guest_id uuid,
+      PRIMARY KEY ((guest_last_name), hotel_id) )
+      WITH comment = ‘Q8. Find reservations by guest name’;
+
+    CREATE TABLE reservation.guests (
+      guest_id uuid PRIMARY KEY,
+      first_name text,
+      last_name text,
+      title text,
+      emails set,
+      phone_numbers list,
+      addresses map<text,
+      frozen<address>,
+      confirm_number text )
+      WITH comment = ‘Q9. Find guest by ID’;
+
+You now have a complete Cassandra schema for storing data for a hotel
+application.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/data_modeling_tools.rst.txt b/src/doc/3.11.11/_sources/data_modeling/data_modeling_tools.rst.txt
new file mode 100644
index 0000000..46fad33
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/data_modeling_tools.rst.txt
@@ -0,0 +1,64 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Cassandra Data Modeling Tools
+=============================
+
+There are several tools available to help you design and
+manage your Cassandra schema and build queries.
+
+* `Hackolade <https://hackolade.com/nosqldb.html#cassandra>`_
+  is a data modeling tool that supports schema design for Cassandra and
+  many other NoSQL databases. Hackolade supports the unique concepts of
+  CQL such as partition keys and clustering columns, as well as data types
+  including collections and UDTs. It also provides the ability to create
+  Chebotko diagrams.
+
+* `Kashlev Data Modeler <http://kdm.dataview.org/>`_ is a Cassandra
+  data modeling tool that automates the data modeling methodology
+  described in this documentation, including identifying
+  access patterns, conceptual, logical, and physical data modeling, and
+  schema generation. It also includes model patterns that you can
+  optionally leverage as a starting point for your designs.
+
+* DataStax DevCenter is a tool for managing
+  schema, executing queries and viewing results. While the tool is no
+  longer actively supported, it is still popular with many developers and
+  is available as a `free download <https://academy.datastax.com/downloads>`_.
+  DevCenter features syntax highlighting for CQL commands, types, and name
+  literals. DevCenter provides command completion as you type out CQL
+  commands and interprets the commands you type, highlighting any errors
+  you make. The tool provides panes for managing multiple CQL scripts and
+  connections to multiple clusters. The connections are used to run CQL
+  commands against live clusters and view the results. The tool also has a
+  query trace feature that is useful for gaining insight into the
+  performance of your queries.
+
+* IDE Plugins - There are CQL plugins available for several Integrated
+  Development Environments (IDEs), such as IntelliJ IDEA and Apache
+  NetBeans. These plugins typically provide features such as schema
+  management and query execution.
+
+Some IDEs and tools that claim to support Cassandra do not actually support
+CQL natively, but instead access Cassandra using a JDBC/ODBC driver and
+interact with Cassandra as if it were a relational database with SQL
+support. Wnen selecting tools for working with Cassandra you’ll want to
+make sure they support CQL and reinforce Cassandra best practices for
+data modeling as presented in this documentation.
+
+*Material adapted from Cassandra, The Definitive Guide. Published by
+O'Reilly Media, Inc. Copyright © 2020 Jeff Carpenter, Eben Hewitt.
+All rights reserved. Used with permission.*
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/data_modeling/intro.rst.txt b/src/doc/3.11.11/_sources/data_modeling/intro.rst.txt
new file mode 100644
index 0000000..630a7d1
--- /dev/null
+++ b/src/doc/3.11.11/_sources/data_modeling/intro.rst.txt
@@ -0,0 +1,146 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Introduction
+============
+
+Apache Cassandra stores data in tables, with each table consisting of rows and columns. CQL (Cassandra Query Language) is used to query the data stored in tables. Apache Cassandra data model is based around and optimized for querying. Cassandra does not support relational data modeling intended for relational databases.
+
+What is Data Modeling?
+^^^^^^^^^^^^^^^^^^^^^^
+
+Data modeling is the process of identifying entities and their relationships. In relational databases, data is placed in normalized tables with foreign keys used to reference related data in other tables. Queries that the application will make are driven by the structure of the tables and related data are queried as table joins.
+
+In Cassandra, data modeling is query-driven. The data access patterns and application queries determine the structure and organization of data which then used to design the database tables.
+
+Data is modeled around specific queries. Queries are best designed to access a single table, which implies that all entities involved in a query must be in the same table to make data access (reads) very fast. Data is modeled to best suit a query or a set of queries. A table could have one or more entities as best suits a query. As entities do typically have relationships among them and queries could involve entities with relationships among them, a single entity may be included in multiple tables.
+
+Query-driven modeling
+^^^^^^^^^^^^^^^^^^^^^
+
+Unlike a relational database model in which queries make use of table joins to get data from multiple tables, joins are not supported in Cassandra so all required fields (columns) must be grouped together in a single table. Since each query is backed by a table, data is duplicated across multiple tables in a process known as denormalization. Data duplication and a high write throughput are used to achieve a high read performance.
+
+Goals
+^^^^^
+
+The choice of the primary key and partition key is important to distribute data evenly across the cluster. Keeping the number of partitions read for a query to a minimum is also important because different partitions could be located on different nodes and the coordinator would need to send a request to each node adding to the request overhead and latency. Even if the different partitions involved in a query are on the same node, fewer partitions make for a more efficient query.
+
+Partitions
+^^^^^^^^^^
+
+Apache Cassandra is a distributed database that stores data across a cluster of nodes. A partition key is used to partition data among the nodes. Cassandra partitions data over the storage nodes using a variant of consistent hashing for data distribution. Hashing is a technique used to map data with which given a key, a hash function generates a hash value (or simply a hash) that is stored in a hash table. A partition key is generated from the first field of a primary key.   Data partitioned into hash tables using partition keys provides for rapid lookup.  Fewer the partitions used for a query faster is the response time for the query. 
+
+As an example of partitioning, consider table ``t`` in which ``id`` is the only field in the primary key.
+
+::
+
+ CREATE TABLE t (
+    id int,
+    k int,
+    v text,
+    PRIMARY KEY (id)
+ );
+
+The partition key is generated from the primary key ``id`` for data distribution across the nodes in a cluster. 
+
+Consider a variation of table ``t`` that has two fields constituting the primary key to make a composite or compound primary key.  
+
+::
+
+ CREATE TABLE t (
+    id int,
+    c text,
+    k int,
+    v text,
+    PRIMARY KEY (id,c)
+ );
+
+For the table ``t`` with a composite primary key the first field ``id`` is used to generate the partition key and the second field ``c`` is the clustering key used for sorting within a partition.  Using clustering keys to sort data makes retrieval of adjacent data more efficient.  
+
+In general,  the first field or component of a primary key is hashed to generate the partition key and the remaining fields or components are the clustering keys that are used to sort data within a partition. Partitioning data  improves the efficiency of reads and writes. The other fields that are not primary key fields may be indexed separately to further improve query performance. 
+
+The partition key could be generated from multiple fields if they are grouped as the first component of a primary key.  As another variation of the table ``t``, consider a table with the first component of the primary key made of two fields grouped using parentheses.
+
+::
+ 
+ CREATE TABLE t (
+    id1 int,
+    id2 int,
+    c1 text,
+    c2 text
+    k int,
+    v text,
+    PRIMARY KEY ((id1,id2),c1,c2)
+ );
+
+For the preceding table ``t`` the first component of the primary key constituting fields ``id1`` and ``id2`` is used to generate the partition key and the rest of the fields ``c1`` and ``c2`` are the clustering keys used for sorting within a partition.  
+
+Comparing with Relational Data Model
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
+ 
+Relational databases store data in tables that have relations with other tables using foreign keys. A relational database’s approach to data modeling is table-centric. Queries must use table joins to get data from multiple tables that have a relation between them. Apache Cassandra does not have the concept of foreign keys or relational integrity. Apache Cassandra’s data model is based around designing efficient queries; queries that don’t involve multiple tables. Relational databases normalize data to avoid duplication. Apache Cassandra in contrast de-normalizes data by duplicating data in multiple tables for a query-centric data model. If a Cassandra data model cannot fully integrate the complexity of relationships between the different entities for a particular query, client-side joins in application code may be used.
+
+Examples of Data Modeling
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+As an example, a ``magazine`` data set consists of data for magazines with attributes such as magazine id, magazine name, publication frequency, publication date, and publisher.  A basic query (Q1) for magazine data is to list all the magazine names including their publication frequency. As not all data attributes are needed for Q1 the data model would only consist of ``id`` ( for partition key), magazine name and publication frequency as shown in Figure 1.
+
+.. figure:: images/Figure_1_data_model.jpg
+
+Figure 1. Data Model for Q1
+
+Another query (Q2)  is to list all the magazine names by publisher.  For Q2 the data model would consist of an additional attribute ``publisher`` for the partition key. The ``id`` would become the clustering key for sorting within a partition.   Data model for Q2 is illustrated in Figure 2.
+
+.. figure:: images/Figure_2_data_model.jpg
+
+Figure 2. Data Model for Q2
+
+Designing Schema
+^^^^^^^^^^^^^^^^ 
+
+After the conceptual data model has been created a schema may be  designed for a query. For Q1 the following schema may be used.
+
+::
+
+ CREATE TABLE magazine_name (id int PRIMARY KEY, name text, publicationFrequency text)
+
+For Q2 the schema definition would include a clustering key for sorting.
+
+::
+
+ CREATE TABLE magazine_publisher (publisher text,id int,name text, publicationFrequency text,  
+ PRIMARY KEY (publisher, id)) WITH CLUSTERING ORDER BY (id DESC)
+
+Data Model Analysis
+^^^^^^^^^^^^^^^^^^^
+
+The data model is a conceptual model that must be analyzed and optimized based on storage, capacity, redundancy and consistency.  A data model may need to be modified as a result of the analysis. Considerations or limitations that are used in data model analysis include:
+
+- Partition Size
+- Data Redundancy
+- Disk space
+- Lightweight Transactions (LWT)
+
+The two measures of partition size are the number of values in a partition and partition size on disk. Though requirements for these measures may vary based on the application a general guideline is to keep number of values per partition to below 100,000 and disk space per partition to below 100MB.
+
+Data redundancies as duplicate data in tables and multiple partition replicates are to be expected in the design of a data model , but nevertheless should be kept in consideration as a parameter to keep to the minimum. LWT transactions (compare-and-set, conditional update) could affect performance and queries using LWT should be kept to the minimum. 
+
+Using Materialized Views
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. warning::  Materialized views (MVs) are experimental in the latest (4.0) release.  
+
+Materialized views (MVs) could be used to implement multiple queries for a single table. A materialized view is a table built from data from another table, the base table, with new primary key and new properties. Changes to the base table data automatically add and update data in a MV.  Different queries may be implemented using a materialized view as an MV's primary key differs from the base table. Queries are optimized by the primary key definition.
diff --git a/src/doc/3.11.11/_sources/development/ci.rst.txt b/src/doc/3.11.11/_sources/development/ci.rst.txt
new file mode 100644
index 0000000..4349259
--- /dev/null
+++ b/src/doc/3.11.11/_sources/development/ci.rst.txt
@@ -0,0 +1,84 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Jenkins CI Environment
+**********************
+
+About CI testing and Apache Cassandra
+=====================================
+
+Cassandra can be automatically tested using various test suites, that are either implemented based on JUnit or the `dtest <https://github.com/riptano/cassandra-dtest>`_ scripts written in Python. As outlined in :doc:`testing`, each kind of test suite addresses a different way how to test Cassandra. But in the end, all of them will be executed together on our CI platform at `builds.apache.org <https://builds.apache.org>`_, running `Jenkins <http://jenkins-ci.org>`_.
+
+
+
+Setting up your own Jenkins server
+==================================
+
+Jenkins is an open source solution that can be installed on a large number of platforms. Setting up a custom Jenkins instance for Cassandra may be desirable for users who have hardware to spare, or organizations that want to run Cassandra tests for custom patches before contribution.
+
+Please refer to the Jenkins download and documentation pages for details on how to get Jenkins running, possibly also including slave build executor instances. The rest of the document will focus on how to setup Cassandra jobs in your Jenkins environment.
+
+Required plugins
+----------------
+
+The following plugins need to be installed additionally to the standard plugins (git, ant, ..).
+
+You can install any missing plugins through the install manager.
+
+Go to ``Manage Jenkins -> Manage Plugins -> Available`` and install the following plugins and respective dependencies:
+
+* Copy Artifact Plugin
+* description setter plugin
+* Javadoc Plugin
+* Job DSL
+* Post build task
+* Publish Over SSH
+* JMH Report
+* Slack Notification Plugin
+* Test stability history
+* Throttle Concurrent Builds Plug-in
+* Timestamper
+
+
+Configure Throttle Category
+---------------------------
+
+Builds that are not containerized (e.g. cqlshlib tests and in-jvm dtests) use local resources for Cassandra (ccm). To prevent these builds running concurrently the ``Cassandra`` throttle category needs to be created.
+
+This is done under ``Manage Jenkins -> System Configuration -> Throttle Concurrent Builds``. Enter "Cassandra" for the ``Category Name`` and "1" for ``Maximum Concurrent Builds Per Node``.
+
+Setup seed job
+--------------
+
+Config ``New Item``
+
+* Name it ``Cassandra-Job-DSL``
+* Select ``Freestyle project``
+
+Under ``Source Code Management`` select Git using the repository: ``https://github.com/apache/cassandra-builds``
+
+Under ``Build``, confirm ``Add build step`` -> ``Process Job DSLs`` and enter at ``Look on Filesystem``: ``jenkins-dsl/cassandra_job_dsl_seed.groovy``
+
+Generated jobs will be created based on the Groovy script's default settings. You may want to override settings by checking ``This project is parameterized`` and add ``String Parameter`` for on the variables that can be found in the top of the script. This will allow you to setup jobs for your own repository and branches (e.g. working branches).
+
+**When done, confirm "Save"**
+
+You should now find a new entry with the given name in your project list. However, building the project will still fail and abort with an error message `"Processing DSL script cassandra_job_dsl_seed.groovy ERROR: script not yet approved for use"`. Goto ``Manage Jenkins`` -> ``In-process Script Approval`` to fix this issue. Afterwards you should be able to run the script and have it generate numerous new jobs based on the found branches and configured templates.
+
+Jobs are triggered by either changes in Git or are scheduled to execute periodically, e.g. on daily basis. Jenkins will use any available executor with the label "cassandra", once the job is to be run. Please make sure to make any executors available by selecting ``Build Executor Status`` -> ``Configure`` -> Add "``cassandra``" as label and save.
+
+Executors need to have "JDK 1.8 (latest)" installed. This is done under ``Manage Jenkins -> Global Tool Configuration -> JDK Installations…``. Executors also need to have the virtualenv package installed on their system.
+
diff --git a/src/doc/3.11.11/_sources/development/dependencies.rst.txt b/src/doc/3.11.11/_sources/development/dependencies.rst.txt
new file mode 100644
index 0000000..6dd1cc4
--- /dev/null
+++ b/src/doc/3.11.11/_sources/development/dependencies.rst.txt
@@ -0,0 +1,53 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Dependency Management
+*********************
+
+Managing libraries for Cassandra is a bit less straight forward compared to other projects, as the build process is based on ant, maven and manually managed jars. Make sure to follow the steps below carefully and pay attention to any emerging issues in the :doc:`ci` and reported related issues on Jira/ML, in case of any project dependency changes.
+
+As Cassandra is an Apache product, all included libraries must follow Apache's `software license requirements <https://www.apache.org/legal/resolved.html>`_.
+
+Required steps to add or update libraries
+=========================================
+
+* Add or replace jar file in ``lib`` directory
+* Add or update ``lib/license`` files
+* Update dependencies in ``build.xml``
+
+  * Add to ``parent-pom`` with correct version
+  * Add to ``all-pom`` if simple Cassandra dependency (see below)
+
+
+POM file types
+==============
+
+* **parent-pom** - contains all dependencies with the respective version. All other poms will refer to the artifacts with specified versions listed here.
+* **build-deps-pom(-sources)** + **coverage-deps-pom** - used by ``ant build`` compile target. Listed dependenices will be resolved and copied to ``build/lib/{jar,sources}`` by executing the ``maven-ant-tasks-retrieve-build`` target. This should contain libraries that are required for build tools (grammar, docs, instrumentation), but are not shipped as part of the Cassandra distribution.
+* **test-deps-pom** - refered by ``maven-ant-tasks-retrieve-test`` to retrieve and save dependencies to ``build/test/lib``. Exclusively used during JUnit test execution.
+* **all-pom** - pom for `cassandra-all.jar <https://mvnrepository.com/artifact/org.apache.cassandra/cassandra-all>`_ that can be installed or deployed to public maven repos via ``ant publish``
+
+
+Troubleshooting and conflict resolution
+=======================================
+
+Here are some useful commands that may help you out resolving conflicts.
+
+* ``ant realclean`` - gets rid of the build directory, including build artifacts.
+* ``mvn dependency:tree -f build/apache-cassandra-*-SNAPSHOT.pom -Dverbose -Dincludes=org.slf4j`` - shows transitive dependency tree for artifacts, e.g. org.slf4j. In case the command above fails due to a missing parent pom file, try running ``ant mvn-install``.
+* ``rm ~/.m2/repository/org/apache/cassandra/apache-cassandra/`` - removes cached local Cassandra maven artifacts
+
+
diff --git a/src/doc/3.11.11/_sources/development/documentation.rst.txt b/src/doc/3.11.11/_sources/development/documentation.rst.txt
new file mode 100644
index 0000000..dad3bec
--- /dev/null
+++ b/src/doc/3.11.11/_sources/development/documentation.rst.txt
@@ -0,0 +1,104 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+
+Working on Documentation
+*************************
+
+How Cassandra is documented
+===========================
+
+The official Cassandra documentation lives in the project's git repository. We use a static site generator, `Sphinx <http://www.sphinx-doc.org/>`_, to create pages hosted at `cassandra.apache.org <https://cassandra.apache.org/doc/latest/>`_. You'll also find developer centric content about Cassandra internals in our retired `wiki <https://wiki.apache.org/cassandra>`_ (not covered by this guide).
+
+Using a static site generator often requires to use a markup language instead of visual editors (which some people would call good news). Sphinx, the tool-set we use to generate our documentation, uses `reStructuredText <http://www.sphinx-doc.org/en/stable/rest.html>`_ for that. Markup languages allow you to format text by making use of certain syntax elements. Your document structure will also have to follow specific conventions. Feel free to take a look at `existing documents <..>`_ to get a better idea how we use reStructuredText to write our documents.
+
+So how do you actually start making contributions?
+
+GitHub based work flow
+======================
+
+*Recommended for shorter documents and minor changes on existing content (e.g. fixing typos or updating descriptions)*
+
+Follow these steps to contribute using GitHub. It's assumed that you're logged in with an existing account.
+
+1. Fork the GitHub mirror of the `Cassandra repository <https://github.com/apache/cassandra>`_
+
+.. image:: images/docs_fork.png
+
+2. Create a new branch that you can use to make your edits. It's recommended to have a separate branch for each of your working projects. It will also make it easier to create a pull request later to when you decide you’re ready to contribute your work.
+
+.. image:: images/docs_create_branch.png
+
+3. Navigate to document sources ``doc/source`` to find the ``.rst`` file to edit. The URL of the document should correspond  to the directory structure. New files can be created using the "Create new file" button:
+
+.. image:: images/docs_create_file.png
+
+4. At this point you should be able to edit the file using the GitHub web editor. Start by naming your file and add some content. Have a look at other existing ``.rst`` files to get a better idea what format elements to use.
+
+.. image:: images/docs_editor.png
+
+Make sure to preview added content before committing any changes.
+
+.. image:: images/docs_preview.png
+
+5. Commit your work when you're done. Make sure to add a short description of all your edits since the last time you committed before.
+
+.. image:: images/docs_commit.png
+
+6. Finally if you decide that you're done working on your branch, it's time to create a pull request!
+
+.. image:: images/docs_pr.png
+
+Afterwards the GitHub Cassandra mirror will list your pull request and you're done. Congratulations! Please give us some time to look at your suggested changes before we get back to you.
+
+
+Jira based work flow
+====================
+
+*Recommended for major changes*
+
+Significant changes to the documentation are best managed through our Jira issue tracker. Please follow the same `contribution guides <https://cassandra.apache.org/doc/latest/development/patches.html>`_ as for regular code contributions. Creating high quality content takes a lot of effort. It’s therefor always a good idea to create a ticket before you start and explain what you’re planing to do. This will create the opportunity for other contributors and committers to comment on your ideas and work so far. Eventually your patch gets a formal review before it is committed.
+
+Working on documents locally using Sphinx
+=========================================
+
+*Recommended for advanced editing*
+
+Using the GitHub web interface should allow you to use most common layout elements including images. More advanced formatting options and navigation elements depend on Sphinx to render correctly. Therefor it’s a good idea to setup Sphinx locally for any serious editing. Please follow the instructions in the Cassandra source directory at ``doc/README.md``. Setup is very easy (at least on OSX and Linux).
+
+Notes for committers
+====================
+
+Please feel free to get involved and merge pull requests created on the GitHub mirror if you're a committer. As this is a read-only repository,  you won't be able to merge a PR directly on GitHub. You'll have to commit the changes against the Apache repository with a comment that will close the PR when the committ syncs with GitHub.
+
+You may use a git work flow like this::
+
+   git remote add github https://github.com/apache/cassandra.git
+   git fetch github pull/<PR-ID>/head:<PR-ID>
+   git checkout <PR-ID>
+
+Now either rebase or squash the commit, e.g. for squashing::
+
+   git reset --soft origin/trunk
+   git commit --author <PR Author>
+
+Make sure to add a proper commit message including a "Closes #<PR-ID>" text to automatically close the PR.
+
+Publishing
+----------
+
+Details for building and publishing of the site at cassandra.apache.org can be found `here <https://github.com/apache/cassandra-website/blob/trunk/README.md>`_.
+
diff --git a/src/doc/3.11.11/_sources/development/gettingstarted.rst.txt b/src/doc/3.11.11/_sources/development/gettingstarted.rst.txt
new file mode 100644
index 0000000..c2f5ef3
--- /dev/null
+++ b/src/doc/3.11.11/_sources/development/gettingstarted.rst.txt
@@ -0,0 +1,60 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. highlight:: none
+..  _gettingstarted:
+
+Getting Started
+*************************
+
+Initial Contributions
+========================
+
+Writing a new feature is just one way to contribute to the Cassandra project.  In fact, making sure that supporting tasks, such as QA, documentation and helping users, keep up with the development of new features is an ongoing challenge for the project (and most open source projects). So, before firing up your IDE to create that new feature, we'd suggest you consider some of the following activities as a way of introducing yourself to the project and getting to know how things work.
+ * Add to or update the documentation
+ * Answer questions on the user list
+ * Review and test a submitted patch
+ * Investigate and fix a reported bug
+ * Create unit tests and d-tests
+
+Updating documentation
+========================
+
+The Cassandra documentation is maintained in the Cassandra source repository along with the Cassandra code base. To submit changes to the documentation, follow the standard process for submitting a patch (:ref:`patches`).
+
+Answering questions on the user list
+====================================
+
+Subscribe to the user list, look out for some questions you know the answer to and reply with an answer. Simple as that!
+See the `community <http://cassandra.apache.org/community/>`_ page for details on how to subscribe to the mailing list.
+
+Reviewing and testing a submitted patch
+=======================================
+
+Reviewing patches is not the sole domain of committers, if others have reviewed a patch it can reduce the load on the committers allowing them to write more great features or review more patches. Follow the instructions in :ref:`_development_how_to_review` or create a build with the patch and test it with your own workload. Add a comment to the JIRA ticket to let others know what you have done and the results of your work. (For example, "I tested this performance enhacement on our application's standard production load test and found a 3% improvement.")
+
+Investigate and/or fix a reported bug
+=====================================
+
+Often, the hardest work in fixing a bug is reproducing it. Even if you don't have the knowledge to produce a fix, figuring out a way to reliable reproduce an issues can be a massive contribution to getting a bug fixed. Document your method of reproduction in a JIRA comment or, better yet, produce an automated test that reproduces the issue and attach it to the ticket. If you go as far as producing a fix, follow the process for submitting a patch (:ref:`patches`).
+
+Create unit tests and Dtests
+============================
+
+Test coverage in Cassandra is improving but, as with most code bases, it could benefit from more automated test coverage. Before starting work in an area, consider reviewing and enhancing the existing test coverage. This will both improve your knowledge of the code before you start on an enhancement and reduce the chances of your change in introducing new issues. See :ref:`testing` and :ref:`patches` for more detail.
+
+
+
diff --git a/src/doc/3.11.11/_sources/development/how_to_commit.rst.txt b/src/doc/3.11.11/_sources/development/how_to_commit.rst.txt
index d956c72..d3de9e5 100644
--- a/src/doc/3.11.11/_sources/development/how_to_commit.rst.txt
+++ b/src/doc/3.11.11/_sources/development/how_to_commit.rst.txt
@@ -21,55 +21,131 @@
 
 If you are a committer, feel free to pick any process that works for you - so long as you are planning to commit the work yourself.
 
+Patch based Contribution
+------------------------
+
 Here is how committing and merging will usually look for merging and pushing for tickets that follow the convention (if patch-based):
 
-Hypothetical CASSANDRA-12345 ticket is a cassandra-3.0 based bug fix that requires different code for cassandra-3.3, and trunk. Contributor Jackie supplied a patch for the root branch (12345-3.0.patch), and patches for the remaining branches (12345-3.3.patch, 12345-trunk.patch).
+Hypothetical CASSANDRA-12345 ticket is a cassandra-3.0 based bug fix that requires different code for cassandra-3.11, cassandra-4.0, and trunk. Contributor Jackie supplied a patch for the root branch (12345-3.0.patch), and patches for the remaining branches (12345-3.11.patch, 12345-4.0.patch, 12345-trunk.patch).
 
 On cassandra-3.0:
-   #. ``git am -3 12345-3.0.patch`` (if we have a problem b/c of CHANGES.txt not merging anymore, we fix  it ourselves, in place)
+   #. ``git am -3 12345-3.0.patch`` (any problem b/c of CHANGES.txt not merging anymore, fix it in place)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
 
-On cassandra-3.3:
+On cassandra-3.11:
    #. ``git merge cassandra-3.0 -s ours``
-   #. ``git apply -3 12345-3.3.patch`` (likely to have an issue with CHANGES.txt here: fix it ourselves, then git add CHANGES.txt)
-   #. ``git commit —amend``
+   #. ``git apply -3 12345-3.11.patch`` (any issue with CHANGES.txt : fix and `git add CHANGES.txt`)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+   #. ``git commit --amend`` (Notice this will squash the 3.11 applied patch into the forward merge commit)
+
+On cassandra-4.0:
+   #. ``git merge cassandra-3.11 -s ours``
+   #. ``git apply -3 12345-4.0.patch`` (any issue with CHANGES.txt : fix and `git add CHANGES.txt`)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+   #. ``git commit --amend`` (Notice this will squash the 4.0 applied patch into the forward merge commit)
 
 On trunk:
-   #. ``git merge cassandra-3.3 -s ours``
-   #. ``git apply -3 12345-trunk.patch`` (likely to have an issue with CHANGES.txt here: fix it ourselves, then git add CHANGES.txt)
-   #. ``git commit —amend``
+   #. ``git merge cassandra-4.0 -s ours``
+   #. ``git apply -3 12345-trunk.patch`` (any issue with CHANGES.txt : fix and `git add CHANGES.txt`)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+   #. ``git commit --amend`` (Notice this will squash the trunk applied patch into the forward merge commit)
 
 On any branch:
-   #. ``git push origin cassandra-3.0 cassandra-3.3 trunk —atomic``
+   #. ``git push origin cassandra-3.0 cassandra-3.11 cassandra-4.0 trunk --atomic -n`` (dryrun check)
+   #. ``git push origin cassandra-3.0 cassandra-3.11 cassandra-4.0 trunk --atomic``
+
+
+Git branch based Contribution
+-----------------------------
 
 Same scenario, but a branch-based contribution:
 
 On cassandra-3.0:
-   #. ``git cherry-pick <sha-of-3.0-commit>`` (if we have a problem b/c of CHANGES.txt not merging anymore, we fix it ourselves, in place)
+   #. ``git cherry-pick <sha-of-3.0-commit>`` (any problem b/c of CHANGES.txt not merging anymore, fix it in place)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
 
-On cassandra-3.3:
+On cassandra-3.11:
    #. ``git merge cassandra-3.0 -s ours``
-   #. ``git format-patch -1 <sha-of-3.3-commit>``
-   #. ``git apply -3 <sha-of-3.3-commit>.patch`` (likely to have an issue with CHANGES.txt here: fix it ourselves, then git add CHANGES.txt)
-   #. ``git commit —amend``
+   #. ``git format-patch -1 <sha-of-3.11-commit>`` (alternative to format-patch and apply is `cherry-pick -n`)
+   #. ``git apply -3 <sha-of-3.11-commit>.patch`` (any issue with CHANGES.txt : fix and `git add CHANGES.txt`)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+   #. ``git commit --amend`` (Notice this will squash the 3.11 applied patch into the forward merge commit)
+
+On cassandra-4.0:
+   #. ``git merge cassandra-3.11 -s ours``
+   #. ``git format-patch -1 <sha-of-4.0-commit>`` (alternative to format-patch and apply is `cherry-pick -n`)
+   #. ``git apply -3 <sha-of-4.0-commit>.patch`` (any issue with CHANGES.txt : fix and `git add CHANGES.txt`)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+   #. ``git commit --amend`` (Notice this will squash the 4.0 applied patch into the forward merge commit)
 
 On trunk:
-   #. ``git merge cassandra-3.3 -s ours``
-   #. ``git format-patch -1 <sha-of-trunk-commit>``
-   #. ``git apply -3 <sha-of-trunk-commit>.patch`` (likely to have an issue with CHANGES.txt here: fix it ourselves, then git add CHANGES.txt)
-   #. ``git commit —amend``
+   #. ``git merge cassandra-4.0 -s ours``
+   #. ``git format-patch -1 <sha-of-trunk-commit>`` (alternative to format-patch and apply is `cherry-pick -n`)
+   #. ``git apply -3 <sha-of-trunk-commit>.patch`` (any issue with CHANGES.txt : fix and `git add CHANGES.txt`)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+   #. ``git commit --amend`` (Notice this will squash the trunk applied patch into the forward merge commit)
 
 On any branch:
-   #. ``git push origin cassandra-3.0 cassandra-3.3 trunk —atomic``
+   #. ``git push origin cassandra-3.0 cassandra-3.11 cassandra-4.0 trunk --atomic -n`` (dryrun check)
+   #. ``git push origin cassandra-3.0 cassandra-3.11 cassandra-4.0 trunk --atomic``
+
+
+Contributions only for release branches
+---------------------------------------
+
+If the patch is for an older branch, and doesn't impact later branches (such as trunk), we still need to merge up.
+
+On cassandra-3.0:
+   #. ``git cherry-pick <sha-of-3.0-commit>`` (any problem b/c of CHANGES.txt not merging anymore, fix it in place)
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+
+On cassandra-3.11:
+   #. ``git merge cassandra-3.0 -s ours``
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+
+On cassandra-4.0:
+   #. ``git merge cassandra-3.11 -s ours``
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+
+On trunk:
+   #. ``git merge cassandra-4.0 -s ours``
+   #. ``ant realclean && ant jar build-test`` (rebuild to make sure code compiles)
+
+On any branch:
+   #. ``git push origin cassandra-3.0 cassandra-3.11 cassandra-4.0 trunk --atomic -n`` (dryrun check)
+   #. ``git push origin cassandra-3.0 cassandra-3.11 cassandra-4.0 trunk --atomic``
+
+
+Tips
+----
+
+.. tip::
+
+   A template for commit messages:
+
+  ::
+
+      <One sentence description, usually Jira title or CHANGES.txt summary>
+      <Optional lengthier description>
+
+      patch by <Authors>; reviewed by <Reviewers> for CASSANDRA-#####
+
+
+      Co-authored-by: Name1 <email1>
+      Co-authored-by: Name2 <email2>
 
 .. tip::
 
    Notes on git flags:
    ``-3`` flag to am and apply will instruct git to perform a 3-way merge for you. If a conflict is detected, you can either resolve it manually or invoke git mergetool - for both am and apply.
 
-   ``—atomic`` flag to git push does the obvious thing: pushes all or nothing. Without the flag, the command is equivalent to running git push once per each branch. This is nifty in case a race condition happens - you won’t push half the branches, blocking other committers’ progress while you are resolving the issue.
+   ``--atomic`` flag to git push does the obvious thing: pushes all or nothing. Without the flag, the command is equivalent to running git push once per each branch. This is nifty in case a race condition happens - you won’t push half the branches, blocking other committers’ progress while you are resolving the issue.
 
 .. tip::
 
    The fastest way to get a patch from someone’s commit in a branch on GH - if you don’t have their repo in remotes -  is to append .patch to the commit url, e.g.
    curl -O https://github.com/apache/cassandra/commit/7374e9b5ab08c1f1e612bf72293ea14c959b0c3c.patch
 
+.. tip::
+
+   ``git cherry-pick -n <sha-of-X.X-commit>`` can be used in place of the ``git format-patch -1 <sha-of-X.X-commit> ; git apply -3 <sha-of-X.X-commit>.patch`` steps.
diff --git a/src/doc/3.11.11/_sources/development/release_process.rst.txt b/src/doc/3.11.11/_sources/development/release_process.rst.txt
new file mode 100644
index 0000000..e409141
--- /dev/null
+++ b/src/doc/3.11.11/_sources/development/release_process.rst.txt
@@ -0,0 +1,244 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. highlight:: none
+..  release_process:
+
+Release Process
+***************
+
+.. contents:: :depth: 3
+
+| 
+|
+
+
+
+The steps for Release Managers to create, vote and publish releases for Apache Cassandra.
+
+While a committer can perform the initial steps of creating and calling a vote on a proposed release, only a PMC member can complete the process of publishing and announcing the release.
+
+
+Prerequisites
+=============
+
+Background docs
+ * `ASF Release Policy <http://www.apache.org/legal/release-policy.html>`_
+ * `ASF Release Distribution Policy <http://www.apache.org/dev/release-distribution>`_
+ * `ASF Release Best Practices <http://www.eu.apache.org/dev/release-publishing.html>`_
+
+
+A debian based linux OS is required to run the release steps from. Debian-based distros provide the required RPM, dpkg and repository management tools.
+
+
+Create and publish your GPG key
+-------------------------------
+
+To create a GPG key, follow the `guidelines <http://www.apache.org/dev/openpgp.html>`_.
+The key must be 4096 bit RSA.
+Include your public key in::
+
+  https://dist.apache.org/repos/dist/release/cassandra/KEYS
+
+
+Publish your GPG key in a PGP key server, such as `MIT Keyserver <http://pgp.mit.edu/>`_.
+
+Artifactory account with access to Apache organisation
+------------------------------------------------------
+
+Publishing a successfully voted upon release requires Artifactory access using your Apache LDAP credentials. Please verify that you have logged into Artifactory `here <https://apache.jfrog.io/>`_.
+
+
+Create Release Artifacts
+========================
+
+Any committer can perform the following steps to create and call a vote on a proposed release.
+
+Check that there are no open urgent jira tickets currently being worked on. Also check with the PMC that there's security vulnerabilities currently being worked on in private.'
+Current project habit is to check the timing for a new release on the dev mailing lists.
+
+Perform the Release
+-------------------
+
+Run the following commands to generate and upload release artifacts, to the ASF nexus staging repository and dev distribution location::
+
+
+    cd ~/git
+    git clone https://github.com/apache/cassandra-builds.git
+    git clone https://github.com/apache/cassandra.git
+
+    # Edit the variables at the top of the `prepare_release.sh` file
+    edit cassandra-builds/cassandra-release/prepare_release.sh
+
+    # Ensure your 4096 RSA key is the default secret key
+    edit ~/.gnupg/gpg.conf # update the `default-key` line
+    edit ~/.rpmmacros # update the `%gpg_name <key_id>` line
+
+    # Ensure DEBFULLNAME and DEBEMAIL is defined and exported, in the debian scripts configuration
+    edit ~/.devscripts
+
+    # The prepare_release.sh is run from the actual cassandra git checkout,
+    # on the branch/commit that we wish to tag for the tentative release along with version number to tag.
+    cd cassandra
+    git switch cassandra-<version-branch>
+
+    # The following cuts the release artifacts (including deb and rpm packages) and deploy to staging environments
+    ../cassandra-builds/cassandra-release/prepare_release.sh -v <version>
+
+Follow the prompts.
+
+If building the deb or rpm packages fail, those steps can be repeated individually using the `-d` and `-r` flags, respectively.
+
+Call for a Vote
+===============
+
+Fill out the following email template and send to the dev mailing list::
+
+    I propose the following artifacts for release as <version>.
+
+    sha1: <git-sha>
+
+    Git: https://gitbox.apache.org/repos/asf?p=cassandra.git;a=shortlog;h=refs/tags/<version>-tentative
+
+    Artifacts: https://repository.apache.org/content/repositories/orgapachecassandra-<nexus-id>/org/apache/cassandra/apache-cassandra/<version>/
+
+    Staging repository: https://repository.apache.org/content/repositories/orgapachecassandra-<nexus-id>/
+
+    The distribution packages are available here: https://dist.apache.org/repos/dist/dev/cassandra/${version}/
+
+    The vote will be open for 72 hours (longer if needed).
+
+    [1]: (CHANGES.txt) https://git1-us-west.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=CHANGES.txt;hb=<version>-tentative
+    [2]: (NEWS.txt) https://git1-us-west.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=NEWS.txt;hb=<version>-tentative
+
+
+
+Post-vote operations
+====================
+
+Any PMC member can perform the following steps to formalize and publish a successfully voted release.
+
+Publish Artifacts
+-----------------
+
+Run the following commands to publish the voted release artifacts::
+
+    cd ~/git
+    # edit the variables at the top of the `finish_release.sh` file
+    edit cassandra-builds/cassandra-release/finish_release.sh
+
+    # After cloning cassandra-builds repo, `finish_release.sh` is run from the actual cassandra git checkout,
+    # on the tentative release tag that we wish to tag for the final release version number tag.
+    cd ~/git/cassandra/
+    git checkout <version>-tentative
+    ../cassandra-builds/cassandra-release/finish_release.sh -v <version>
+
+If successful, take note of the email text output which can be used in the next section "Send Release Announcement".
+The output will also list the next steps that are required.
+
+
+Promote Nexus Repository
+------------------------
+
+* Login to `Nexus repository <https://repository.apache.org>`_ again.
+* Click on "Staging" and then on the repository with id "cassandra-staging".
+* Find your closed staging repository, right click on it and choose "Promote".
+* Select the "Releases" repository and click "Promote".
+* Next click on "Repositories", select the "Releases" repository and validate that your artifacts exist as you expect them.
+
+
+Update and Publish Website
+--------------------------
+
+See `docs <https://svn.apache.org/repos/asf/cassandra/site/src/README>`_ for building and publishing the website.
+
+Also update the CQL doc if appropriate.
+
+Release version in JIRA
+-----------------------
+
+Release the JIRA version.
+
+* In JIRA go to the version that you want to release and release it.
+* Create a new version, if it has not been done before.
+
+Update to Next Development Version
+----------------------------------
+
+Update the codebase to point to the next development version::
+
+    cd ~/git/cassandra/
+    git checkout cassandra-<version-branch>
+    edit build.xml          # update `<property name="base.version" value="…"/> `
+    edit debian/changelog   # add entry for new version
+    edit CHANGES.txt        # add entry for new version, move up any entries that were added after the release was cut and staged
+    git commit -m "Increment version to <next-version>" build.xml debian/changelog CHANGES.txt
+
+    # …and forward merge and push per normal procedure
+
+
+Wait for Artifacts to Sync
+--------------------------
+
+Wait for the artifacts to sync at https://downloads.apache.org/cassandra/
+
+Send Release Announcement
+-------------------------
+
+Fill out the following email template and send to both user and dev mailing lists::
+
+    The Cassandra team is pleased to announce the release of Apache Cassandra version <version>.
+
+    Apache Cassandra is a fully distributed database. It is the right choice
+    when you need scalability and high availability without compromising
+    performance.
+
+     http://cassandra.apache.org/
+
+    Downloads of source and binary distributions are listed in our download
+    section:
+
+     http://cassandra.apache.org/download/
+
+    This version is <the first|a bug fix> release[1] on the <version-base> series. As always,
+    please pay attention to the release notes[2] and let us know[3] if you
+    were to encounter any problem.
+
+    Enjoy!
+
+    [1]: (CHANGES.txt) https://git1-us-west.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=CHANGES.txt;hb=<version>
+    [2]: (NEWS.txt) https://git1-us-west.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=NEWS.txt;hb=<version>
+    [3]: https://issues.apache.org/jira/browse/CASSANDRA
+
+Update Slack Cassandra topic
+---------------------------
+
+Update topic in ``cassandra`` :ref:`Slack room <slack>`
+    /topic cassandra.apache.org | Latest releases: 3.11.4, 3.0.18, 2.2.14, 2.1.21 | ask, don't ask to ask
+
+Tweet from @Cassandra
+---------------------
+
+Tweet the new release, from the @Cassandra account
+
+Delete Old Releases
+-------------------
+
+As described in `When to Archive <http://www.apache.org/dev/release.html#when-to-archive>`_.
+
+An example of removing old releases::
+
+    svn rm https://dist.apache.org/repos/dist/release/cassandra/<previous_version>
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/development/testing.rst.txt b/src/doc/3.11.11/_sources/development/testing.rst.txt
index 3c84d8e..a0d2ae4 100644
--- a/src/doc/3.11.11/_sources/development/testing.rst.txt
+++ b/src/doc/3.11.11/_sources/development/testing.rst.txt
@@ -56,6 +56,11 @@
 
 Test that consume a significant amount of time during execution can be found in the ``test/long`` directory and executed as a regular JUnit test or standalone program. Except for the execution time, there’s nothing really special about them. However, ant will execute tests under ``test/long`` only when using the ``ant long-test`` target.
 
+Flaky tests
+-----------
+
+If a test failure is difficult to reproduce you can always use a shell loop, circle repeat strategy and similar solutions. At the JUnit level ``RepeatableRunner`` will let you run a JUnit class N times for convenience. On tests that are fast this is a much faster way to iterate than doing it at the shell level. Beware of tests that modify singleton state or similar as they won't work.
+
 DTests
 ======
 
@@ -83,7 +88,83 @@
 Another tool available on github is `cstar_perf <https://github.com/datastax/cstar_perf>`_ that can be used for intensive performance testing in large clusters or locally. Please refer to the project page on how to set it up and how to use it.
 
 CircleCI
---------
-Cassandra ships with a default `CircleCI <https://circleci.com>`_ configuration, to enable running tests on your branches, you need to go the CircleCI website, click "Login" and log in with your github account. Then you need to give CircleCI permission to watch your repositories. Once you have done that, you can optionally configure CircleCI to run tests in parallel - click "Projects", then your github account and then click the settings for the project. If you leave the parallelism at 1 for Cassandra, only ``ant eclipse-warnings`` and ``ant test`` will be run. If you up the parallelism to 4, it also runs ``ant long-test``, ``ant test-compression`` and ``ant stress-test``
+========
+
+Cassandra ships with a default `CircleCI <https://circleci.com>`_ configuration, to enable running tests on your branches, you need to go the CircleCI website, click "Login" and log in with your github account. Then you need to give CircleCI permission to watch your repositories. Once you have done that, you can optionally configure CircleCI to run tests in parallel - click "Projects", then your github account and then click the settings for the project. If you leave the parallelism at 1 for Cassandra, only ``ant eclipse-warnings`` and ``ant test`` will be run. If you up the parallelism to 4, it also runs ``ant long-test``, ``ant test-compression`` and ``ant stress-test``.
+
+The configuration for CircleCI is in the ``.circleci/config.yml`` file. This configuration file is meant to use low resources, you can find equivalent configuration files using more resources in the same ``.circleci`` directory. Please read the ``readme.md`` file in that directory for further information. Note that the higher resources are not available in the free tier of CircleCI.
+
+The optional ``repeated_utest``/``repeated_dtest`` CircleCI jobs run a specific JUnit/Python test repeatedly. In an analogous way, upgrade tests can be run repeatedly with the jobs ``repeated_upgrade_dtest``/``repeated_jvm_upgrade_dtest``. This is useful to verify that a certain test is stable. It's usually a good idea to run these jobs when adding or modifying a test. To specify what test should be run and the number of repetitions you should edit the related evironment variables in the CircleCI configuration file:
+
++----------------------------------------------+---------------------------------------------------------------+
+| Variable                                     | Description                                                   |
++==============================================+===============================================================+
+|``REPEATED_UTEST_TARGET``                     | The Ant test target to run, for example:                      |
+|                                              |                                                               |
+|                                              | * ``testsome``                                                |
+|                                              | * ``test-jvm-dtest-some``                                     |
+|                                              | * ``test-cdc``                                                |
+|                                              | * ``test-compression``                                        |
+|                                              | * ``test-system-keyspace-directory``                          |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UTEST_CLASS``                      | The name of the Java test class to be run multiple times, for |
+|                                              | example:                                                      |
+|                                              |                                                               |
+|                                              | * ``org.apache.cassandra.cql3.ViewTest``                      |
+|                                              | * ``org.apache.cassandra.distributed.test.PagingTest``        |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UTEST_METHODS``                    | The optional specific methods within ``REPEATED_UTEST_CLASS`` |
+|                                              | to be run, for example:                                       |
+|                                              |                                                               |
+|                                              | * ``testCompoundPartitionKey``                                |
+|                                              | * ``testCompoundPartitionKey,testStaticTable``                |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UTEST_COUNT``                      | The number of times that the repeated Java test should be run |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UTEST_STOP_ON_FAILURE``            | Whether the utest iteration should stop on the first failure  |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_DTEST_NAME``                       | The Python dtest to be run multiple times, for example:       |
+|                                              |                                                               |
+|                                              | * ``cqlsh_tests/test_cqlsh.py``                               |
+|                                              | * ``cqlsh_tests/test_cqlsh.py::TestCqlshSmoke``               |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_DTEST_VNODES``                     | Whether the repeated Python dtest should use vnodes           |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_DTEST_COUNT``                      | The number of times that the repeated Python dtest should be  |
+|                                              | run                                                           |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_DTEST_STOP_ON_FAILURE``            | Whether the dtest iteration should stop on the first failure  |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UPGRADE_DTEST_NAME``               | A Python upgrade dtest to be run multiple times, for example: |
+|                                              |                                                               |
+|                                              | * ``upgrade_tests/cql_tests.py``                              |
+|                                              | * ``upgrade_tests/repair_test.py``                            |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UPGRADE_DTEST_COUNT``              | The number of times that the repeated Python upgrade dtest    |
+|                                              | should be run                                                 |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_UPGRADE_DTEST_STOP_ON_             | Whether the Python upgrade dtest iteration should stop on the |
+|FAILURE``                                     | first failure                                                 |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_JVM_UPGRADE_DTEST_CLASS``          | The name of JVM upgrade dtest class to be run multiple times, |
+|                                              | for example:                                                  |
+|                                              |                                                               |
+|                                              | * | ``org.apache.cassandra.distributed.upgrade.``             |
+|                                              |   | ``MixedModeAvailabilityV30Test``                          |
+|                                              | * | ``org.apache.cassandra.distributed.upgrade.``             |
+|                                              |   | ``MixedModeConsistencyV3XTest``                           |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_JVM_UPGRADE_DTEST_METHODS``        | The optional specific methods within                          |
+|                                              | ``REPEATED_JVM_UPGRADE_DTEST_CLASS`` to be run, for example:  |
+|                                              |                                                               |
+|                                              | * ``testAvailabilityV30ToV4``                                 |
+|                                              | * ``testAvailabilityV30ToV3X,testAvailabilityV30ToV4``        |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_JVM_UPGRADE_DTEST_COUNT``          | The number of times that the repeated JVM upgrade dtest       |
+|                                              | should be run                                                 |
++----------------------------------------------+---------------------------------------------------------------+
+|``REPEATED_JVM_UPGRADE_DTEST_STOP_ON_FAILURE``| Whether the JVM upgrade dtest iteration should stop on the    |
+|                                              | first failure                                                 |
++----------------------------------------------+---------------------------------------------------------------+
 
 
diff --git a/src/doc/3.11.11/_sources/getting_started/production.rst.txt b/src/doc/3.11.11/_sources/getting_started/production.rst.txt
new file mode 100644
index 0000000..fe0c4a5
--- /dev/null
+++ b/src/doc/3.11.11/_sources/getting_started/production.rst.txt
@@ -0,0 +1,156 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Production Recommendations
+----------------------------
+
+The ``cassandra.yaml`` and ``jvm.options`` files have a number of notes and recommendations for production usage.  This page
+expands on some of the notes in these files with additional information.
+
+Tokens
+^^^^^^^
+
+Using more than 1 token (referred to as vnodes) allows for more flexible expansion and more streaming peers when
+bootstrapping new nodes into the cluster.  This can limit the negative impact of streaming (I/O and CPU overhead)
+as well as allow for incremental cluster expansion.
+
+As a tradeoff, more tokens will lead to sharing data with more peers, which can result in decreased availability.  To learn more about this we
+recommend reading `this paper <https://github.com/jolynch/python_performance_toolkit/raw/master/notebooks/cassandra_availability/whitepaper/cassandra-availability-virtual.pdf>`_.
+
+The number of tokens can be changed using the following setting:
+
+``num_tokens: 16``
+
+
+Here are the most common token counts with a brief explanation of when and why you would use each one.
+
++-------------+---------------------------------------------------------------------------------------------------+
+| Token Count | Description                                                                                       |
++=============+===================================================================================================+
+| 1           | Maximum availablility, maximum cluster size, fewest peers,                                        |
+|             | but inflexible expansion.  Must always                                                            |
+|             | double size of cluster to expand and remain balanced.                                             |
++-------------+---------------------------------------------------------------------------------------------------+
+| 4           | A healthy mix of elasticity and availability.  Recommended for clusters which will eventually     |
+|             | reach over 30 nodes.  Requires adding approximately 20% more nodes to remain balanced.            |
+|             | Shrinking a cluster may result in cluster imbalance.                                              |
++-------------+---------------------------------------------------------------------------------------------------+
+| 16          | Best for heavily elastic clusters which expand and shrink regularly, but may have issues          |
+|             | availability with larger clusters.  Not recommended for clusters over 50 nodes.                   |
++-------------+---------------------------------------------------------------------------------------------------+
+
+
+In addition to setting the token count, it's extremely important that ``allocate_tokens_for_local_replication_factor`` be
+set as well, to ensure even token allocation.
+
+.. _read-ahead:
+
+Read Ahead
+^^^^^^^^^^^
+
+Read ahead is an operating system feature that attempts to keep as much data loaded in the page cache as possible.  The
+goal is to decrease latency by using additional throughput on reads where the latency penalty is high due to seek times
+on spinning disks.  By leveraging read ahead, the OS can pull additional data into memory without the cost of additional
+seeks.  This works well when available RAM is greater than the size of the hot dataset, but can be problematic when the
+hot dataset is much larger than available RAM.  The benefit of read ahead decreases as the size of your hot dataset gets
+bigger in proportion to available memory.
+
+With small partitions (usually tables with no partition key, but not limited to this case) and solid state drives, read
+ahead can increase disk usage without any of the latency benefits, and in some cases can result in up to
+a 5x latency and throughput performance penalty.  Read heavy, key/value tables with small (under 1KB) rows are especially
+prone to this problem.
+
+We recommend the following read ahead settings:
+
++----------------+-------------------------+
+| Hardware       | Initial Recommendation  |
++================+=========================+
+|Spinning Disks  | 64KB                    |
++----------------+-------------------------+
+|SSD             | 4KB                     |
++----------------+-------------------------+
+
+Read ahead can be adjusted on Linux systems by using the `blockdev` tool.
+
+For example, we can set read ahead of ``/dev/sda1` to 4KB by doing the following::
+
+    blockdev --setra 8 /dev/sda1
+
+**Note**: blockdev accepts the number of 512 byte sectors to read ahead.  The argument of 8 above is equivilent to 4KB.
+
+Since each system is different, use the above recommendations as a starting point and tuning based on your SLA and
+throughput requirements.  To understand how read ahead impacts disk resource usage we recommend carefully reading through the
+:ref:`troubleshooting <use-os-tools>` portion of the documentation.
+
+
+Compression
+^^^^^^^^^^^^
+
+Compressed data is stored by compressing fixed size byte buffers and writing the data to disk.  The buffer size is
+determined by the  ``chunk_length_in_kb`` element in the compression map of the schema settings.
+
+The default setting is 16KB starting with Cassandra 4.0.
+
+Since the entire compressed buffer must be read off disk, using too high of a compression chunk length can lead to
+significant overhead when reading small records.  Combined with the default read ahead setting this can result in massive
+read amplification for certain workloads.
+
+LZ4Compressor is the default and recommended compression algorithm.
+
+There is additional information on this topic on `The Last Pickle Blog <https://thelastpickle.com/blog/2018/08/08/compression_performance.html>`_.
+
+Compaction
+^^^^^^^^^^^^
+
+There are different :ref:`compaction <compaction>` strategies available for different workloads.
+We recommend reading up on the different strategies to understand which is the best for your environment.  Different tables
+may (and frequently do) use different compaction strategies on the same cluster.
+
+Encryption
+^^^^^^^^^^^
+
+It is significantly easier to set up peer to peer encryption and client server encryption when setting up your production
+cluster as opposed to setting it up once the cluster is already serving production traffic.  If you are planning on using network encryption
+eventually (in any form), we recommend setting it up now.  Changing these configurations down the line is not impossible,
+but mistakes can result in downtime or data loss.
+
+Ensure Keyspaces are Created with NetworkTopologyStrategy
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Production clusters should never use SimpleStrategy.  Production keyspaces should use the NetworkTopologyStrategy (NTS).
+
+For example::
+
+    create KEYSPACE mykeyspace WITH replication =
+    {'class': 'NetworkTopologyStrategy', 'datacenter1': 3};
+
+NetworkTopologyStrategy allows Cassandra to take advantage of multiple racks and data centers.
+
+Configure Racks and Snitch
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+**Correctly configuring or changing racks after a cluster has been provisioned is an unsupported process**.  Migrating from
+a single rack to multiple racks is also unsupported and can result in data loss.
+
+Using ``GossipingPropertyFileSnitch`` is the most flexible solution for on premise or mixed cloud environments.  ``Ec2Snitch``
+is reliable for AWS EC2 only environments.
+
+
+
+
+
+
+
diff --git a/src/doc/3.11.11/_sources/glossary.rst.txt b/src/doc/3.11.11/_sources/glossary.rst.txt
new file mode 100644
index 0000000..7f1d92f
--- /dev/null
+++ b/src/doc/3.11.11/_sources/glossary.rst.txt
@@ -0,0 +1,35 @@
+.. glossary::
+
+Glossary
+========
+	Cassandra
+	   Apache Cassandra is a distributed, high-available, eventually consistent NoSQL open-source database.
+	
+	cluster
+	   Two or more database instances that exchange messages using the gossip protocol.
+
+	commitlog
+	   A file to which the database appends changed data for recovery in the event of a hardware failure.
+
+	datacenter
+	   A group of related nodes that are configured together within a cluster for replication and workload segregation purposes. 
+  	   Not necessarily a separate location or physical data center. Datacenter names are case-sensitive and cannot be changed.
+
+	gossip
+	   A peer-to-peer communication protocol for exchanging location and state information between nodes.
+	
+	hint
+	   One of the three ways, in addition to read-repair and full/incremental anti-entropy repair, that Cassandra implements the eventual consistency guarantee that all updates are eventually received by all replicas.
+
+	listen address
+	   Address or interface to bind to and tell other Cassandra nodes to connect to
+
+	seed node
+	   A seed node is used to bootstrap the gossip process for new nodes joining a cluster. To learn the topology of the ring, a joining node contacts one of the nodes in the -seeds list in cassandra. yaml. The first time you bring up a node in a new cluster, only one node is the seed node.
+
+	snitch
+	   The mapping from the IP addresses of nodes to physical and virtual locations, such as racks and data centers. There are several types of snitches. 
+	   The type of snitch affects the request routing mechanism.
+
+	SSTable
+	   An SSTable provides a persistent,ordered immutable map from keys to values, where both keys and values are arbitrary byte strings.
diff --git a/src/doc/3.11.11/_sources/new/auditlogging.rst.txt b/src/doc/3.11.11/_sources/new/auditlogging.rst.txt
new file mode 100644
index 0000000..bf79758
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/auditlogging.rst.txt
@@ -0,0 +1,510 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Audit Logging
+-------------
+
+Audit Logging is a new feature in Apache Cassandra 4.0 (`CASSANDRA-12151
+<https://issues.apache.org/jira/browse/CASSANDRA-12151>`_). All database activity is logged to a directory in the local filesystem and the audit log files are rolled periodically. All database operations are monitored and recorded.  Audit logs are stored in local directory files instead of the database itself as it provides several benefits, some of which are:
+
+- No additional database capacity is needed to store audit logs
+- No query tool is required while storing the audit logs in the database would require a query tool
+- Latency of database operations is not affected; no performance impact
+- It is easier to implement file based logging than database based logging
+
+What does Audit Logging Log?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Audit logging logs:
+
+1. All authentication which includes successful and failed login attempts
+2. All database command requests to CQL. Both failed and successful CQL is logged
+
+More specifically an audit log entry could be one of two types:
+
+a) CQL Audit Log Entry Type or
+b) Common Audit Log Entry Type
+
+Each of these types comprises of several database operations. The CQL Audit Log Entry Type could be one of the following; the category of the CQL audit log entry type is listed in parentheses.
+
+1. SELECT(QUERY),
+2. UPDATE(DML),
+3. DELETE(DML),
+4. TRUNCATE(DDL),
+5. CREATE_KEYSPACE(DDL),
+6. ALTER_KEYSPACE(DDL),
+7. DROP_KEYSPACE(DDL),
+8. CREATE_TABLE(DDL),
+9. DROP_TABLE(DDL),
+10. PREPARE_STATEMENT(PREPARE),
+11. DROP_TRIGGER(DDL),
+12. LIST_USERS(DCL),
+13. CREATE_INDEX(DDL),
+14. DROP_INDEX(DDL),
+15. GRANT(DCL),
+16. REVOKE(DCL),
+17. CREATE_TYPE(DDL),
+18. DROP_AGGREGATE(DDL),
+19. ALTER_VIEW(DDL),
+20. CREATE_VIEW(DDL),
+21. DROP_ROLE(DCL),
+22. CREATE_FUNCTION(DDL),
+23. ALTER_TABLE(DDL),
+24. BATCH(DML),
+25. CREATE_AGGREGATE(DDL),
+26. DROP_VIEW(DDL),
+27. DROP_TYPE(DDL),
+28. DROP_FUNCTION(DDL),
+29. ALTER_ROLE(DCL),
+30. CREATE_TRIGGER(DDL),
+31. LIST_ROLES(DCL),
+32. LIST_PERMISSIONS(DCL),
+33. ALTER_TYPE(DDL),
+34. CREATE_ROLE(DCL),
+35. USE_KEYSPACE (OTHER).
+
+The Common Audit Log Entry Type could be one of the following; the category of the Common audit log entry type is listed in parentheses.
+
+1. REQUEST_FAILURE(ERROR),
+2. LOGIN_ERROR(AUTH),
+3. UNAUTHORIZED_ATTEMPT(AUTH),
+4. LOGIN_SUCCESS (AUTH).
+
+What Audit Logging does not Log?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Audit logging does not log:
+
+1. Configuration changes made in ``cassandra.yaml``
+2. Nodetool Commands
+3. Passwords mentioned as part of DCL statements. Instead everything after the appearance of the word password in DCL
+statements is obfuscated as ******* as well as in failed to parse statements.
+
+Limitations
+^^^^^^^^^^^
+
+Executing prepared statements will log the query as provided by the client in the prepare call, along with the execution
+timestamp and all other attributes (see below). Actual values bound for prepared statement execution will not show up
+in the audit log.
+
+Audit Logging is Flexible and Configurable
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Audit logging is flexible and configurable in ``cassandra.yaml`` as follows:
+
+- Keyspaces and tables to be monitored and audited may be specified.
+- Users to be included/excluded may be specified. By default all users are audit logged.
+- Categories of operations to audit or exclude may be specified.
+- The frequency at which to roll the log files may be specified. Default frequency is hourly.
+
+Configuring Audit Logging
+^^^^^^^^^^^^^^^^^^^^^^^^^
+Audit Logging is configured on each node separately. Audit Logging is configured in ``cassandra.yaml`` in the ``audit_logging_options`` setting.
+The settings may be same/different on each node.
+
+Enabling Audit Logging
+**********************
+Audit logging is enabled by setting the ``enabled``  option to ``true`` in the ``audit_logging_options`` setting.
+
+::
+
+ audit_logging_options:
+    enabled: true
+
+Setting the Logger
+******************
+The audit logger is set with the ``logger`` option.
+
+::
+
+ logger:
+ - class_name: BinAuditLogger
+
+Two types of audit loggers are supported: ``FileAuditLogger`` and ``BinAuditLogger``.
+``BinAuditLogger`` is the default setting.  The ``BinAuditLogger`` is an efficient way to log events to file in a binary format.
+
+``FileAuditLogger`` is synchronous, file-based audit logger; just uses the standard logging mechanism. ``FileAuditLogger`` logs events to ``audit/audit.log`` file using ``slf4j`` logger.
+
+The ``NoOpAuditLogger`` is a No-Op implementation of the audit logger to be used as a default audit logger when audit logging is disabled.
+
+*Recommendation* ``BinAuditLogger`` is a community recommended logger considering the performance.
+
+It is possible to configure your custom logger implementation by injecting a map of property keys and their respective values. Default `IAuditLogger`
+implementations shipped with Cassandra do not react on these properties but your custom logger might. They would be present as
+a parameter of logger constructor (as `Map<String, String>`). In ``cassandra.yaml`` file, you may configure it like this:
+
+::
+
+ logger:
+ - class_name: MyCustomAuditLogger
+   parameters:
+   - key1: value1
+     key2: value2
+
+When it comes to configuring these parameters, you can use respective ``enableAuditLog`` method in ``StorageServiceMBean``.
+There are two methods of same name with different signatures. The first one does not accept a map where your parameters would be. This method
+is used primarily e.g. from JConsole or similar tooling. JConsole can not accept a map to be sent over JMX so in order to be able to enable it
+from there, even without any parameters, use this method. ``BinAuditLogger`` does not need any parameters to run with so invoking this method is fine.
+The second one does accept a map with your custom parameters so you can pass them programmatically. ``enableauditlog`` command of ``nodetool`` uses
+the first ``enableAuditLog`` method mentioned. Hence, currently, there is not a way how to pass parameters to your custom audit logger from ``nodetool``.
+
+Setting the Audit Logs Directory
+********************************
+The audit logs directory is set with the ``audit_logs_dir`` option. A new directory is not created automatically and an existing directory must be set. Audit Logs directory can be configured using ``cassandra.logdir.audit`` system property or default is set to ``cassandra.logdir + /audit/``. A user created directory may be set. As an example, create a directory for the audit logs and set its permissions.
+
+::
+
+ sudo mkdir –p  /cassandra/audit/logs/hourly
+ sudo chmod -R 777 /cassandra/audit/logs/hourly
+
+Set the directory for the audit logs directory using the ``audit_logs_dir`` option.
+
+::
+
+ audit_logs_dir: "/cassandra/audit/logs/hourly"
+
+
+Setting Keyspaces to Audit
+**************************
+Set  the keyspaces to include with the ``included_keyspaces`` option and the keyspaces to exclude with the ``excluded_keyspaces`` option.  By default all keyspaces are included. By default, ``system``, ``system_schema`` and ``system_virtual_schema`` are excluded.
+
+::
+
+ # included_keyspaces:
+ # excluded_keyspaces: system, system_schema, system_virtual_schema
+
+Setting Categories to Audit
+***************************
+
+The categories of database operations to be included are specified with the ``included_categories``  option as a comma separated list.  By default all supported categories are included. The categories of database operations to be excluded are specified with ``excluded_categories``  option as a comma separated list.  By default no category is excluded.
+
+::
+
+ # included_categories:
+ # excluded_categories:
+
+The supported categories for audit log are:
+
+1. QUERY
+2. DML
+3. DDL
+4. DCL
+5. OTHER
+6. AUTH
+7. ERROR
+8. PREPARE
+
+Setting Users to Audit
+**********************
+
+Users to audit log are set with the ``included_users`` and  ``excluded_users``  options.  The ``included_users`` option specifies a comma separated list of users to include explicitly and by default all users are included. The ``excluded_users`` option specifies a comma separated list of  users to exclude explicitly and by default no user is excluded.
+
+::
+
+    # included_users:
+    # excluded_users:
+
+Setting the Roll Frequency
+***************************
+The ``roll_cycle`` option sets the frequency at which the audit log file is rolled. Supported values are ``MINUTELY``, ``HOURLY``, and ``DAILY``. Default value is ``HOURLY``, which implies that after every hour a new audit log file is created.
+
+::
+
+ roll_cycle: HOURLY
+
+An audit log file could get rolled for other reasons as well such as a log file reaches the configured size threshold.
+
+Setting Archiving Options
+*************************
+
+The archiving options are for archiving the rolled audit logs. The ``archive`` command to use is set with the ``archive_command`` option and the ``max_archive_retries`` sets the maximum # of tries of failed archive commands.
+
+::
+
+  # archive_command:
+  # max_archive_retries: 10
+
+Default archive command is ``"/path/to/script.sh %path"`` where ``%path`` is replaced with the file being rolled:
+
+Other Settings
+***************
+
+The other audit logs settings are as follows.
+
+::
+
+ # block: true
+ # max_queue_weight: 268435456 # 256 MiB
+ # max_log_size: 17179869184 # 16 GiB
+
+The ``block`` option specifies whether the audit logging should block if the logging falls behind or should drop log records.
+
+The ``max_queue_weight`` option sets the maximum weight of in memory queue for records waiting to be written to the file before blocking or dropping.
+
+The  ``max_log_size`` option sets the maximum size of the rolled files to retain on disk before deleting the oldest.
+
+Configuring FileAuditLogger
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+To use ``FileAuditLogger`` as a logger in AuditLogging, apart from setting the class name in cassandra.yaml, below
+configuration is needed (the code is already provided for your convenience in a comment in logback.xml) to have the audit
+log events to flow through separate audit log file instead of system.log.
+
+
+.. code-block:: xml
+
+        <!-- Audit Logging (FileAuditLogger) rolling file appender to audit.log -->
+        <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <file>${cassandra.logdir}/audit/audit.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- rollover daily -->
+            <fileNamePattern>${cassandra.logdir}/audit/audit.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
+            <!-- each file should be at most 50MB, keep 30 days worth of history, but at most 5GB -->
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>5GB</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern>
+          </encoder>
+        </appender>
+
+        <!-- Audit Logging additivity to redirect audt logging events to audit/audit.log -->
+        <logger name="org.apache.cassandra.audit" additivity="false" level="INFO">
+            <appender-ref ref="AUDIT"/>
+        </logger>
+
+Using Nodetool to Enable Audit Logging
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The ``nodetool  enableauditlog``  command may be used to enable audit logs and it overrides the settings in ``cassandra.yaml``.  The ``nodetool enableauditlog`` command syntax is as follows.
+
+::
+
+        nodetool [(-h <host> | --host <host>)] [(-p <port> | --port <port>)]
+                [(-pp | --print-port)] [(-pw <password> | --password <password>)]
+                [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)]
+                [(-u <username> | --username <username>)] enableauditlog
+                [--excluded-categories <excluded_categories>]
+                [--excluded-keyspaces <excluded_keyspaces>]
+                [--excluded-users <excluded_users>]
+                [--included-categories <included_categories>]
+                [--included-keyspaces <included_keyspaces>]
+                [--included-users <included_users>] [--logger <logger>]
+
+OPTIONS
+        --excluded-categories <excluded_categories>
+            Comma separated list of Audit Log Categories to be excluded for
+            audit log. If not set the value from cassandra.yaml will be used
+
+        --excluded-keyspaces <excluded_keyspaces>
+            Comma separated list of keyspaces to be excluded for audit log. If
+            not set the value from cassandra.yaml will be used
+
+        --excluded-users <excluded_users>
+            Comma separated list of users to be excluded for audit log. If not
+            set the value from cassandra.yaml will be used
+
+        -h <host>, --host <host>
+            Node hostname or ip address
+
+        --included-categories <included_categories>
+            Comma separated list of Audit Log Categories to be included for
+            audit log. If not set the value from cassandra.yaml will be used
+
+        --included-keyspaces <included_keyspaces>
+            Comma separated list of keyspaces to be included for audit log. If
+            not set the value from cassandra.yaml will be used
+
+        --included-users <included_users>
+            Comma separated list of users to be included for audit log. If not
+            set the value from cassandra.yaml will be used
+
+        --logger <logger>
+            Logger name to be used for AuditLogging. Default BinAuditLogger. If
+            not set the value from cassandra.yaml will be used
+
+        -p <port>, --port <port>
+            Remote jmx agent port number
+
+        -pp, --print-port
+            Operate in 4.0 mode with hosts disambiguated by port number
+
+        -pw <password>, --password <password>
+            Remote jmx agent password
+
+        -pwf <passwordFilePath>, --password-file <passwordFilePath>
+            Path to the JMX password file
+
+        -u <username>, --username <username>
+            Remote jmx agent username
+
+The ``nodetool  enableauditlog``  command can be used to reload auditlog filters when called with default or
+previous ``loggername`` and updated filters
+
+E.g.,
+
+::
+
+    nodetool enableauditlog --loggername <Default/ existing loggerName> --included-keyspaces <New Filter values>
+
+The ``nodetool disableauditlog`` command disables audit log. The command syntax is as follows.
+
+::
+
+        nodetool [(-h <host> | --host <host>)] [(-p <port> | --port <port>)]
+                [(-pp | --print-port)] [(-pw <password> | --password <password>)]
+                [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)]
+                [(-u <username> | --username <username>)] disableauditlog
+
+OPTIONS
+        -h <host>, --host <host>
+            Node hostname or ip address
+
+        -p <port>, --port <port>
+            Remote jmx agent port number
+
+        -pp, --print-port
+            Operate in 4.0 mode with hosts disambiguated by port number
+
+        -pw <password>, --password <password>
+            Remote jmx agent password
+
+        -pwf <passwordFilePath>, --password-file <passwordFilePath>
+            Path to the JMX password file
+
+        -u <username>, --username <username>
+            Remote jmx agent username
+
+Viewing the Audit Logs
+^^^^^^^^^^^^^^^^^^^^^^
+An audit log event comprises of a keyspace that is being audited, the operation that is being logged, the scope and the user. An audit log entry comprises of the following attributes concatenated with a "|".
+
+::
+
+ type (AuditLogEntryType): Type of request
+ source (InetAddressAndPort): Source IP Address from which request originated
+ user (String): User name
+ timestamp (long ): Timestamp of the request
+ batch (UUID): Batch of request
+ keyspace (String): Keyspace on which request is made
+ scope (String): Scope of request such as Table/Function/Aggregate name
+ operation (String): Database operation such as CQL command
+ options (QueryOptions): CQL Query options
+ state (QueryState): State related to a given query
+
+Some of these attributes may not be applicable to a given request and not all of these options must be set.
+
+An Audit Logging Demo
+^^^^^^^^^^^^^^^^^^^^^^
+To demonstrate audit logging enable and configure audit logs with following settings.
+
+::
+
+ audit_logging_options:
+    enabled: true
+    logger:
+    - class_name: BinAuditLogger
+    audit_logs_dir: "/cassandra/audit/logs/hourly"
+    # included_keyspaces:
+    # excluded_keyspaces: system, system_schema, system_virtual_schema
+    # included_categories:
+    # excluded_categories:
+    # included_users:
+    # excluded_users:
+    roll_cycle: HOURLY
+    # block: true
+    # max_queue_weight: 268435456 # 256 MiB
+    # max_log_size: 17179869184 # 16 GiB
+    ## archive command is "/path/to/script.sh %path" where %path is replaced with the file being rolled:
+    # archive_command:
+    # max_archive_retries: 10
+
+Create the audit log directory ``/cassandra/audit/logs/hourly`` and set its permissions as discussed earlier. Run some CQL commands such as create a keyspace, create a table and query a table. Any supported CQL commands may be run as discussed in section **What does Audit Logging Log?**.  Change directory (with ``cd`` command) to the audit logs directory.
+
+::
+
+ cd /cassandra/audit/logs/hourly
+
+List the files/directories and some ``.cq4`` files should get listed. These are the audit logs files.
+
+::
+
+ [ec2-user@ip-10-0-2-238 hourly]$ ls -l
+ total 28
+ -rw-rw-r--. 1 ec2-user ec2-user 83886080 Aug  2 03:01 20190802-02.cq4
+ -rw-rw-r--. 1 ec2-user ec2-user 83886080 Aug  2 03:01 20190802-03.cq4
+ -rw-rw-r--. 1 ec2-user ec2-user    65536 Aug  2 03:01 metadata.cq4t
+
+The ``auditlogviewer`` tool is used to dump audit logs. Run the ``auditlogviewer`` tool. Audit log files directory path is a required argument. The output should be similar to the following output.
+
+::
+
+ [ec2-user@ip-10-0-2-238 hourly]$ auditlogviewer /cassandra/audit/logs/hourly
+ Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/127.0.0.1|port:46264|timestamp:1564711427328|type:USE_KEYSPACE|category:OTHER|ks:auditlogkeyspace|operation:USE AuditLogKeyspace;
+  Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/127.0.0.1|port:46264|timestamp:1564711427329|type:USE_KEYSPACE|category:OTHER|ks:auditlogkeyspace|operation:USE "auditlogkeyspace"
+  Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/127.0.0.1|port:46264|timestamp:1564711446279|type:SELECT|category:QUERY|ks:auditlogkeyspace|scope:t|operation:SELECT * FROM t;
+  Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/127.0.0.1|port:46264|timestamp:1564713878834|type:DROP_TABLE|category:DDL|ks:auditlogkeyspace|scope:t|operation:DROP TABLE IF EXISTS
+  AuditLogKeyspace.t;
+  Type: audit
+  LogMessage: user:anonymous|host:10.0.2.238:7000|source:/3.91.56.164|port:42382|timestamp:1564714618360|type:REQUEST_FAILURE|category:ERROR|operation:CREATE KEYSPACE AuditLogKeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};; Cannot add existing keyspace "auditlogkeyspace"
+  Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/127.0.0.1|port:46264|timestamp:1564714690968|type:DROP_KEYSPACE|category:DDL|ks:auditlogkeyspace|operation:DROP KEYSPACE AuditLogKeyspace;
+  Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/3.91.56.164|port:42406|timestamp:1564714708329|type:CREATE_KEYSPACE|category:DDL|ks:auditlogkeyspace|operation:CREATE KEYSPACE AuditLogKeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
+  Type: audit
+  LogMessage:
+  user:anonymous|host:10.0.2.238:7000|source:/127.0.0.1|port:46264|timestamp:1564714870678|type:USE_KEYSPACE|category:OTHER|ks:auditlogkeyspace|operation:USE auditlogkeyspace;
+  Type: audit
+  LogMessage: user:cassandra|host:localhost/127.0.0.1:7000|source:/127.0.0.1|port:65282|timestamp:1622630496708|type:CREATE_ROLE|category:DCL|operation:CREATE ROLE role1 WITH PASSWORD*******;
+  Type: audit
+  LogMessage: user:cassandra|host:localhost/127.0.0.1:7000|source:/127.0.0.1|port:65282|timestamp:1622630634552|type:ALTER_ROLE|category:DCL|operation:ATLER ROLE role1 WITH PASSWORD*******;
+  Type: audit
+  LogMessage: user:cassandra|host:localhost/127.0.0.1:7000|source:/127.0.0.1|port:65282|timestamp:1622630698686|type:CREATE_ROLE|category:DCL|operation:CREATE USER user1 WITH PASSWORD*******;
+  Type: audit
+  LogMessage: user:cassandra|host:localhost/127.0.0.1:7000|source:/127.0.0.1|port:65282|timestamp:1622630747344|type:ALTER_ROLE|category:DCL|operation:ALTER USER user1 WITH PASSWORD*******;
+
+
+The ``auditlogviewer`` tool usage syntax is as follows.
+
+::
+
+ ./auditlogviewer
+ Audit log files directory path is a required argument.
+ usage: auditlogviewer <path1> [<path2>...<pathN>] [options]
+ --
+ View the audit log contents in human readable format
+ --
+ Options are:
+ -f,--follow       Upon reaching the end of the log continue indefinitely
+                   waiting for more records
+ -h,--help         display this help message
+ -r,--roll_cycle   How often to roll the log file was rolled. May be
+                   necessary for Chronicle to correctly parse file names. (MINUTELY, HOURLY,
+                   DAILY). Default HOURLY.
+
+Diagnostic events for user audit logging
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Any native transport enabled client is able to subscribe to diagnostic events that are raised around authentication and CQL operations. These events can then be consumed and used by external tools to implement a Cassandra user auditing solution.
+
diff --git a/src/doc/3.11.11/_sources/new/fqllogging.rst.txt b/src/doc/3.11.11/_sources/new/fqllogging.rst.txt
new file mode 100644
index 0000000..20085da
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/fqllogging.rst.txt
@@ -0,0 +1,618 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Full Query Logging (FQL)
+========================
+
+Apache Cassandra 4.0 adds a new highly performant feature that supports live query logging (`CASSANDRA-13983 <https://issues.apache.org/jira/browse/CASSANDRA-13983>`_). 
+FQL is safe for production use, with configurable limits to heap memory and disk space to prevent out-of-memory errors.
+This feature is useful for live traffic capture, as well as traffic replay. The tool provided can be used for both debugging query traffic and migration.
+New ``nodetool`` options are also added to enable, disable or reset FQL, as well as a new tool to read and replay the binary logs.
+The full query logging (FQL) capability uses `Chronicle-Queue <http://github.com/OpenHFT/Chronicle-Queue>`_ to rotate a log of queries. 
+Full query logs will be referred to as *logs* for the remainder of the page.
+
+Some of the features of FQL are:
+
+- The impact on query latency is reduced by asynchronous single-thread log entry writes to disk.
+- Heap memory usage is bounded by a weighted queue, with configurable maximum weight sitting in front of logging thread.
+- If the weighted queue is full, producers can be blocked or samples can be dropped.
+- Disk utilization is bounded by a configurable size, deleting old log segments once the limit is reached.
+- A flexible schema binary format, `Chronicle-Wire <http://github.com/OpenHFT/Chronicle-Wire>`_, for on-disk serialization that can skip unrecognized fields, add new ones, and omit old ones.
+- Can be enabled, disabled, or reset (to delete on-disk data) using the JMX tool, ``nodetool``.
+- Can configure the settings in either the `cassandra.yaml` file or by using ``nodetool``.
+- Introduces new ``fqltool`` that currently can ``Dump`` the binary logs to a readable format. Other options are ``Replay`` and ``Compare``.
+
+FQL logs all successful Cassandra Query Language (CQL) requests, both events that modify the data and those that query. 
+While audit logs also include CQL requests, FQL logs only the CQL request. This difference means that FQL can be used to replay or compare logs, which audit logging cannot. FQL is useful for debugging, performance benchmarking, testing and auditing CQL queries, while audit logs are useful for compliance.
+
+Currently DCL statements containing passwords are logged for informational purposes but for security reasons they are not available for replay.
+Replay of those statements will be unsuccessful operation because everything after the word password in a DCL statement
+will be obfuscated as *******.
+
+In performance testing, FQL appears to have little or no overhead in ``WRITE`` only workloads, and a minor overhead in ``MIXED`` workload.
+
+Query information logged
+------------------------
+
+The query log contains:
+
+- all queries invoked 
+- approximate time they were invoked 
+- any parameters necessary to bind wildcard values 
+- all query options 
+
+The logger writes single or batched CQL queries after they finish, so only successfully completed queries are logged. Failed or timed-out queries are not logged. Different data is logged, depending on the type of query. 
+
+A single CQL query log entry contains:
+
+- query - CQL query text
+- queryOptions - Options associated with the query invocation
+- queryState - Timestamp state associated with the query invocation
+- queryTimeMillis - Approximate time in milliseconds since the epoch since the query was invoked
+
+A batch CQL query log entry contains:
+
+- queries - CQL text of the queries
+- queryOptions - Options associated with the query invocation
+- queryState - Timestamp state associated with the query invocation
+- batchTimeMillis - Approximate time in milliseconds since the epoch since the batch was invoked
+- type - The type of the batch
+- values - Values to bind to as parameters for the queries
+
+Because FQL is backed by `Binlog`, the performance and footprint are predictable, with minimal impact on log record producers. 
+Performance safety prevents the producers from overloading the log, using a weighted queue to drop records if the logging falls behind.
+Single-thread asynchronous writing produces the logs. Chronicle-Queue provides an easy method of  rolling the logs.
+
+Logging information logged
+--------------------------
+
+FQL also tracks information about the stored log files:
+
+- Stored log files that are added and their storage impact. Deletes them if over storage limit.
+- The log files in Chronicle-Queue that have already rolled
+- The number of bytes in the log files that have already rolled
+
+Logging sequence
+----------------
+
+The logger follows a well-defined sequence of events:
+
+1. The consumer thread that writes log records is started. This action can occur only once.
+2. The consumer thread offers a record to the log. If the in-memory queue is full, the record will be dropped and offer returns a `false` value.
+3. If accepted, the record is entered into the log. If the in-memory queue is full, the putting thread will be blocked until there is space or it is interrupted.
+4. The buffers are cleaned up at thread exit. Finalization will check again, to ensure there are no stragglers in the queue.
+5. The consumer thread is stopped. It can be called multiple times.
+
+Using FQL
+---------
+
+To use FQL, two actions must be completed. FQL must be configured using either the `cassandra.yaml` file or ``nodetool``, and logging must be enabled using ``nodetool enablefullquerylog``. 
+Both actions are completed on a per-node basis.
+With either method, at a minimum, the path to the log directory must be specified.
+Full query logs are generated on each enabled node, so logs on each node will have that node's queries.
+
+Configuring FQL in cassandra.yaml
+---------------------------------
+
+The `cassandra.yaml` file can be used to configure FQL before enabling the feature with ``nodetool``. 
+
+The file includes the following options that can be uncommented for use:
+
+:: 
+
+ # default options for full query logging - these can be overridden from command line
+ # when executing nodetool enablefullquerylog
+ #full_query_logging_options:
+    # log_dir:
+    # roll_cycle: HOURLY
+    # block: true
+    # max_queue_weight: 268435456 # 256 MiB
+    # max_log_size: 17179869184 # 16 GiB
+    ## archive command is "/path/to/script.sh %path" where %path is replaced with the file being rolled:
+    # archive_command:
+    # max_archive_retries: 10
+
+log_dir
+^^^^^^^
+
+To write logs, an existing directory must be set in ``log_dir``. 
+
+The directory must have appropriate permissions set to allow reading, writing, and executing. 
+Logging will recursively delete the directory contents as needed. 
+Do not place links in this directory to other sections of the filesystem. 
+For example, ``log_dir: /tmp/cassandrafullquerylog``.
+
+roll_cycle
+^^^^^^^^^^
+
+The ``roll_cycle`` defines the frequency with which the log segments are rolled. 
+Supported values are ``HOURLY`` (default), ``MINUTELY``, and ``DAILY``.
+For example: ``roll_cycle: DAILY``
+
+block
+^^^^^
+
+The ``block`` option specifies whether FQL should block writing or drop log records if FQL falls behind. Supported boolean values are ``true`` (default) or ``false``.
+For example: ``block: false`` to drop records
+
+max_queue_weight
+^^^^^^^^^^^^^^^^
+
+The ``max_queue_weight`` option sets the maximum weight of in-memory queue for records waiting to be written to the file before blocking or dropping.  The option must be set to a positive value. The default value is 268435456, or 256 MiB.
+For example, to change the default: ``max_queue_weight: 134217728 # 128 MiB``
+
+max_log_size
+^^^^^^^^^^^^
+
+The ``max_log_size`` option sets the maximum size of the rolled files to retain on disk before deleting the oldest file.  The option must be set to a positive value. The default is 17179869184, or 16 GiB.
+For example, to change the default: ``max_log_size: 34359738368 # 32 GiB``
+
+archive_command
+^^^^^^^^^^^^^^^
+
+The ``archive_command`` option sets the user-defined archive script to execute on rolled log files. 
+When not defined, files are deleted, with a default of ``""`` which then maps to `org.apache.cassandra.utils.binlog.DeletingArchiver`.
+For example: ``archive_command: /usr/local/bin/archiveit.sh %path # %path is the file being rolled``
+
+max_archive_retries
+^^^^^^^^^^^^^^^^^^^
+
+The ``max_archive_retries`` option sets the max number of retries of failed archive commands. The default is 10.
+For example: ``max_archive_retries: 10``
+
+FQL can also be configured using ``nodetool`` when enabling the feature, and will override any values set in the `cassandra.yaml` file, as discussed in the next section.
+
+Querying the state of FQL
+---------------------
+
+In order to know what state FQL is in, you may use nodetool command ``getfullquerylog``. It will print out whether FQL is enabled
+and with what configuration options; if you reset or stop FQL, the configuration displayed will be taken from
+configuration in ``cassandra.yaml``.
+
+::
+
+ $ nodetool getfullquerylog
+ enabled             true
+ log_dir             /path/to/fql/log/dir
+ archive_command     /usr/local/bin/archiveit.sh %path
+ roll_cycle          HOURLY
+ block               true
+ max_log_size        17179869184
+ max_queue_weight    268435456
+ max_archive_retries 10
+
+Enabling FQL
+------------
+
+FQL is enabled on a per-node basis using the ``nodetool enablefullquerylog`` command. At a minimum, the path to the logging directory must be defined, if ``log_dir`` is not set in the `cassandra.yaml` file. 
+
+The syntax of the ``nodetool enablefullquerylog`` command has all the same options that can be set in the ``cassandra.yaml`` file.
+In addition, ``nodetool`` has options to set which host and port to run the command on, and username and password if the command requires authentication. 
+
+::
+
+  nodetool [(-h <host> | --host <host>)] [(-p <port> | --port <port>)]
+ [(-pp | --print-port)] [(-pw <password> | --password <password>)]
+ [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)]
+ [(-u <username> | --username <username>)] enablefullquerylog
+ [--archive-command <archive_command>] [--blocking]
+ [--max-archive-retries <archive_retries>]
+ [--max-log-size <max_log_size>] [--max-queue-weight <max_queue_weight>]
+ [--path <path>] [--roll-cycle <roll_cycle>]
+
+ OPTIONS
+   --archive-command <archive_command>
+  Command that will handle archiving rolled full query log files.
+  Format is "/path/to/script.sh %path" where %path will be replaced
+  with the file to archive
+
+   --blocking
+  If the queue is full whether to block producers or drop samples.
+
+   -h <host>, --host <host>
+  Node hostname or ip address
+
+   --max-archive-retries <archive_retries>
+  Max number of archive retries.
+
+   --max-log-size <max_log_size>
+  How many bytes of log data to store before dropping segments. Might
+  not be respected if a log file hasn't rolled so it can be deleted.
+
+   --max-queue-weight <max_queue_weight>
+  Maximum number of bytes of query data to queue to disk before
+  blocking or dropping samples.
+
+   -p <port>, --port <port>
+  Remote jmx agent port number
+
+   --path <path>
+  Path to store the full query log at. Will have it's contents
+  recursively deleted.
+
+   -pp, --print-port
+  Operate in 4.0 mode with hosts disambiguated by port number
+
+   -pw <password>, --password <password>
+  Remote jmx agent password
+
+   -pwf <passwordFilePath>, --password-file <passwordFilePath>
+  Path to the JMX password file
+
+   --roll-cycle <roll_cycle>
+  How often to roll the log file (MINUTELY, HOURLY, DAILY).
+
+   -u <username>, --username <username>
+  Remote jmx agent username
+
+To enable FQL, run the following command on each node in the cluster on which you want to enable logging:
+
+::
+
+ nodetool enablefullquerylog --path /tmp/cassandrafullquerylog
+
+Disabling or resetting FQL
+-------------
+
+Use the ``nodetool disablefullquerylog`` to disable logging. 
+Use ``nodetool resetfullquerylog`` to stop FQL and clear the log files in the configured directory.
+**IMPORTANT:** Using ``nodetool resetfullquerylog`` will delete the log files! Do not use this command unless you need to delete all log files.
+
+fqltool
+-------
+
+The ``fqltool`` command is used to view (dump), replay, or compare logs.
+``fqltool dump`` converts the binary log files into human-readable format; only the log directory must be supplied as a command-line option.
+
+``fqltool replay`` (`CASSANDRA-14618 <https://issues.apache.org/jira/browse/CASSANDRA-14618>`_) enables replay of logs. 
+The command can run from a different machine or cluster for testing, debugging, or performance benchmarking. 
+The command can also be used to recreate a dropped database object (keyspace, table), usually in a different cluster.
+The ``fqltool replay`` command does not replay DDL statements automatically; explicitly enable it with the ``--replay-ddl-statements`` flag.
+Use ``fqltool replay`` to record and compare different runs of production traffic against different versions/configurations of Cassandra or different clusters.
+Another use is to gather logs from several machines and replay them in “order” by the timestamps recorded.
+
+The syntax of ``fqltool replay`` is:
+
+::
+
+  fqltool replay [--keyspace <keyspace>] [--replay-ddl-statements]
+  [--results <results>] [--store-queries <store_queries>] 
+  --target <target>... [--] <path1> [<path2>...<pathN>]
+
+ OPTIONS
+   --keyspace <keyspace>
+  Only replay queries against this keyspace and queries without
+  keyspace set.
+
+   --replay-ddl-statements
+   If specified, replays DDL statements as well, they are excluded from
+   replaying by default.
+
+   --results <results>
+  Where to store the results of the queries, this should be a
+  directory. Leave this option out to avoid storing results.
+
+   --store-queries <store_queries>
+  Path to store the queries executed. Stores queries in the same order
+  as the result sets are in the result files. Requires --results
+
+   --target <target>
+  Hosts to replay the logs to, can be repeated to replay to more
+  hosts.
+
+   --
+  This option can be used to separate command-line options from the
+  list of argument, (useful when arguments might be mistaken for
+  command-line options
+
+   <path1> [<path2>...<pathN>]
+  Paths containing the FQ logs to replay.
+
+``fqltool compare`` (`CASSANDRA-14619 <https://issues.apache.org/jira/browse/CASSANDRA-14619>`_) compares result files generated by ``fqltool replay``.
+The command uses recorded runs from ``fqltool replay`` and compareslog, outputting any differences (potentially all queries).
+It also stores each row as a separate chronicle document to avoid reading the entire result from in-memory when comparing.
+
+The syntax of ``fqltool compare`` is:
+
+::
+
+$ fqltool help compare
+ NAME
+   fqltool compare - Compare result files generated by fqltool replay
+
+ SYNOPSIS
+   fqltool compare --queries <queries> [--] <path1> [<path2>...<pathN>]
+
+ OPTIONS
+   --queries <queries>
+  Directory to read the queries from. It is produced by the fqltool
+  replay --store-queries option.
+
+   --
+  This option can be used to separate command-line options from the
+  list of argument, (useful when arguments might be mistaken for
+  command-line options
+
+   <path1> [<path2>...<pathN>]
+  Directories containing result files to compare.
+
+The comparison sets the following marks:
+
+- Mark the beginning of a query set:
+
+::
+
+  -------------------
+  version: int16
+  type: column_definitions
+  column_count: int32;
+  column_definition: text, text
+  column_definition: text, text
+  ....
+  --------------------
+
+
+- Mark a failed query set:
+
+::
+
+  ---------------------
+  version: int16
+  type: query_failed
+  message: text
+  ---------------------
+
+- Mark a row set:
+
+::
+
+  --------------------
+  version: int16
+  type: row
+  row_column_count: int32
+  column: bytes
+  ---------------------
+
+- Mark the end of a result set:
+
+::
+
+  -------------------
+  version: int16
+  type: end_resultset
+  -------------------
+
+Example
+-------
+
+1. To demonstrate FQL, first configure and enable FQL on a node in your cluster:
+
+::
+ 
+ nodetool enablefullquerylog --path /tmp/cassandrafullquerylog
+
+
+2. Now create a demo keyspace and table and insert some data using ``cqlsh``:
+
+::
+
+ cqlsh> CREATE KEYSPACE querylogkeyspace
+   ... WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
+ cqlsh> USE querylogkeyspace;
+ cqlsh:querylogkeyspace> CREATE TABLE t (
+ ...id int,
+ ...k int,
+ ...v text,
+ ...PRIMARY KEY (id)
+ ... );
+ cqlsh:querylogkeyspace> INSERT INTO t (id, k, v) VALUES (0, 0, 'val0');
+ cqlsh:querylogkeyspace> INSERT INTO t (id, k, v) VALUES (0, 1, 'val1');
+
+3. Then check that the data is inserted:
+
+:: 
+
+ cqlsh:querylogkeyspace> SELECT * FROM t;
+
+ id | k | v
+ ----+---+------
+  0 | 1 | val1
+
+ (1 rows)
+
+4. Use the ``fqltool dump`` command to view the logs.
+
+::
+
+$ fqltool dump /tmp/cassandrafullquerylog
+
+This command will return a readable version of the log. Here is a partial sample of the log for the commands in this demo:
+
+::
+
+      WARN  [main] 2019-08-02 03:07:53,635 Slf4jExceptionHandler.java:42 - Using Pauser.sleepy() as not enough processors, have 2, needs 8+
+      Type: single-query
+      Query start time: 1564708322030
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system.peers
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322054
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system.local WHERE key='local'
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322109
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.keyspaces
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322116
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.tables
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322139
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.columns
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322142
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.functions
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322141
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.aggregates
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322143
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.types
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322144
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.indexes
+      Values:
+
+      Type: single-query
+      Query start time: 1564708322145
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708322
+      Query: SELECT * FROM system_schema.views
+      Values:
+
+      Type: single-query
+      Query start time: 1564708345408
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:-2147483648
+      Query: CREATE KEYSPACE querylogkeyspace
+      WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
+      Values:
+
+      Type: single-query
+      Query start time: 1564708360873
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:-2147483648
+      Query: USE querylogkeyspace;
+      Values:
+
+      Type: single-query
+      Query start time: 1564708360874
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:-2147483648
+      Query: USE "querylogkeyspace"
+      Values:
+
+      Type: single-query
+      Query start time: 1564708378837
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:-2147483648
+      Query: CREATE TABLE t (
+          id int,
+          k int,
+          v text,
+          PRIMARY KEY (id)
+      );
+      Values:
+
+      Type: single-query
+      Query start time: 1564708379247
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708379
+      Query: SELECT * FROM system_schema.tables WHERE keyspace_name = 'querylogkeyspace' AND table_name = 't'
+      Values:
+
+      Type: single-query
+      Query start time: 1564708397144
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708397
+      Query: INSERT INTO t (id, k, v) VALUES (0, 0, 'val0');
+      Values:
+
+      Type: single-query
+      Query start time: 1564708434782
+      Protocol version: 4
+      Generated timestamp:-9223372036854775808
+      Generated nowInSeconds:1564708434
+      Query: SELECT * FROM t;
+      Values:
+
+5. This example will demonstrate ``fqltool replay`` in a single cluster. However, the most common method of using ``replay`` is between clusters. 
+To demonstrate in the same cluster, first drop the keyspace.
+
+::
+
+ cqlsh:querylogkeyspace> DROP KEYSPACE querylogkeyspace;
+
+6. Now run ``fqltool replay`` specifying the directories in which to store the results of the queries and 
+the list of queries run, respectively, in `--results` and `--store-queries`, and specifiying that the DDL statements to create the keyspace and tables will be executed:
+
+::
+
+ $ fqltool replay \
+ --keyspace querylogkeyspace --replay-ddl-statements --results /cassandra/fql/logs/results/replay \
+ --store-queries /cassandra/fql/logs/queries/replay \
+ --target 3.91.56.164 \
+ /tmp/cassandrafullquerylog
+
+The ``--results`` and ``--store-queries`` directories are optional, but if ``--store-queries`` is set, then ``--results`` must also be set.
+The ``--target`` specifies the node on which to replay to logs.
+If ``--replay-ddl-statements`` is not specified, the keyspace and any tables must be created prior to the ``replay``.
+
+7. Check that the keyspace was replayed and exists again using the ``DESCRIBE KEYSPACES`` command:
+
+::
+
+ cqlsh:querylogkeyspace> DESC KEYSPACES;
+
+ system_schema  system  system_distributed  system_virtual_schema
+ system_auth    querylogkeyspace  system_traces  system_views
diff --git a/src/doc/3.11.11/_sources/new/index.rst.txt b/src/doc/3.11.11/_sources/new/index.rst.txt
new file mode 100644
index 0000000..5ef867b
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/index.rst.txt
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+New Features in Apache Cassandra 4.0
+====================================
+
+This section covers the new features in Apache Cassandra 4.0.  
+
+.. toctree::
+   :maxdepth: 2
+
+   java11
+   virtualtables
+   auditlogging
+   fqllogging
+   messaging
+   streaming
+   transientreplication
+   
diff --git a/src/doc/3.11.11/_sources/new/java11.rst.txt b/src/doc/3.11.11/_sources/new/java11.rst.txt
new file mode 100644
index 0000000..df906d4
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/java11.rst.txt
@@ -0,0 +1,274 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Support for Java 11
+-------------------
+
+In the new Java release cadence a new Java version is made available every six months. The more frequent release cycle 
+is favored as it brings new Java features to the developers as and when they are developed without the wait that the 
+earlier 3 year release model incurred.  Not every Java version is a Long Term Support (LTS) version. After Java 8 the 
+next LTS version is Java 11. Java 9, 10, 12 and 13 are all non-LTS versions. 
+
+One of the objectives of the Apache Cassandra 4.0 version is to support the recent LTS Java versions 8 and 11 (`CASSANDRA-9608
+<https://issues.apache.org/jira/browse/CASSANDRA-9608>`_). Java 8 and 
+Java 11 may be used to build and run Apache Cassandra 4.0. 
+
+**Note**: Support for JDK 11 in Apache Cassandra 4.0 is an experimental feature, and not recommended for production use.
+
+Support Matrix
+^^^^^^^^^^^^^^
+
+The support matrix for the Java versions for compiling and running Apache Cassandra 4.0 is detailed in Table 1. The 
+build version is along the vertical axis and the run version is along the horizontal axis.
+
+Table 1 : Support Matrix for Java 
+
++---------------+--------------+-----------------+
+|               | Java 8 (Run) | Java 11 (Run)   | 
++---------------+--------------+-----------------+
+| Java 8 (Build)|Supported     |Supported        |           
++---------------+--------------+-----------------+
+| Java 11(Build)| Not Supported|Supported        |         
++---------------+--------------+-----------------+  
+
+Essentially Apache 4.0 source code built with Java 11 cannot be run with Java 8. Next, we shall discuss using each of Java 8 and 11 to build and run Apache Cassandra 4.0.
+
+Using Java 8 to Build
+^^^^^^^^^^^^^^^^^^^^^
+
+To start with, install Java 8. As an example, for installing Java 8 on RedHat Linux the command is as follows:
+
+::
+
+$ sudo yum install java-1.8.0-openjdk-devel
+    
+Set ``JAVA_HOME`` and ``JRE_HOME`` environment variables in the shell bash script. First, open the bash script:
+
+::
+
+$ sudo vi ~/.bashrc
+
+Set the environment variables including the ``PATH``.
+
+::
+
+  $ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
+  $ export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk/jre
+  $ export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
+
+Download and install Apache Cassandra 4.0 source code from the Git along with the dependencies.
+
+::
+
+ $ git clone https://github.com/apache/cassandra.git
+
+If Cassandra is already running stop Cassandra with the following command.
+
+::
+
+ [ec2-user@ip-172-30-3-146 bin]$ ./nodetool stopdaemon
+
+Build the source code from the ``cassandra`` directory, which has the ``build.xml`` build script. The Apache Ant uses the Java version set in the ``JAVA_HOME`` environment variable.
+
+::
+
+ $ cd ~/cassandra
+ $ ant
+
+Apache Cassandra 4.0 gets built with Java 8.  Set the environment variable for ``CASSANDRA_HOME`` in the bash script. Also add the ``CASSANDRA_HOME/bin`` to the ``PATH`` variable.
+
+::
+
+ $ export CASSANDRA_HOME=~/cassandra
+ $ export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CASSANDRA_HOME/bin
+
+To run Apache Cassandra 4.0 with either of Java 8 or Java 11 run the Cassandra application in the ``CASSANDRA_HOME/bin`` directory, which is in the ``PATH`` env variable.
+
+::
+
+ $ cassandra
+
+The Java version used to run Cassandra gets output as Cassandra is getting started. As an example if Java 11 is used, the run output should include similar to the following output snippet:
+
+::
+
+ INFO  [main] 2019-07-31 21:18:16,862 CassandraDaemon.java:480 - Hostname: ip-172-30-3- 
+ 146.ec2.internal:7000:7001
+ INFO  [main] 2019-07-31 21:18:16,862 CassandraDaemon.java:487 - JVM vendor/version: OpenJDK 
+ 64-Bit Server VM/11.0.3
+ INFO  [main] 2019-07-31 21:18:16,863 CassandraDaemon.java:488 - Heap size: 
+ 1004.000MiB/1004.000MiB
+
+The following output indicates a single node Cassandra 4.0 cluster has started.
+
+::
+
+ INFO  [main] 2019-07-31 21:18:19,687 InboundConnectionInitiator.java:130 - Listening on 
+ address: (127.0.0.1:7000), nic: lo, encryption: enabled (openssl)
+ ...
+ ...
+ INFO  [main] 2019-07-31 21:18:19,850 StorageService.java:512 - Unable to gossip with any 
+ peers but continuing anyway since node is in its own seed list
+ INFO  [main] 2019-07-31 21:18:19,864 StorageService.java:695 - Loading persisted ring state
+ INFO  [main] 2019-07-31 21:18:19,865 StorageService.java:814 - Starting up server gossip
+ INFO  [main] 2019-07-31 21:18:20,088 BufferPool.java:216 - Global buffer pool is enabled,  
+ when pool is exhausted (max is 251.000MiB) it will allocate on heap
+ INFO  [main] 2019-07-31 21:18:20,110 StorageService.java:875 - This node will not auto 
+ bootstrap because it is configured to be a seed node.
+ ...
+ ...
+ INFO  [main] 2019-07-31 21:18:20,809 StorageService.java:1507 - JOINING: Finish joining ring
+ INFO  [main] 2019-07-31 21:18:20,921 StorageService.java:2508 - Node 127.0.0.1:7000 state 
+ jump to NORMAL
+
+Using Java 11 to Build
+^^^^^^^^^^^^^^^^^^^^^^
+If Java 11 is used to build Apache Cassandra 4.0, first Java 11 must be installed and the environment variables set. As an example, to download and install Java 11 on RedHat Linux run the following command.
+
+::
+
+ $ yum install java-11-openjdk-devel
+
+Set the environment variables in the bash script for Java 11. The first command is to open the bash script.
+
+::
+
+ $ sudo vi ~/.bashrc 
+ $ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
+ $ export JRE_HOME=/usr/lib/jvm/java-11-openjdk/jre
+ $ export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
+
+To build source code with Java 11 one of the following two options must be used.
+
+ 1. Include Apache Ant command-line option ``-Duse.jdk=11`` as follows: 
+     ::
+
+      $ ant -Duse.jdk=11
+
+ 2. Set environment variable ``CASSANDRA_USE_JDK11`` to ``true``: 
+     ::
+
+      $ export CASSANDRA_USE_JDK11=true
+
+As an example, set the environment variable ``CASSANDRA_USE_JDK11`` to ``true``.
+
+::
+
+ [ec2-user@ip-172-30-3-146 cassandra]$ export CASSANDRA_USE_JDK11=true
+ [ec2-user@ip-172-30-3-146 cassandra]$ ant
+ Buildfile: /home/ec2-user/cassandra/build.xml
+
+Or, set the command-line option.
+
+::
+
+ [ec2-user@ip-172-30-3-146 cassandra]$ ant -Duse.jdk11=true
+
+The build output should include the following.
+
+::
+
+ _build_java:
+     [echo] Compiling for Java 11
+ ...
+ ...
+ build:
+
+ _main-jar:
+          [copy] Copying 1 file to /home/ec2-user/cassandra/build/classes/main/META-INF
+      [jar] Building jar: /home/ec2-user/cassandra/build/apache-cassandra-4.0-SNAPSHOT.jar
+ ...
+ ...
+ _build-test:
+    [javac] Compiling 739 source files to /home/ec2-user/cassandra/build/test/classes
+     [copy] Copying 25 files to /home/ec2-user/cassandra/build/test/classes
+ ...
+ ...
+ jar:
+    [mkdir] Created dir: /home/ec2-user/cassandra/build/classes/stress/META-INF
+    [mkdir] Created dir: /home/ec2-user/cassandra/build/tools/lib
+      [jar] Building jar: /home/ec2-user/cassandra/build/tools/lib/stress.jar
+    [mkdir] Created dir: /home/ec2-user/cassandra/build/classes/fqltool/META-INF
+      [jar] Building jar: /home/ec2-user/cassandra/build/tools/lib/fqltool.jar
+
+ BUILD SUCCESSFUL
+ Total time: 1 minute 3 seconds
+ [ec2-user@ip-172-30-3-146 cassandra]$ 
+
+Common Issues
+^^^^^^^^^^^^^^
+One of the two options mentioned must be used to compile with JDK 11 or the build fails and the following error message is output.
+
+::
+
+ [ec2-user@ip-172-30-3-146 cassandra]$ ant
+ Buildfile: /home/ec2-user/cassandra/build.xml
+ validate-build-conf:
+
+ BUILD FAILED
+ /home/ec2-user/cassandra/build.xml:293: -Duse.jdk11=true or $CASSANDRA_USE_JDK11=true must 
+ be set when building from java 11
+ Total time: 1 second
+ [ec2-user@ip-172-30-3-146 cassandra]$ 
+
+The Java 11 built Apache Cassandra 4.0 source code may be run with Java 11 only. If a Java 11 built code is run with Java 8 the following error message gets output.
+
+::
+
+ [root@localhost ~]# ssh -i cassandra.pem ec2-user@ec2-3-85-85-75.compute-1.amazonaws.com
+ Last login: Wed Jul 31 20:47:26 2019 from 75.155.255.51
+ [ec2-user@ip-172-30-3-146 ~]$ echo $JAVA_HOME
+ /usr/lib/jvm/java-1.8.0-openjdk
+ [ec2-user@ip-172-30-3-146 ~]$ cassandra 
+ ...
+ ...
+ Error: A JNI error has occurred, please check your installation and try again
+ Exception in thread "main" java.lang.UnsupportedClassVersionError: 
+ org/apache/cassandra/service/CassandraDaemon has been compiled by a more recent version of 
+ the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes 
+ class file versions up to 52.0
+   at java.lang.ClassLoader.defineClass1(Native Method)
+   at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
+   at ...
+ ...
+
+The ``CASSANDRA_USE_JDK11`` variable or the command-line option ``-Duse.jdk11`` cannot be used to build with Java 8. To demonstrate set ``JAVA_HOME`` to version 8.
+
+::
+
+ [root@localhost ~]# ssh -i cassandra.pem ec2-user@ec2-3-85-85-75.compute-1.amazonaws.com
+ Last login: Wed Jul 31 21:41:50 2019 from 75.155.255.51
+ [ec2-user@ip-172-30-3-146 ~]$ echo $JAVA_HOME
+ /usr/lib/jvm/java-1.8.0-openjdk
+
+Set the ``CASSANDRA_USE_JDK11=true`` or command-line option ``-Duse.jdk11=true``. Subsequently, run Apache Ant to start the build. The build fails with error message listed.
+
+::
+
+ [ec2-user@ip-172-30-3-146 ~]$ cd 
+ cassandra
+ [ec2-user@ip-172-30-3-146 cassandra]$ export CASSANDRA_USE_JDK11=true
+ [ec2-user@ip-172-30-3-146 cassandra]$ ant 
+ Buildfile: /home/ec2-user/cassandra/build.xml
+
+ validate-build-conf:
+
+ BUILD FAILED
+ /home/ec2-user/cassandra/build.xml:285: -Duse.jdk11=true or $CASSANDRA_USE_JDK11=true cannot 
+ be set when building from java 8
+
+ Total time: 0 seconds
+   
diff --git a/src/doc/3.11.11/_sources/new/messaging.rst.txt b/src/doc/3.11.11/_sources/new/messaging.rst.txt
new file mode 100644
index 0000000..755c9d1
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/messaging.rst.txt
@@ -0,0 +1,257 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Improved Internode Messaging
+------------------------------
+
+
+Apache Cassandra 4.0 has added several new improvements to internode messaging.
+
+Optimized Internode Messaging Protocol
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The internode messaging protocol has been optimized (`CASSANDRA-14485
+<https://issues.apache.org/jira/browse/CASSANDRA-14485>`_). Previously the ``IPAddressAndPort`` of the sender was included with each message that was sent even though the ``IPAddressAndPort`` had already been sent once when the initial connection/session was established. In Cassandra 4.0 ``IPAddressAndPort`` has been removed from every separate message sent  and only sent when connection/session is initiated.
+
+Another improvement is that at several instances (listed) a fixed 4-byte integer value has been replaced with ``vint`` as a ``vint`` is almost always less than 1 byte:
+
+-          The ``paramSize`` (the number of parameters in the header)
+-          Each individual parameter value
+-          The ``payloadSize``
+
+
+NIO Messaging
+^^^^^^^^^^^^^^^
+In Cassandra 4.0 peer-to-peer (internode) messaging has been switched to non-blocking I/O (NIO) via Netty (`CASSANDRA-8457
+<https://issues.apache.org/jira/browse/CASSANDRA-8457>`_).
+
+As serialization format,  each message contains a header with several fixed fields, an optional key-value parameters section, and then the message payload itself. Note: the IP address in the header may be either IPv4 (4 bytes) or IPv6 (16 bytes).
+
+  The diagram below shows the IPv4 address for brevity.
+
+::
+
+             1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6
+   0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |                       PROTOCOL MAGIC                          |
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |                         Message ID                            |
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |                         Timestamp                             |
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |  Addr len |           IP Address (IPv4)                       /
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  /           |                 Verb                              /
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  /           |            Parameters size                        /
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  /           |             Parameter data                        /
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  /                                                               |
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |                        Payload size                           |
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |                                                               /
+  /                           Payload                             /
+  /                                                               |
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+An individual parameter has a String key and a byte array value. The key is serialized with its length, encoded as two bytes, followed by the UTF-8 byte encoding of the string. The body is serialized with its length, encoded as four bytes, followed by the bytes of the value.
+
+Resource limits on Queued Messages
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+System stability is improved by enforcing strict resource limits (`CASSANDRA-15066
+<https://issues.apache.org/jira/browse/CASSANDRA-15066>`_) on the number of outbound messages that are queued, measured by the ``serializedSize`` of the message. There are three separate limits imposed simultaneously to ensure that progress is always made without any reasonable combination of failures impacting a node’s stability.
+
+1. Global, per-endpoint and per-connection limits are imposed on messages queued for delivery to other nodes and waiting to be processed on arrival from other nodes in the cluster.  These limits are applied to the on-wire size of the message being sent or received.
+2. The basic per-link limit is consumed in isolation before any endpoint or global limit is imposed. Each node-pair has three links: urgent, small and large.  So any given node may have a maximum of ``N*3 * (internode_application_send_queue_capacity_in_bytes + internode_application_receive_queue_capacity_in_bytes)`` messages queued without any coordination between them although in practice, with token-aware routing, only RF*tokens nodes should need to communicate with significant bandwidth.
+3. The per-endpoint limit is imposed on all messages exceeding the per-link limit, simultaneously with the global limit, on all links to or from a single node in the cluster. The global limit is imposed on all messages exceeding the per-link limit, simultaneously with the per-endpoint limit, on all links to or from any node in the cluster. The following configuration settings have been added to ``cassandra.yaml`` for resource limits on queued messages.
+
+::
+
+ internode_application_send_queue_capacity_in_bytes: 4194304 #4MiB
+ internode_application_send_queue_reserve_endpoint_capacity_in_bytes: 134217728  #128MiB
+ internode_application_send_queue_reserve_global_capacity_in_bytes: 536870912    #512MiB
+ internode_application_receive_queue_capacity_in_bytes: 4194304                  #4MiB
+ internode_application_receive_queue_reserve_endpoint_capacity_in_bytes: 134217728 #128MiB
+ internode_application_receive_queue_reserve_global_capacity_in_bytes: 536870912   #512MiB
+
+Virtual Tables for Messaging Metrics
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Metrics is improved by keeping metrics using virtual tables for inter-node inbound and outbound messaging (`CASSANDRA-15066
+<https://issues.apache.org/jira/browse/CASSANDRA-15066>`_). For inbound messaging a  virtual table (``internode_inbound``) has been added to keep metrics for:
+
+- Bytes and count of messages that could not be serialized or flushed due to an error
+- Bytes and count of messages scheduled
+- Bytes and count of messages successfully processed
+- Bytes and count of messages successfully received
+- Nanos and count of messages throttled
+- Bytes and count of messages expired
+- Corrupt frames recovered and unrecovered
+
+A separate virtual table (``internode_outbound``) has been added for outbound inter-node messaging. The outbound virtual table keeps metrics for:
+
+-          Bytes and count of messages  pending
+-          Bytes and count of messages  sent
+-          Bytes and count of messages  expired
+-          Bytes and count of messages that could not be sent due to an error
+-          Bytes and count of messages overloaded
+-          Active Connection Count
+-          Connection Attempts
+-          Successful Connection Attempts
+
+Hint Messaging
+^^^^^^^^^^^^^^
+
+A specialized version of hint message that takes an already encoded in a ``ByteBuffer`` hint and sends it verbatim has been added. It is an optimization for when dispatching a hint file of the current messaging version to a node of the same messaging version, which is the most common case. It saves on extra ``ByteBuffer`` allocations one redundant hint deserialization-serialization cycle.
+
+Internode Application Timeout
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A configuration setting has been added to ``cassandra.yaml`` for the maximum continuous period a connection may be unwritable in application space.
+
+::
+
+# internode_application_timeout_in_ms = 30000
+
+Some other new features include logging of message size to trace message for tracing a query.
+
+Paxos prepare and propose stage for local requests optimized
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In pre-4.0 Paxos prepare and propose messages always go through entire ``MessagingService`` stack in Cassandra even if request is to be served locally, we can enhance and make local requests severed w/o involving ``MessagingService``. Similar things are done elsewhere in Cassandra which skips ``MessagingService`` stage for local requests.
+
+This is what it looks like in pre 4.0 if we have tracing on and run a light-weight transaction:
+
+::
+
+ Sending PAXOS_PREPARE message to /A.B.C.D [MessagingService-Outgoing-/A.B.C.D] | 2017-09-11
+ 21:55:18.971000 | A.B.C.D | 15045
+ … REQUEST_RESPONSE message received from /A.B.C.D [MessagingService-Incoming-/A.B.C.D] |
+ 2017-09-11 21:55:18.976000 | A.B.C.D | 20270
+ … Processing response from /A.B.C.D [SharedPool-Worker-4] | 2017-09-11 21:55:18.976000 |
+ A.B.C.D | 20372
+
+Same thing applies for Propose stage as well.
+
+In version 4.0 Paxos prepare and propose stage for local requests are optimized (`CASSANDRA-13862
+<https://issues.apache.org/jira/browse/CASSANDRA-13862>`_).
+
+Quality Assurance
+^^^^^^^^^^^^^^^^^
+
+Several other quality assurance improvements have been made in version 4.0 (`CASSANDRA-15066
+<https://issues.apache.org/jira/browse/CASSANDRA-15066>`_).
+
+Framing
+*******
+Version 4.0 introduces framing to all internode messages, i.e. the grouping of messages into a single logical payload with headers and trailers; these frames are guaranteed to either contain at most one message, that is split into its own unique sequence of frames (for large messages), or that a frame contains only complete messages.
+
+Corruption prevention
+*********************
+Previously, intra-datacenter internode messages would be unprotected from corruption by default, as only LZ4 provided any integrity checks. All messages to post 4.0 nodes are written to explicit frames, which may be:
+
+- LZ4 encoded
+- CRC protected
+
+The Unprotected option is still available.
+
+Resilience
+**********
+For resilience, all frames are written with a separate CRC protected header, of 8 and 6 bytes respectively. If corruption occurs in this header, the connection must be reset, as before. If corruption occurs anywhere outside of the header, the corrupt frame will be skipped, leaving the connection intact and avoiding the loss of any messages unnecessarily.
+
+Previously, any issue at any point in the stream would result in the connection being reset, with the loss of any in-flight messages.
+
+Efficiency
+**********
+The overall memory usage, and number of byte shuffles, on both inbound and outbound messages is reduced.
+
+Outbound the Netty LZ4 encoder maintains a chunk size buffer (64KiB), that is filled before any compressed frame can be produced. Our frame encoders avoid this redundant copy, as well as freeing 192KiB per endpoint.
+
+Inbound, frame decoders guarantee only to copy the number of bytes necessary to parse a frame, and to never store more bytes than necessary. This improvement applies twice to LZ4 connections, improving both the message decode and the LZ4 frame decode.
+
+Inbound Path
+************
+Version 4.0 introduces several improvements to the inbound path.
+
+An appropriate message handler is used based on whether large or small messages are expected on a particular connection as set in a flag. ``NonblockingBufferHandler``, running on event loop, is used for small messages, and ``BlockingBufferHandler``, running off event loop, for large messages. The single implementation of ``InboundMessageHandler`` handles messages of any size effectively by deriving size of the incoming message from the byte stream. In addition to deriving size of the message from the stream, incoming message expiration time is proactively read, before attempting to deserialize the entire message. If it’s expired at the time when a message is encountered the message is just skipped in the byte stream altogether.
+And if a message fails to be deserialized while still on the receiving side - say, because of table id or column being unknown - bytes are skipped, without dropping the entire connection and losing all the buffered messages. An immediately reply back is sent to the coordinator node with the failure reason, rather than waiting for the coordinator callback to expire. This logic is extended to a corrupted frame; a corrupted frame is safely skipped over without dropping the connection.
+
+Inbound path imposes strict limits on memory utilization. Specifically, the memory occupied by all parsed, but unprocessed messages is bound - on per-connection, per-endpoint, and global basis. Once a connection exceeds its local unprocessed capacity and cannot borrow any permits from per-endpoint and global reserve, it simply stops processing further messages, providing natural backpressure - until sufficient capacity is regained.
+
+Outbound Connections
+********************
+
+Opening a connection
+++++++++++++++++++++
+A consistent approach is adopted for all kinds of failure to connect, including: refused by endpoint, incompatible versions, or unexpected exceptions;
+
+- Retry forever, until either success or no messages waiting to deliver.
+- Wait incrementally longer periods before reconnecting, up to a maximum of 1s.
+- While failing to connect, no reserve queue limits are acquired.
+
+Closing a connection
+++++++++++++++++++++
+- Correctly drains outbound messages that are waiting to be delivered (unless disconnected and fail to reconnect).
+- Messages written to a closing connection are either delivered or rejected, with a new connection being opened if the old is irrevocably closed.
+- Unused connections are pruned eventually.
+
+Reconnecting
+++++++++++++
+
+We sometimes need to reconnect a perfectly valid connection, e.g. if the preferred IP address changes. We ensure that the underlying connection has no in-progress operations before closing it and reconnecting.
+
+Message Failure
+++++++++++++++++
+Propagates to callbacks instantly, better preventing overload by reclaiming committed memory.
+
+Expiry
+~~~~~~~~
+- No longer experiences head-of-line blocking (e.g. undroppable message preventing all droppable messages from being expired).
+- While overloaded, expiry is attempted eagerly on enqueuing threads.
+- While disconnected we schedule regular pruning, to handle the case where messages are no longer being sent, but we have a large backlog to expire.
+
+Overload
+~~~~~~~~~
+- Tracked by bytes queued, as opposed to number of messages.
+
+Serialization Errors
+~~~~~~~~~~~~~~~~~~~~~
+- Do not result in the connection being invalidated; the message is simply completed with failure, and then erased from the frame.
+- Includes detected mismatch between calculated serialization size to actual.
+
+Failures to flush to network, perhaps because the connection has been reset are not currently notified to callback handlers, as the necessary information has been discarded, though it would be possible to do so in future if we decide it is worth our while.
+
+QoS
++++++
+"Gossip" connection has been replaced with a general purpose "Urgent" connection, for any small messages impacting system stability.
+
+Metrics
++++++++
+We track, and expose via Virtual Table and JMX, the number of messages and bytes that: we could not serialize or flush due to an error, we dropped due to overload or timeout, are pending, and have successfully sent.
+
+Added a Message size limit
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Cassandra pre-4.0 doesn't protect the server from allocating huge buffers for the inter-node Message objects. Adding a message size limit would be good to deal with issues such as a malfunctioning cluster participant. Version 4.0 introduced max message size config param, akin to max mutation size - set to endpoint reserve capacity by default.
+
+Recover from unknown table when deserializing internode messages
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+As discussed in (`CASSANDRA-9289
+<https://issues.apache.org/jira/browse/CASSANDRA-9289>`_) it would be nice to gracefully recover from seeing an unknown table in a message from another node. Pre-4.0, we close the connection and reconnect, which can cause other concurrent queries to fail.
+Version 4.0  fixes the issue by wrapping message in-stream with
+``TrackedDataInputPlus``, catching
+``UnknownCFException``, and skipping the remaining bytes in this message. TCP won't be closed and it will remain connected for other messages.
diff --git a/src/doc/3.11.11/_sources/new/streaming.rst.txt b/src/doc/3.11.11/_sources/new/streaming.rst.txt
new file mode 100644
index 0000000..849b43d
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/streaming.rst.txt
@@ -0,0 +1,167 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Improved Streaming  
+---------------------  
+
+Apache Cassandra 4.0 has made several improvements to streaming.  Streaming is the process used by nodes of a cluster to exchange data in the form of SSTables.  Streaming of SSTables is performed for several operations, such as:
+
+-          SSTable Repair
+-          Host Replacement
+-          Range movements
+-          Bootstrapping
+-          Rebuild
+-          Cluster expansion
+
+Streaming based on Netty
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Streaming in Cassandra 4.0 is based on Non-blocking Input/Output (NIO) with Netty (`CASSANDRA-12229
+<https://issues.apache.org/jira/browse/CASSANDRA-12229>`_). It replaces the single-threaded (or sequential), synchronous, blocking model of streaming messages and transfer of files. Netty supports non-blocking, asynchronous, multi-threaded streaming with which multiple connections are opened simultaneously.  Non-blocking implies that threads are not blocked as they don’t wait for a response for a sent request. A response could be returned in a different thread. With asynchronous, connections and threads are decoupled and do not have a 1:1 relation. Several more connections than threads may be opened.    
+
+Zero Copy Streaming
+^^^^^^^^^^^^^^^^^^^^ 
+
+Pre-4.0, during streaming Cassandra reifies the SSTables into objects. This creates unnecessary garbage and slows down the whole streaming process as some SSTables can be transferred as a whole file rather than individual partitions. Cassandra 4.0 has added support for streaming entire SSTables when possible (`CASSANDRA-14556
+<https://issues.apache.org/jira/browse/CASSANDRA-14556>`_) for faster Streaming using ZeroCopy APIs. If enabled, Cassandra will use ZeroCopy for eligible SSTables significantly speeding up transfers and increasing throughput.  A zero-copy path avoids bringing data into user-space on both sending and receiving side. Any streaming related operations will notice corresponding improvement. Zero copy streaming is hardware bound; only limited by the hardware limitations (Network and Disk IO ).
+
+High Availability
+*****************
+In benchmark tests Zero Copy Streaming is 5x faster than partitions based streaming. Faster streaming provides the benefit of improved availability. A cluster’s recovery mainly depends on the streaming speed, Cassandra clusters with failed nodes will be able to recover much more quickly (5x faster). If a node fails, SSTables need to be streamed to a replacement node. During the replacement operation, the new Cassandra node streams SSTables from the neighboring nodes that hold copies of the data belonging to this new node’s token range. Depending on the amount of data stored, this process can require substantial network bandwidth, taking some time to complete. The longer these range movement operations take, the more the cluster availability is lost. Failure of multiple nodes would reduce high availability greatly. The faster the new node completes streaming its data, the faster it can serve traffic, increasing the availability of the cluster.
+
+Enabling Zero Copy Streaming
+***************************** 
+Zero copy streaming is enabled by setting the following setting in ``cassandra.yaml``.
+
+::
+
+ stream_entire_sstables: true
+
+It is enabled by default. 
+
+This feature is automatically disabled if internode encryption is enabled.
+
+SSTables Eligible for Zero Copy Streaming
+*****************************************
+Zero copy streaming is used if all partitions within the SSTable need to be transmitted. This is common when using ``LeveledCompactionStrategy`` or when partitioning SSTables by token range has been enabled. All partition keys in the SSTables are iterated over to determine the eligibility for Zero Copy streaming.
+
+Benefits of Zero Copy Streaming
+******************************* 
+When enabled, it permits Cassandra to zero-copy stream entire eligible SSTables between nodes, including every component. This speeds up the network transfer significantly subject to throttling specified by ``stream_throughput_outbound_megabits_per_sec``. 
+ 
+Enabling zero copy streaming also reduces the GC pressure on the sending and receiving nodes.
+
+.. note:: While this feature tries to keep the disks balanced, it cannot guarantee it. 
+   For instance, it is expected that some of the SSTables do not fit entirely in their disk boundaries, when bootstraping a new node having multiple data directoris.
+
+Configuring for Zero Copy Streaming
+*********************************** 
+Throttling would reduce the streaming speed. The ``stream_throughput_outbound_megabits_per_sec`` throttles all outbound streaming file transfers on a node to the given total throughput in Mbps. When unset, the default is 200 Mbps or 25 MB/s.
+
+::
+
+ stream_throughput_outbound_megabits_per_sec: 200
+
+To run any Zero Copy streaming benchmark the ``stream_throughput_outbound_megabits_per_sec`` must be set to a really high value otherwise, throttling will be significant and the benchmark results will not be meaningful.
+ 
+The ``inter_dc_stream_throughput_outbound_megabits_per_sec`` throttles all streaming file transfer between the datacenters, this setting allows users to throttle inter dc stream throughput in addition to throttling all network stream traffic as configured with ``stream_throughput_outbound_megabits_per_sec``. When unset, the default is 200 Mbps or 25 MB/s.
+
+::
+
+ inter_dc_stream_throughput_outbound_megabits_per_sec: 200
+
+SSTable Components Streamed with Zero Copy Streaming
+***************************************************** 
+Zero Copy Streaming streams entire SSTables.  SSTables are made up of multiple components in separate files. SSTable components streamed are listed in Table 1.
+
+Table 1. SSTable Components
+
++------------------+---------------------------------------------------+
+|SSTable Component | Description                                       | 
++------------------+---------------------------------------------------+
+| Data.db          |The base data for an SSTable: the remaining        |
+|                  |components can be regenerated based on the data    |
+|                  |component.                                         |                                 
++------------------+---------------------------------------------------+
+| Index.db         |Index of the row keys with pointers to their       |
+|                  |positions in the data file.                        |                                                                          
++------------------+---------------------------------------------------+
+| Filter.db        |Serialized bloom filter for the row keys in the    |
+|                  |SSTable.                                           |                                                                          
++------------------+---------------------------------------------------+
+|CompressionInfo.db|File to hold information about uncompressed        |
+|                  |data length, chunk offsets etc.                    |                                                     
++------------------+---------------------------------------------------+
+| Statistics.db    |Statistical metadata about the content of the      |
+|                  |SSTable.                                           |                                                                          
++------------------+---------------------------------------------------+
+| Digest.crc32     |Holds CRC32 checksum of the data file              | 
+|                  |size_bytes.                                        |                                                                         
++------------------+---------------------------------------------------+
+| CRC.db           |Holds the CRC32 for chunks in an uncompressed file.|                                                                         
++------------------+---------------------------------------------------+
+| Summary.db       |Holds SSTable Index Summary                        |
+|                  |(sampling of Index component)                      |                                                                          
++------------------+---------------------------------------------------+
+| TOC.txt          |Table of contents, stores the list of all          |
+|                  |components for the SSTable.                        |                                                                         
++------------------+---------------------------------------------------+
+ 
+Custom component, used by e.g. custom compaction strategy may also be included.
+
+Repair Streaming Preview
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Repair with ``nodetool repair`` involves streaming of repaired SSTables and a repair preview has been added to provide an estimate of the amount of repair streaming that would need to be performed. Repair preview (`CASSANDRA-13257
+<https://issues.apache.org/jira/browse/CASSANDRA-13257>`_) is invoke with ``nodetool repair --preview`` using option:
+
+::
+
+-prv, --preview
+
+It determines ranges and amount of data to be streamed, but doesn't actually perform repair.
+
+Parallelizing of Streaming of Keyspaces
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
+The streaming of the different keyspaces for bootstrap and rebuild has been parallelized in Cassandra 4.0 (`CASSANDRA-4663
+<https://issues.apache.org/jira/browse/CASSANDRA-4663>`_).
+
+Unique nodes for Streaming in Multi-DC deployment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Range Streamer picks unique nodes to stream data from when number of replicas in each DC is three or more (`CASSANDRA-4650
+<https://issues.apache.org/jira/browse/CASSANDRA-4650>`_). What the optimization does is to even out the streaming load across the cluster. Without the optimization, some node can be picked up to stream more data than others. This patch allows to select dedicated node to stream only one range.
+
+This will increase the performance of bootstrapping a node and will also put less pressure on nodes serving the data. This does not affect if N < 3 in each DC as then it streams data from only 2 nodes.
+
+Stream Operation Types 
+^^^^^^^^^^^^^ 
+
+It is important to know the type or purpose of a certain stream. Version 4.0 (`CASSANDRA-13064
+<https://issues.apache.org/jira/browse/CASSANDRA-13064>`_) adds an ``enum`` to distinguish between the different types  of streams.  Stream types are available both in a stream request and a stream task. The different stream types are:
+
+- Restore replica count
+- Unbootstrap
+- Relocation
+- Bootstrap
+- Rebuild
+- Bulk Load
+- Repair
+
+Disallow Decommission when number of Replicas will drop below configured RF
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+`CASSANDRA-12510
+<https://issues.apache.org/jira/browse/CASSANDRA-12510>`_ guards against decommission that will drop # of replicas below configured replication factor (RF), and adds the ``--force`` option that allows decommission to continue if intentional; force decommission of this node even when it reduces the number of replicas to below configured RF.
diff --git a/src/doc/3.11.11/_sources/new/transientreplication.rst.txt b/src/doc/3.11.11/_sources/new/transientreplication.rst.txt
new file mode 100644
index 0000000..aa39a11
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/transientreplication.rst.txt
@@ -0,0 +1,155 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Transient Replication
+---------------------
+
+**Note**:
+
+Transient Replication (`CASSANDRA-14404
+<https://issues.apache.org/jira/browse/CASSANDRA-14404>`_) is an experimental feature designed for expert Apache Cassandra users who are able to validate every aspect of the database for their application and deployment.
+That means being able to check that operations like reads, writes, decommission, remove, rebuild, repair, and replace all work with your queries, data, configuration, operational practices, and availability requirements.
+Apache Cassandra 4.0 has the initial implementation of transient replication. Future releases of Cassandra will make this feature suitable for a wider audience.
+It is anticipated that a future version will support monotonic reads with transient replication as well as LWT, logged batches, and counters. Being experimental, Transient replication is **not** recommended for production use.
+
+Objective
+^^^^^^^^^
+
+The objective of transient replication is to decouple storage requirements from data redundancy (or consensus group size) using incremental repair, in order to reduce storage overhead.
+Certain nodes act as full replicas (storing all the data for a given token range), and some nodes act as transient replicas, storing only unrepaired data for the same token ranges.
+
+The optimization that is made possible with transient replication is called "Cheap quorums", which implies that data redundancy is increased without corresponding increase in storage usage.
+
+Transient replication is useful when sufficient full replicas are available to receive and store all the data.
+Transient replication allows you to configure a subset of replicas to only replicate data that hasn't been incrementally repaired.
+As an optimization, we can avoid writing data to a transient replica if we have successfully written data to the full replicas.
+
+After incremental repair, transient data stored on transient replicas can be discarded.
+
+Enabling Transient Replication
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Transient replication is not enabled by default.  Transient replication must be enabled on each node in a cluster separately by setting the following configuration property in ``cassandra.yaml``.
+
+::
+
+ enable_transient_replication: true
+
+Transient replication may be configured with both ``SimpleStrategy`` and ``NetworkTopologyStrategy``. Transient replication is configured by setting replication factor as ``<total_replicas>/<transient_replicas>``.
+
+As an example, create a keyspace with replication factor (RF) 3.
+
+::
+
+ CREATE KEYSPACE CassandraKeyspaceSimple WITH replication = {'class': 'SimpleStrategy',
+ 'replication_factor' : 3/1};
+
+
+As another example, ``some_keysopace keyspace`` will have 3 replicas in DC1, 1 of which is transient, and 5 replicas in DC2, 2 of which are transient:
+
+::
+
+ CREATE KEYSPACE some_keysopace WITH replication = {'class': 'NetworkTopologyStrategy',
+ 'DC1' : '3/1'', 'DC2' : '5/2'};
+
+Transiently replicated keyspaces only support tables with ``read_repair`` set to ``NONE``.
+
+Important Restrictions:
+
+- RF cannot be altered while some endpoints are not in a normal state (no range movements).
+- You can't add full replicas if there are any transient replicas. You must first remove all transient replicas, then change the # of full replicas, then add back the transient replicas.
+- You can only safely increase number of transients one at a time with incremental repair run in between each time.
+
+
+Additionally, transient replication cannot be used for:
+
+- Monotonic Reads
+- Lightweight Transactions (LWTs)
+- Logged Batches
+- Counters
+- Keyspaces using materialized views
+- Secondary indexes (2i)
+
+Cheap Quorums
+^^^^^^^^^^^^^
+
+Cheap quorums are a set of optimizations on the write path to avoid writing to transient replicas unless sufficient full replicas are not available to satisfy the requested consistency level.
+Hints are never written for transient replicas.  Optimizations on the read path prefer reading from transient replicas.
+When writing at quorum to a table configured to use transient replication the quorum will always prefer available full
+replicas over transient replicas so that transient replicas don't have to process writes. Tail latency is reduced by
+rapid write protection (similar to rapid read protection) when full replicas are slow or unavailable by sending writes
+to transient replicas. Transient replicas can serve reads faster as they don't have to do anything beyond bloom filter
+checks if they have no data. With vnodes and large cluster sizes they will not have a large quantity of data
+even for failure of one or more full replicas where transient replicas start to serve a steady amount of write traffic
+for some of their transiently replicated ranges.
+
+Speculative Write Option
+^^^^^^^^^^^^^^^^^^^^^^^^
+The ``CREATE TABLE`` adds an option ``speculative_write_threshold`` for  use with transient replicas. The option is of type ``simple`` with default value as ``99PERCENTILE``. When replicas are slow or unresponsive  ``speculative_write_threshold`` specifies the threshold at which a cheap quorum write will be upgraded to include transient replicas.
+
+
+Pending Ranges and Transient Replicas
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Pending ranges refers to the movement of token ranges between transient replicas. When a transient range is moved, there
+will be a period of time where both transient replicas would need to receive any write intended for the logical
+transient replica so that after the movement takes effect a read quorum is able to return a response. Nodes are *not*
+temporarily transient replicas during expansion. They stream data like a full replica for the transient range before they
+can serve reads. A pending state is incurred similar to how there is a pending state for full replicas. Transient replicas
+also always receive writes when they are pending. Pending transient ranges are sent a bit more data and reading from
+them is avoided.
+
+
+Read Repair and Transient Replicas
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Read repair never attempts to repair a transient replica. Reads will always include at least one full replica.
+They should also prefer transient replicas where possible. Range scans ensure the entire scanned range performs
+replica selection that satisfies the requirement that every range scanned includes one full replica. During incremental
+& validation repair handling, at transient replicas anti-compaction does not output any data for transient ranges as the
+data will be dropped after repair, and  transient replicas never have data streamed to them.
+
+
+Transitioning between Full Replicas and Transient Replicas
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The additional state transitions that transient replication introduces requires streaming and ``nodetool cleanup`` to
+behave differently.  When data is streamed it is ensured that it is streamed from a full replica and not a transient replica.
+
+Transitioning from not replicated to transiently replicated means that a node must stay pending until the next incremental
+repair completes at which point the data for that range is known to be available at full replicas.
+
+Transitioning from transiently replicated to fully replicated requires streaming from a full replica and is identical
+to how data is streamed when transitioning from not replicated to replicated. The transition is managed so the transient
+replica is not read from as a full replica until streaming completes. It can be used immediately for a write quorum.
+
+Transitioning from fully replicated to transiently replicated requires cleanup to remove repaired data from the transiently
+replicated range to reclaim space. It can be used immediately for a write quorum.
+
+Transitioning from transiently replicated to not replicated requires cleanup to be run to remove the formerly transiently replicated data.
+
+When transient replication is in use ring changes are supported including   add/remove node, change RF, add/remove DC.
+
+
+Transient Replication supports EACH_QUORUM
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+(`CASSANDRA-14727
+<https://issues.apache.org/jira/browse/CASSANDRA-14727>`_) adds support for Transient Replication support for ``EACH_QUORUM``. Per (`CASSANDRA-14768
+<https://issues.apache.org/jira/browse/CASSANDRA-14768>`_), we ensure we write to at least a ``QUORUM`` of nodes in every DC,
+regardless of how many responses we need to wait for and our requested consistency level. This is to minimally surprise
+users with transient replication; with normal writes, we soft-ensure that we reach ``QUORUM`` in all DCs we are able to,
+by writing to every node; even if we don't wait for ACK, we have in both cases sent sufficient messages.
diff --git a/src/doc/3.11.11/_sources/new/virtualtables.rst.txt b/src/doc/3.11.11/_sources/new/virtualtables.rst.txt
new file mode 100644
index 0000000..1c8766c
--- /dev/null
+++ b/src/doc/3.11.11/_sources/new/virtualtables.rst.txt
@@ -0,0 +1,341 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Virtual Tables
+--------------
+
+Apache Cassandra 4.0 implements virtual tables (`CASSANDRA-7622
+<https://issues.apache.org/jira/browse/CASSANDRA-7622>`_).
+
+Definition
+^^^^^^^^^^
+
+A virtual table is a table that is backed by an API instead of data explicitly managed and stored as SSTables. Apache Cassandra 4.0 implements a virtual keyspace interface for virtual tables. Virtual tables are specific to each node. 
+
+Objective
+^^^^^^^^^
+
+A virtual table could have several uses including:
+
+- Expose metrics through CQL
+- Expose YAML configuration information
+
+How  are Virtual Tables different from regular tables?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Virtual tables and virtual keyspaces are quite different from regular tables and keyspaces respectively such as:
+
+- Virtual tables are read-only, but it is likely to change
+- Virtual tables are not replicated
+- Virtual tables are local only and non distributed
+- Virtual tables have no associated SSTables
+- Consistency level of the queries sent virtual tables are ignored
+- Virtual tables are managed by Cassandra and a user cannot run  DDL to create new virtual tables or DML to modify existing virtual       tables
+- Virtual tables are created in special keyspaces and not just any keyspace
+- All existing virtual tables use ``LocalPartitioner``. Since a virtual table is not replicated the partitioner sorts in order of     partition   keys instead of by their hash.
+- Making advanced queries with ``ALLOW FILTERING`` and aggregation functions may be used with virtual tables even though in normal  tables we   don't recommend it
+
+Virtual Keyspaces
+^^^^^^^^^^^^^^^^^
+
+Apache Cassandra 4.0 has added two new keyspaces for virtual tables: ``system_virtual_schema`` and ``system_views``. Run the following command to list the keyspaces:
+
+::
+
+ cqlsh> DESC KEYSPACES;
+ system_schema  system       system_distributed  system_virtual_schema
+ system_auth      system_traces       system_views
+
+The ``system_virtual_schema keyspace`` contains schema information on virtual tables. The ``system_views`` keyspace contains the actual virtual tables.
+
+Virtual Table Limitations
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Virtual tables and virtual keyspaces have some limitations initially though some of these could change such as:
+
+- Cannot alter or drop virtual keyspaces or tables
+- Cannot truncate virtual tables
+- Expiring columns are not supported by virtual tables
+- Conditional updates are not supported by virtual tables
+- Cannot create tables in virtual keyspaces
+- Cannot perform any operations against virtual keyspace
+- Secondary indexes are not supported on virtual tables
+- Cannot create functions in virtual keyspaces
+- Cannot create types in virtual keyspaces
+- Materialized views are not supported on virtual tables
+- Virtual tables don't support ``DELETE`` statements
+- Cannot ``CREATE TRIGGER`` against a virtual table
+- Conditional ``BATCH`` statements cannot include mutations for virtual tables
+- Cannot include a virtual table statement in a logged batch
+- Mutations for virtual and regular tables cannot exist in the same batch
+- Cannot create aggregates in virtual keyspaces; but may run aggregate functions on select
+
+Listing and Describing Virtual Tables
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Virtual tables in a virtual keyspace may be listed with ``DESC TABLES``.  The ``system_views`` virtual keyspace tables include the following:
+
+::
+
+ cqlsh> USE system_views;
+ cqlsh:system_views> DESC TABLES;
+ coordinator_scans   clients             tombstones_scanned  internode_inbound
+ disk_usage          sstable_tasks       live_scanned        caches
+ local_writes        max_partition_size  local_reads
+ coordinator_writes  internode_outbound  thread_pools
+ local_scans         coordinator_reads   settings
+
+Some of the salient virtual tables in ``system_views`` virtual keyspace are described in Table 1.
+
+Table 1 : Virtual Tables in system_views
+
++------------------+---------------------------------------------------+
+|Virtual Table     | Description                                       |
++------------------+---------------------------------------------------+
+| clients          |Lists information about all connected clients.     |
++------------------+---------------------------------------------------+
+| disk_usage       |Disk usage including disk_space, keyspace_name,    |
+|                  |and table_name by system keyspaces.                |
++------------------+---------------------------------------------------+
+| local_writes     |A table metric for local writes                    |
+|                  |including count, keyspace_name,                    |
+|                  |max, median, per_second, and                       |
+|                  |table_name.                                        |
++------------------+---------------------------------------------------+
+| caches           |Displays the general cache information including   |
+|                  |cache name, capacity_bytes, entry_count, hit_count,|
+|                  |hit_ratio double, recent_hit_rate_per_second,      |
+|                  |recent_request_rate_per_second, request_count, and |
+|                  |size_bytes.                                        |
++------------------+---------------------------------------------------+
+| local_reads      |A table metric for  local reads information.       |
++------------------+---------------------------------------------------+
+| sstable_tasks    |Lists currently running tasks such as compactions  |
+|                  |and upgrades on SSTables.                          |
++------------------+---------------------------------------------------+
+|internode_inbound |Lists information about the inbound                |
+|                  |internode messaging.                               |
++------------------+---------------------------------------------------+
+| thread_pools     |Lists metrics for each thread pool.                |
++------------------+---------------------------------------------------+
+| settings         |Displays configuration settings in cassandra.yaml. |
++------------------+---------------------------------------------------+
+|max_partition_size|A table metric for maximum partition size.         |
++------------------+---------------------------------------------------+
+|internode_outbound|Information about the outbound internode messaging.|
+|                  |                                                   |
++------------------+---------------------------------------------------+
+
+We shall discuss some of the virtual tables in more detail next.
+
+Clients Virtual Table
+*********************
+
+The ``clients`` virtual table lists all active connections (connected clients) including their ip address, port, connection stage, driver name, driver version, hostname, protocol version, request count, ssl enabled, ssl protocol and user name:
+
+::
+
+ cqlsh:system_views> select * from system_views.clients;
+  address   | port  | connection_stage | driver_name | driver_version | hostname  | protocol_version | request_count | ssl_cipher_suite | ssl_enabled | ssl_protocol | username
+ -----------+-------+------------------+-------------+----------------+-----------+------------------+---------------+------------------+-------------+--------------+-----------
+  127.0.0.1 | 50628 |            ready |        null |           null | localhost |                4 |            55 |             null |       False |         null | anonymous
+  127.0.0.1 | 50630 |            ready |        null |           null | localhost |                4 |            70 |             null |       False |         null | anonymous
+
+ (2 rows)
+
+Some examples of how ``clients`` can be used are:
+
+- To find applications using old incompatible versions of   drivers before upgrading and with ``nodetool enableoldprotocolversions`` and  ``nodetool disableoldprotocolversions`` during upgrades.
+- To identify clients sending too many requests.
+- To find if SSL is enabled during the migration to and from   ssl.
+
+
+The virtual tables may be described with ``DESCRIBE`` statement. The DDL listed however cannot be run to create a virtual table. As an example describe the ``system_views.clients`` virtual table:
+
+::
+
+  cqlsh:system_views> DESC TABLE system_views.clients;
+ CREATE TABLE system_views.clients (
+    address inet,
+    connection_stage text,
+    driver_name text,
+    driver_version text,
+    hostname text,
+    port int,
+    protocol_version int,
+    request_count bigint,
+    ssl_cipher_suite text,
+    ssl_enabled boolean,
+    ssl_protocol text,
+    username text,
+    PRIMARY KEY (address, port)) WITH CLUSTERING ORDER BY (port ASC)
+    AND compaction = {'class': 'None'}
+    AND compression = {};
+
+Caches Virtual Table
+********************
+The ``caches`` virtual table lists information about the  caches. The four caches presently created are chunks, counters, keys and rows. A query on the ``caches`` virtual table returns the following details:
+
+::
+
+ cqlsh:system_views> SELECT * FROM system_views.caches;
+ name     | capacity_bytes | entry_count | hit_count | hit_ratio | recent_hit_rate_per_second | recent_request_rate_per_second | request_count | size_bytes
+ ---------+----------------+-------------+-----------+-----------+----------------------------+--------------------------------+---------------+------------
+   chunks |      229638144 |          29 |       166 |      0.83 |                          5 |                              6 |           200 |     475136
+ counters |       26214400 |           0 |         0 |       NaN |                          0 |                              0 |             0 |          0
+     keys |       52428800 |          14 |       124 |  0.873239 |                          4 |                              4 |           142 |       1248
+     rows |              0 |           0 |         0 |       NaN |                          0 |                              0 |             0 |          0
+
+ (4 rows)
+
+Settings Virtual Table
+**********************
+The ``settings`` table  is rather useful and lists all the current configuration settings from the ``cassandra.yaml``.  The encryption options are overridden to hide the sensitive truststore information or passwords.  The configuration settings however cannot be set using DML  on the virtual table presently:
+::
+
+ cqlsh:system_views> SELECT * FROM system_views.settings;
+
+ name                                 | value
+ -------------------------------------+--------------------
+   allocate_tokens_for_keyspace       | null
+   audit_logging_options_enabled      | false
+   auto_snapshot                      | true
+   automatic_sstable_upgrade          | false
+   cluster_name                       | Test Cluster
+   enable_transient_replication       | false
+   hinted_handoff_enabled             | true
+   hints_directory                    | /home/ec2-user/cassandra/data/hints
+   incremental_backups                | false
+   initial_token                      | null
+                            ...
+                            ...
+                            ...
+   rpc_address                        | localhost
+   ssl_storage_port                   | 7001
+   start_native_transport             | true
+   storage_port                       | 7000
+   stream_entire_sstables             | true
+   (224 rows)
+
+
+The ``settings`` table can be really useful if yaml file has been changed since startup and don't know running configuration, or to find if they have been modified via jmx/nodetool or virtual tables.
+
+
+Thread Pools Virtual Table
+**************************
+
+The ``thread_pools`` table lists information about all thread pools. Thread pool information includes active tasks, active tasks limit, blocked tasks, blocked tasks all time,  completed tasks, and pending tasks. A query on the ``thread_pools`` returns following details:
+
+::
+
+ cqlsh:system_views> select * from system_views.thread_pools;
+
+ name                         | active_tasks | active_tasks_limit | blocked_tasks | blocked_tasks_all_time | completed_tasks | pending_tasks
+ ------------------------------+--------------+--------------------+---------------+------------------------+-----------------+---------------
+             AntiEntropyStage |            0 |                  1 |             0 |                      0 |               0 |             0
+         CacheCleanupExecutor |            0 |                  1 |             0 |                      0 |               0 |             0
+           CompactionExecutor |            0 |                  2 |             0 |                      0 |             881 |             0
+         CounterMutationStage |            0 |                 32 |             0 |                      0 |               0 |             0
+                  GossipStage |            0 |                  1 |             0 |                      0 |               0 |             0
+              HintsDispatcher |            0 |                  2 |             0 |                      0 |               0 |             0
+        InternalResponseStage |            0 |                  2 |             0 |                      0 |               0 |             0
+          MemtableFlushWriter |            0 |                  2 |             0 |                      0 |               1 |             0
+            MemtablePostFlush |            0 |                  1 |             0 |                      0 |               2 |             0
+        MemtableReclaimMemory |            0 |                  1 |             0 |                      0 |               1 |             0
+               MigrationStage |            0 |                  1 |             0 |                      0 |               0 |             0
+                    MiscStage |            0 |                  1 |             0 |                      0 |               0 |             0
+                MutationStage |            0 |                 32 |             0 |                      0 |               0 |             0
+    Native-Transport-Requests |            1 |                128 |             0 |                      0 |             130 |             0
+       PendingRangeCalculator |            0 |                  1 |             0 |                      0 |               1 |             0
+ PerDiskMemtableFlushWriter_0 |            0 |                  2 |             0 |                      0 |               1 |             0
+                    ReadStage |            0 |                 32 |             0 |                      0 |              13 |             0
+                  Repair-Task |            0 |         2147483647 |             0 |                      0 |               0 |             0
+         RequestResponseStage |            0 |                  2 |             0 |                      0 |               0 |             0
+                      Sampler |            0 |                  1 |             0 |                      0 |               0 |             0
+     SecondaryIndexManagement |            0 |                  1 |             0 |                      0 |               0 |             0
+           ValidationExecutor |            0 |         2147483647 |             0 |                      0 |               0 |             0
+            ViewBuildExecutor |            0 |                  1 |             0 |                      0 |               0 |             0
+            ViewMutationStage |            0 |                 32 |             0 |                      0 |               0 |             0
+
+(24 rows)
+
+Internode Inbound Messaging Virtual Table
+*****************************************
+
+The ``internode_inbound``  virtual table is for the internode inbound messaging. Initially no internode inbound messaging may get listed. In addition to the address, port, datacenter and rack information includes  corrupt frames recovered, corrupt frames unrecovered, error bytes, error count, expired bytes, expired count, processed bytes, processed count, received bytes, received count, scheduled bytes, scheduled count, throttled count, throttled nanos, using bytes, using reserve bytes. A query on the ``internode_inbound`` returns following details:
+
+::
+
+ cqlsh:system_views> SELECT * FROM system_views.internode_inbound;
+ address | port | dc | rack | corrupt_frames_recovered | corrupt_frames_unrecovered |
+ error_bytes | error_count | expired_bytes | expired_count | processed_bytes |
+ processed_count | received_bytes | received_count | scheduled_bytes | scheduled_count | throttled_count | throttled_nanos | using_bytes | using_reserve_bytes
+ ---------+------+----+------+--------------------------+----------------------------+-
+ ----------
+ (0 rows)
+
+SSTables Tasks Virtual Table
+****************************
+
+The ``sstable_tasks`` could be used to get information about running tasks. It lists following columns:
+
+::
+
+  cqlsh:system_views> SELECT * FROM sstable_tasks;
+  keyspace_name | table_name | task_id                              | kind       | progress | total    | unit
+  ---------------+------------+--------------------------------------+------------+----------+----------+-------
+         basic |      wide2 | c3909740-cdf7-11e9-a8ed-0f03de2d9ae1 | compaction | 60418761 | 70882110 | bytes
+         basic |      wide2 | c7556770-cdf7-11e9-a8ed-0f03de2d9ae1 | compaction |  2995623 | 40314679 | bytes
+
+
+As another example, to find how much time is remaining for SSTable tasks, use the following query:
+
+::
+
+  SELECT total - progress AS remaining
+  FROM system_views.sstable_tasks;
+
+Other Virtual Tables
+********************
+
+Some examples of using other virtual tables are as follows.
+
+Find tables with most disk usage:
+
+::
+
+  cqlsh> SELECT * FROM disk_usage WHERE mebibytes > 1 ALLOW FILTERING;
+
+  keyspace_name | table_name | mebibytes
+  ---------------+------------+-----------
+     keyspace1 |  standard1 |       288
+    tlp_stress |   keyvalue |      3211
+
+Find queries on table/s with greatest read latency:
+
+::
+
+  cqlsh> SELECT * FROM  local_read_latency WHERE per_second > 1 ALLOW FILTERING;
+
+  keyspace_name | table_name | p50th_ms | p99th_ms | count    | max_ms  | per_second
+  ---------------+------------+----------+----------+----------+---------+------------
+    tlp_stress |   keyvalue |    0.043 |    0.152 | 49785158 | 186.563 |  11418.356
+
+
+The system_virtual_schema keyspace
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``system_virtual_schema`` keyspace has three tables: ``keyspaces``,  ``columns`` and  ``tables`` for the virtual keyspace definitions, virtual table definitions, and virtual column definitions  respectively. It is used by Cassandra internally and a user would not need to access it directly.
diff --git a/src/doc/3.11.11/_sources/operating/compaction.rst.txt b/src/doc/3.11.11/_sources/operating/compaction.rst.txt
index 0f39000..290c211 100644
--- a/src/doc/3.11.11/_sources/operating/compaction.rst.txt
+++ b/src/doc/3.11.11/_sources/operating/compaction.rst.txt
@@ -335,7 +335,8 @@
 use too much memory.
 
 When deciding which level to compact LCS checks the higher levels first (with LCS, a "higher" level is one with a higher
-number, L0 being the lowest one) and if the level is behind a compaction will be started in that level.
+number: L0 is the lowest one, L8 is the highest one) and if the level is behind a compaction will be started
+in that level.
 
 Major compaction
 ~~~~~~~~~~~~~~~~
diff --git a/src/doc/3.11.11/_sources/operating/compaction/index.rst.txt b/src/doc/3.11.11/_sources/operating/compaction/index.rst.txt
new file mode 100644
index 0000000..ea505dd
--- /dev/null
+++ b/src/doc/3.11.11/_sources/operating/compaction/index.rst.txt
@@ -0,0 +1,301 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. highlight:: none
+
+.. _compaction:
+
+Compaction
+----------
+
+Strategies
+^^^^^^^^^^
+
+Picking the right compaction strategy for your workload will ensure the best performance for both querying and for compaction itself.
+
+:ref:`Size Tiered Compaction Strategy <stcs>`
+    The default compaction strategy.  Useful as a fallback when other strategies don't fit the workload.  Most useful for
+    non pure time series workloads with spinning disks, or when the I/O from :ref:`LCS <lcs>` is too high.
+
+
+:ref:`Leveled Compaction Strategy <lcs>`
+    Leveled Compaction Strategy (LCS) is optimized for read heavy workloads, or workloads with lots of updates and deletes.  It is not a good choice for immutable time series data.
+
+
+:ref:`Time Window Compaction Strategy <twcs>`
+    Time Window Compaction Strategy is designed for TTL'ed, mostly immutable time series data.
+
+
+
+Types of compaction
+^^^^^^^^^^^^^^^^^^^
+
+The concept of compaction is used for different kinds of operations in Cassandra, the common thing about these
+operations is that it takes one or more sstables and output new sstables. The types of compactions are;
+
+Minor compaction
+    triggered automatically in Cassandra.
+Major compaction
+    a user executes a compaction over all sstables on the node.
+User defined compaction
+    a user triggers a compaction on a given set of sstables.
+Scrub
+    try to fix any broken sstables. This can actually remove valid data if that data is corrupted, if that happens you
+    will need to run a full repair on the node.
+Upgradesstables
+    upgrade sstables to the latest version. Run this after upgrading to a new major version.
+Cleanup
+    remove any ranges this node does not own anymore, typically triggered on neighbouring nodes after a node has been
+    bootstrapped since that node will take ownership of some ranges from those nodes.
+Secondary index rebuild
+    rebuild the secondary indexes on the node.
+Anticompaction
+    after repair the ranges that were actually repaired are split out of the sstables that existed when repair started.
+Sub range compaction
+    It is possible to only compact a given sub range - this could be useful if you know a token that has been
+    misbehaving - either gathering many updates or many deletes. (``nodetool compact -st x -et y``) will pick
+    all sstables containing the range between x and y and issue a compaction for those sstables. For STCS this will
+    most likely include all sstables but with LCS it can issue the compaction for a subset of the sstables. With LCS
+    the resulting sstable will end up in L0.
+
+When is a minor compaction triggered?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+#  When an sstable is added to the node through flushing/streaming etc.
+#  When autocompaction is enabled after being disabled (``nodetool enableautocompaction``)
+#  When compaction adds new sstables.
+#  A check for new minor compactions every 5 minutes.
+
+Merging sstables
+^^^^^^^^^^^^^^^^
+
+Compaction is about merging sstables, since partitions in sstables are sorted based on the hash of the partition key it
+is possible to efficiently merge separate sstables. Content of each partition is also sorted so each partition can be
+merged efficiently.
+
+Tombstones and Garbage Collection (GC) Grace
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Why Tombstones
+~~~~~~~~~~~~~~
+
+When a delete request is received by Cassandra it does not actually remove the data from the underlying store. Instead
+it writes a special piece of data known as a tombstone. The Tombstone represents the delete and causes all values which
+occurred before the tombstone to not appear in queries to the database. This approach is used instead of removing values
+because of the distributed nature of Cassandra.
+
+Deletes without tombstones
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Imagine a three node cluster which has the value [A] replicated to every node.::
+
+    [A], [A], [A]
+
+If one of the nodes fails and and our delete operation only removes existing values we can end up with a cluster that
+looks like::
+
+    [], [], [A]
+
+Then a repair operation would replace the value of [A] back onto the two
+nodes which are missing the value.::
+
+    [A], [A], [A]
+
+This would cause our data to be resurrected even though it had been
+deleted.
+
+Deletes with Tombstones
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Starting again with a three node cluster which has the value [A] replicated to every node.::
+
+    [A], [A], [A]
+
+If instead of removing data we add a tombstone record, our single node failure situation will look like this.::
+
+    [A, Tombstone[A]], [A, Tombstone[A]], [A]
+
+Now when we issue a repair the Tombstone will be copied to the replica, rather than the deleted data being
+resurrected.::
+
+    [A, Tombstone[A]], [A, Tombstone[A]], [A, Tombstone[A]]
+
+Our repair operation will correctly put the state of the system to what we expect with the record [A] marked as deleted
+on all nodes. This does mean we will end up accruing Tombstones which will permanently accumulate disk space. To avoid
+keeping tombstones forever we have a parameter known as ``gc_grace_seconds`` for every table in Cassandra.
+
+The gc_grace_seconds parameter and Tombstone Removal
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The table level ``gc_grace_seconds`` parameter controls how long Cassandra will retain tombstones through compaction
+events before finally removing them. This duration should directly reflect the amount of time a user expects to allow
+before recovering a failed node. After ``gc_grace_seconds`` has expired the tombstone may be removed (meaning there will
+no longer be any record that a certain piece of data was deleted), but as a tombstone can live in one sstable and the
+data it covers in another, a compaction must also include both sstable for a tombstone to be removed. More precisely, to
+be able to drop an actual tombstone the following needs to be true;
+
+- The tombstone must be older than ``gc_grace_seconds``
+- If partition X contains the tombstone, the sstable containing the partition plus all sstables containing data older
+  than the tombstone containing X must be included in the same compaction. We don't need to care if the partition is in
+  an sstable if we can guarantee that all data in that sstable is newer than the tombstone. If the tombstone is older
+  than the data it cannot shadow that data.
+- If the option ``only_purge_repaired_tombstones`` is enabled, tombstones are only removed if the data has also been
+  repaired.
+
+If a node remains down or disconnected for longer than ``gc_grace_seconds`` it's deleted data will be repaired back to
+the other nodes and re-appear in the cluster. This is basically the same as in the "Deletes without Tombstones" section.
+Note that tombstones will not be removed until a compaction event even if ``gc_grace_seconds`` has elapsed.
+
+The default value for ``gc_grace_seconds`` is 864000 which is equivalent to 10 days. This can be set when creating or
+altering a table using ``WITH gc_grace_seconds``.
+
+TTL
+^^^
+
+Data in Cassandra can have an additional property called time to live - this is used to automatically drop data that has
+expired once the time is reached. Once the TTL has expired the data is converted to a tombstone which stays around for
+at least ``gc_grace_seconds``. Note that if you mix data with TTL and data without TTL (or just different length of the
+TTL) Cassandra will have a hard time dropping the tombstones created since the partition might span many sstables and
+not all are compacted at once.
+
+Fully expired sstables
+^^^^^^^^^^^^^^^^^^^^^^
+
+If an sstable contains only tombstones and it is guaranteed that that sstable is not shadowing data in any other sstable
+compaction can drop that sstable. If you see sstables with only tombstones (note that TTL:ed data is considered
+tombstones once the time to live has expired) but it is not being dropped by compaction, it is likely that other
+sstables contain older data. There is a tool called ``sstableexpiredblockers`` that will list which sstables are
+droppable and which are blocking them from being dropped. This is especially useful for time series compaction with
+``TimeWindowCompactionStrategy`` (and the deprecated ``DateTieredCompactionStrategy``). With ``TimeWindowCompactionStrategy``
+it is possible to remove the guarantee (not check for shadowing data) by enabling ``unsafe_aggressive_sstable_expiration``.
+
+Repaired/unrepaired data
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+With incremental repairs Cassandra must keep track of what data is repaired and what data is unrepaired. With
+anticompaction repaired data is split out into repaired and unrepaired sstables. To avoid mixing up the data again
+separate compaction strategy instances are run on the two sets of data, each instance only knowing about either the
+repaired or the unrepaired sstables. This means that if you only run incremental repair once and then never again, you
+might have very old data in the repaired sstables that block compaction from dropping tombstones in the unrepaired
+(probably newer) sstables.
+
+Data directories
+^^^^^^^^^^^^^^^^
+
+Since tombstones and data can live in different sstables it is important to realize that losing an sstable might lead to
+data becoming live again - the most common way of losing sstables is to have a hard drive break down. To avoid making
+data live tombstones and actual data are always in the same data directory. This way, if a disk is lost, all versions of
+a partition are lost and no data can get undeleted. To achieve this a compaction strategy instance per data directory is
+run in addition to the compaction strategy instances containing repaired/unrepaired data, this means that if you have 4
+data directories there will be 8 compaction strategy instances running. This has a few more benefits than just avoiding
+data getting undeleted:
+
+- It is possible to run more compactions in parallel - leveled compaction will have several totally separate levelings
+  and each one can run compactions independently from the others.
+- Users can backup and restore a single data directory.
+- Note though that currently all data directories are considered equal, so if you have a tiny disk and a big disk
+  backing two data directories, the big one will be limited the by the small one. One work around to this is to create
+  more data directories backed by the big disk.
+
+Single sstable tombstone compaction
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When an sstable is written a histogram with the tombstone expiry times is created and this is used to try to find
+sstables with very many tombstones and run single sstable compaction on that sstable in hope of being able to drop
+tombstones in that sstable. Before starting this it is also checked how likely it is that any tombstones will actually
+will be able to be dropped how much this sstable overlaps with other sstables. To avoid most of these checks the
+compaction option ``unchecked_tombstone_compaction`` can be enabled.
+
+.. _compaction-options:
+
+Common options
+^^^^^^^^^^^^^^
+
+There is a number of common options for all the compaction strategies;
+
+``enabled`` (default: true)
+    Whether minor compactions should run. Note that you can have 'enabled': true as a compaction option and then do
+    'nodetool enableautocompaction' to start running compactions.
+``tombstone_threshold`` (default: 0.2)
+    How much of the sstable should be tombstones for us to consider doing a single sstable compaction of that sstable.
+``tombstone_compaction_interval`` (default: 86400s (1 day))
+    Since it might not be possible to drop any tombstones when doing a single sstable compaction we need to make sure
+    that one sstable is not constantly getting recompacted - this option states how often we should try for a given
+    sstable. 
+``log_all`` (default: false)
+    New detailed compaction logging, see :ref:`below <detailed-compaction-logging>`.
+``unchecked_tombstone_compaction`` (default: false)
+    The single sstable compaction has quite strict checks for whether it should be started, this option disables those
+    checks and for some usecases this might be needed.  Note that this does not change anything for the actual
+    compaction, tombstones are only dropped if it is safe to do so - it might just rewrite an sstable without being able
+    to drop any tombstones.
+``only_purge_repaired_tombstone`` (default: false)
+    Option to enable the extra safety of making sure that tombstones are only dropped if the data has been repaired.
+``min_threshold`` (default: 4)
+    Lower limit of number of sstables before a compaction is triggered. Not used for ``LeveledCompactionStrategy``.
+``max_threshold`` (default: 32)
+    Upper limit of number of sstables before a compaction is triggered. Not used for ``LeveledCompactionStrategy``.
+
+Further, see the section on each strategy for specific additional options.
+
+Compaction nodetool commands
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The :ref:`nodetool <nodetool>` utility provides a number of commands related to compaction:
+
+``enableautocompaction``
+    Enable compaction.
+``disableautocompaction``
+    Disable compaction.
+``setcompactionthroughput``
+    How fast compaction should run at most - defaults to 16MB/s, but note that it is likely not possible to reach this
+    throughput.
+``compactionstats``
+    Statistics about current and pending compactions.
+``compactionhistory``
+    List details about the last compactions.
+``setcompactionthreshold``
+    Set the min/max sstable count for when to trigger compaction, defaults to 4/32.
+
+Switching the compaction strategy and options using JMX
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+It is possible to switch compaction strategies and its options on just a single node using JMX, this is a great way to
+experiment with settings without affecting the whole cluster. The mbean is::
+
+    org.apache.cassandra.db:type=ColumnFamilies,keyspace=<keyspace_name>,columnfamily=<table_name>
+
+and the attribute to change is ``CompactionParameters`` or ``CompactionParametersJson`` if you use jconsole or jmc. The
+syntax for the json version is the same as you would use in an :ref:`ALTER TABLE <alter-table-statement>` statement -
+for example::
+
+    { 'class': 'LeveledCompactionStrategy', 'sstable_size_in_mb': 123, 'fanout_size': 10}
+
+The setting is kept until someone executes an :ref:`ALTER TABLE <alter-table-statement>` that touches the compaction
+settings or restarts the node.
+
+.. _detailed-compaction-logging:
+
+More detailed compaction logging
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Enable with the compaction option ``log_all`` and a more detailed compaction log file will be produced in your log
+directory.
+
+
+
+
+
diff --git a/src/doc/3.11.11/_sources/operating/compaction/lcs.rst.txt b/src/doc/3.11.11/_sources/operating/compaction/lcs.rst.txt
new file mode 100644
index 0000000..d8f2bc7
--- /dev/null
+++ b/src/doc/3.11.11/_sources/operating/compaction/lcs.rst.txt
@@ -0,0 +1,91 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+
+
+.. _LCS:
+
+Leveled Compaction Strategy
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The idea of ``LeveledCompactionStrategy`` (LCS) is that all sstables are put into different levels where we guarantee
+that no overlapping sstables are in the same level. By overlapping we mean that the first/last token of a single sstable
+are never overlapping with other sstables. This means that for a SELECT we will only have to look for the partition key
+in a single sstable per level. Each level is 10x the size of the previous one and each sstable is 160MB by default. L0
+is where sstables are streamed/flushed - no overlap guarantees are given here.
+
+When picking compaction candidates we have to make sure that the compaction does not create overlap in the target level.
+This is done by always including all overlapping sstables in the next level. For example if we select an sstable in L3,
+we need to guarantee that we pick all overlapping sstables in L4 and make sure that no currently ongoing compactions
+will create overlap if we start that compaction. We can start many parallel compactions in a level if we guarantee that
+we wont create overlap. For L0 -> L1 compactions we almost always need to include all L1 sstables since most L0 sstables
+cover the full range. We also can't compact all L0 sstables with all L1 sstables in a single compaction since that can
+use too much memory.
+
+When deciding which level to compact LCS checks the higher levels first (with LCS, a "higher" level is one with a higher
+number: L0 is the lowest one, L8 is the highest one) and if the level is behind a compaction will be started
+in that level.
+
+Major compaction
+~~~~~~~~~~~~~~~~
+
+It is possible to do a major compaction with LCS - it will currently start by filling out L1 and then once L1 is full,
+it continues with L2 etc. This is sub optimal and will change to create all the sstables in a high level instead,
+CASSANDRA-11817.
+
+Bootstrapping
+~~~~~~~~~~~~~
+
+During bootstrap sstables are streamed from other nodes. The level of the remote sstable is kept to avoid many
+compactions after the bootstrap is done. During bootstrap the new node also takes writes while it is streaming the data
+from a remote node - these writes are flushed to L0 like all other writes and to avoid those sstables blocking the
+remote sstables from going to the correct level, we only do STCS in L0 until the bootstrap is done.
+
+STCS in L0
+~~~~~~~~~~
+
+If LCS gets very many L0 sstables reads are going to hit all (or most) of the L0 sstables since they are likely to be
+overlapping. To more quickly remedy this LCS does STCS compactions in L0 if there are more than 32 sstables there. This
+should improve read performance more quickly compared to letting LCS do its L0 -> L1 compactions. If you keep getting
+too many sstables in L0 it is likely that LCS is not the best fit for your workload and STCS could work out better.
+
+Starved sstables
+~~~~~~~~~~~~~~~~
+
+If a node ends up with a leveling where there are a few very high level sstables that are not getting compacted they
+might make it impossible for lower levels to drop tombstones etc. For example, if there are sstables in L6 but there is
+only enough data to actually get a L4 on the node the left over sstables in L6 will get starved and not compacted.  This
+can happen if a user changes sstable\_size\_in\_mb from 5MB to 160MB for example. To avoid this LCS tries to include
+those starved high level sstables in other compactions if there has been 25 compaction rounds where the highest level
+has not been involved.
+
+.. _lcs-options:
+
+LCS options
+~~~~~~~~~~~
+
+``sstable_size_in_mb`` (default: 160MB)
+    The target compressed (if using compression) sstable size - the sstables can end up being larger if there are very
+    large partitions on the node.
+
+``fanout_size`` (default: 10)
+    The target size of levels increases by this fanout_size multiplier. You can reduce the space amplification by tuning
+    this option.
+
+LCS also support the ``cassandra.disable_stcs_in_l0`` startup option (``-Dcassandra.disable_stcs_in_l0=true``) to avoid
+doing STCS in L0.
+
+
diff --git a/src/doc/3.11.11/_sources/operating/compaction/stcs.rst.txt b/src/doc/3.11.11/_sources/operating/compaction/stcs.rst.txt
new file mode 100644
index 0000000..c749a59
--- /dev/null
+++ b/src/doc/3.11.11/_sources/operating/compaction/stcs.rst.txt
@@ -0,0 +1,58 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+
+.. _STCS:
+
+Size Tiered Compaction Strategy
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The basic idea of ``SizeTieredCompactionStrategy`` (STCS) is to merge sstables of approximately the same size. All
+sstables are put in different buckets depending on their size. An sstable is added to the bucket if size of the sstable
+is within ``bucket_low`` and ``bucket_high`` of the current average size of the sstables already in the bucket. This
+will create several buckets and the most interesting of those buckets will be compacted. The most interesting one is
+decided by figuring out which bucket's sstables takes the most reads.
+
+Major compaction
+~~~~~~~~~~~~~~~~
+
+When running a major compaction with STCS you will end up with two sstables per data directory (one for repaired data
+and one for unrepaired data). There is also an option (-s) to do a major compaction that splits the output into several
+sstables. The sizes of the sstables are approximately 50%, 25%, 12.5%... of the total size.
+
+.. _stcs-options:
+
+STCS options
+~~~~~~~~~~~~
+
+``min_sstable_size`` (default: 50MB)
+    Sstables smaller than this are put in the same bucket.
+``bucket_low`` (default: 0.5)
+    How much smaller than the average size of a bucket a sstable should be before not being included in the bucket. That
+    is, if ``bucket_low * avg_bucket_size < sstable_size`` (and the ``bucket_high`` condition holds, see below), then
+    the sstable is added to the bucket.
+``bucket_high`` (default: 1.5)
+    How much bigger than the average size of a bucket a sstable should be before not being included in the bucket. That
+    is, if ``sstable_size < bucket_high * avg_bucket_size`` (and the ``bucket_low`` condition holds, see above), then
+    the sstable is added to the bucket.
+
+Defragmentation
+~~~~~~~~~~~~~~~
+
+Defragmentation is done when many sstables are touched during a read.  The result of the read is put in to the memtable
+so that the next read will not have to touch as many sstables. This can cause writes on a read-only-cluster.
+
+
diff --git a/src/doc/3.11.11/_sources/operating/compaction/twcs.rst.txt b/src/doc/3.11.11/_sources/operating/compaction/twcs.rst.txt
new file mode 100644
index 0000000..3641a5a
--- /dev/null
+++ b/src/doc/3.11.11/_sources/operating/compaction/twcs.rst.txt
@@ -0,0 +1,76 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+
+.. _TWCS:
+
+Time Window CompactionStrategy
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+``TimeWindowCompactionStrategy`` (TWCS) is designed specifically for workloads where it's beneficial to have data on
+disk grouped by the timestamp of the data, a common goal when the workload is time-series in nature or when all data is
+written with a TTL. In an expiring/TTL workload, the contents of an entire SSTable likely expire at approximately the
+same time, allowing them to be dropped completely, and space reclaimed much more reliably than when using
+``SizeTieredCompactionStrategy`` or ``LeveledCompactionStrategy``. The basic concept is that
+``TimeWindowCompactionStrategy`` will create 1 sstable per file for a given window, where a window is simply calculated
+as the combination of two primary options:
+
+``compaction_window_unit`` (default: DAYS)
+    A Java TimeUnit (MINUTES, HOURS, or DAYS).
+``compaction_window_size`` (default: 1)
+    The number of units that make up a window.
+``unsafe_aggressive_sstable_expiration`` (default: false)
+    Expired sstables will be dropped without checking its data is shadowing other sstables. This is a potentially
+    risky option that can lead to data loss or deleted data re-appearing, going beyond what
+    `unchecked_tombstone_compaction` does for single  sstable compaction. Due to the risk the jvm must also be
+    started with `-Dcassandra.unsafe_aggressive_sstable_expiration=true`.
+
+Taken together, the operator can specify windows of virtually any size, and `TimeWindowCompactionStrategy` will work to
+create a single sstable for writes within that window. For efficiency during writing, the newest window will be
+compacted using `SizeTieredCompactionStrategy`.
+
+Ideally, operators should select a ``compaction_window_unit`` and ``compaction_window_size`` pair that produces
+approximately 20-30 windows - if writing with a 90 day TTL, for example, a 3 Day window would be a reasonable choice
+(``'compaction_window_unit':'DAYS','compaction_window_size':3``).
+
+TimeWindowCompactionStrategy Operational Concerns
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The primary motivation for TWCS is to separate data on disk by timestamp and to allow fully expired SSTables to drop
+more efficiently. One potential way this optimal behavior can be subverted is if data is written to SSTables out of
+order, with new data and old data in the same SSTable. Out of order data can appear in two ways:
+
+- If the user mixes old data and new data in the traditional write path, the data will be comingled in the memtables
+  and flushed into the same SSTable, where it will remain comingled.
+- If the user's read requests for old data cause read repairs that pull old data into the current memtable, that data
+  will be comingled and flushed into the same SSTable.
+
+While TWCS tries to minimize the impact of comingled data, users should attempt to avoid this behavior.  Specifically,
+users should avoid queries that explicitly set the timestamp via CQL ``USING TIMESTAMP``. Additionally, users should run
+frequent repairs (which streams data in such a way that it does not become comingled).
+
+Changing TimeWindowCompactionStrategy Options
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Operators wishing to enable ``TimeWindowCompactionStrategy`` on existing data should consider running a major compaction
+first, placing all existing data into a single (old) window. Subsequent newer writes will then create typical SSTables
+as expected.
+
+Operators wishing to change ``compaction_window_unit`` or ``compaction_window_size`` can do so, but may trigger
+additional compactions as adjacent windows are joined together. If the window size is decrease d (for example, from 24
+hours to 12 hours), then the existing SSTables will not be modified - TWCS can not split existing SSTables into multiple
+windows.
+
diff --git a/src/doc/3.11.11/_sources/plugins/index.rst.txt b/src/doc/3.11.11/_sources/plugins/index.rst.txt
new file mode 100644
index 0000000..4073a92
--- /dev/null
+++ b/src/doc/3.11.11/_sources/plugins/index.rst.txt
@@ -0,0 +1,35 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+Third-Party Plugins
+===================
+
+Available third-party plugins for Apache Cassandra
+
+CAPI-Rowcache
+-------------
+
+The Coherent Accelerator Process Interface (CAPI) is a general term for the infrastructure of attaching a Coherent accelerator to an IBM POWER system. A key innovation in IBM POWER8’s open architecture is the CAPI. It provides a high bandwidth, low latency path between external devices, the POWER8 core, and the system’s open memory architecture. IBM Data Engine for NoSQL is an integrated platform for large and fast growing NoSQL data stores. It builds on the CAPI capability of POWER8 systems and provides super-fast access to large flash storage capacity and addresses the challenges associated with typical x86 server based scale-out deployments.
+
+The official page for the `CAPI-Rowcache plugin <https://github.com/ppc64le/capi-rowcache>`__ contains further details how to build/run/download the plugin.
+
+
+Stratio’s Cassandra Lucene Index
+--------------------------------
+
+Stratio’s Lucene index is a Cassandra secondary index implementation based on `Apache Lucene <http://lucene.apache.org/>`__. It extends Cassandra’s functionality to provide near real-time distributed search engine capabilities such as with ElasticSearch or `Apache Solr <http://lucene.apache.org/solr/>`__, including full text search capabilities, free multivariable, geospatial and bitemporal search, relevance queries and sorting based on column value, relevance or distance. Each node indexes its own data, so high availability and scalability is guaranteed.
+
+The official Github repository `Cassandra Lucene Index <http://www.github.com/stratio/cassandra-lucene-index>`__ contains everything you need to build/run/configure the plugin.
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/tools/cassandra_stress.rst.txt b/src/doc/3.11.11/_sources/tools/cassandra_stress.rst.txt
new file mode 100644
index 0000000..c59d058
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/cassandra_stress.rst.txt
@@ -0,0 +1,273 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+.. highlight:: yaml
+
+.. _cassandra_stress:
+
+Cassandra Stress
+----------------
+
+cassandra-stress is a tool for benchmarking and load testing a Cassandra
+cluster. cassandra-stress supports testing arbitrary CQL tables and queries
+to allow users to benchmark their data model.
+
+This documentation focuses on user mode as this allows the testing of your
+actual schema. 
+
+Usage
+^^^^^
+There are several operation types:
+
+    * write-only, read-only, and mixed workloads of standard data
+    * write-only and read-only workloads for counter columns
+    * user configured workloads, running custom queries on custom schemas
+
+The syntax is `cassandra-stress <command> [options]`. If you want more information on a given command
+or options, just run `cassandra-stress help <command|option>`.
+
+Commands:
+    read:
+        Multiple concurrent reads - the cluster must first be populated by a write test
+    write:
+        Multiple concurrent writes against the cluster
+    mixed:
+        Interleaving of any basic commands, with configurable ratio and distribution - the cluster must first be populated by a write test
+    counter_write:
+        Multiple concurrent updates of counters.
+    counter_read:
+        Multiple concurrent reads of counters. The cluster must first be populated by a counterwrite test.
+    user:
+        Interleaving of user provided queries, with configurable ratio and distribution.
+    help:
+        Print help for a command or option
+    print:
+        Inspect the output of a distribution definition
+    legacy:
+        Legacy support mode
+
+Primary Options:
+    -pop:
+        Population distribution and intra-partition visit order
+    -insert:
+        Insert specific options relating to various methods for batching and splitting partition updates
+    -col:
+        Column details such as size and count distribution, data generator, names, comparator and if super columns should be used
+    -rate:
+        Thread count, rate limit or automatic mode (default is auto)
+    -mode:
+        Thrift or CQL with options
+    -errors:
+        How to handle errors when encountered during stress
+    -sample:
+        Specify the number of samples to collect for measuring latency
+    -schema:
+        Replication settings, compression, compaction, etc.
+    -node:
+        Nodes to connect to
+    -log:
+        Where to log progress to, and the interval at which to do it
+    -transport:
+        Custom transport factories
+    -port:
+        The port to connect to cassandra nodes on
+    -sendto:
+        Specify a stress server to send this command to
+    -graph:
+        Graph recorded metrics
+    -tokenrange:
+        Token range settings
+
+
+Suboptions:
+    Every command and primary option has its own collection of suboptions. These are too numerous to list here.
+    For information on the suboptions for each command or option, please use the help command,
+    `cassandra-stress help <command|option>`.
+
+User mode
+^^^^^^^^^
+
+User mode allows you to use your stress your own schemas. This can save time in
+the long run rather than building an application and then realising your schema
+doesn't scale.
+
+Profile
++++++++
+
+User mode requires a profile defined in YAML.
+Multiple YAML files may be specified in which case operations in the ops argument are referenced as specname.opname.
+
+An identifier for the profile::
+
+  specname: staff_activities
+
+The keyspace for the test::
+
+  keyspace: staff
+
+CQL for the keyspace. Optional if the keyspace already exists::
+
+  keyspace_definition: |
+   CREATE KEYSPACE stresscql WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
+
+The table to be stressed::
+  
+  table: staff_activities
+
+CQL for the table. Optional if the table already exists::
+
+  table_definition: |
+    CREATE TABLE staff_activities (
+        name text,
+        when timeuuid,
+        what text,
+        PRIMARY KEY(name, when, what)
+    ) 
+
+
+Optional meta information on the generated columns in the above table.
+The min and max only apply to text and blob types.
+The distribution field represents the total unique population
+distribution of that column across rows::
+
+    columnspec:
+      - name: name
+        size: uniform(5..10) # The names of the staff members are between 5-10 characters
+        population: uniform(1..10) # 10 possible staff members to pick from
+      - name: when
+        cluster: uniform(20..500) # Staff members do between 20 and 500 events
+      - name: what
+        size: normal(10..100,50)
+
+Supported types are:
+
+An exponential distribution over the range [min..max]::
+
+    EXP(min..max)
+
+An extreme value (Weibull) distribution over the range [min..max]::
+
+    EXTREME(min..max,shape)
+
+A gaussian/normal distribution, where mean=(min+max)/2, and stdev is (mean-min)/stdvrng::
+
+    GAUSSIAN(min..max,stdvrng)
+
+A gaussian/normal distribution, with explicitly defined mean and stdev::
+
+    GAUSSIAN(min..max,mean,stdev)
+
+A uniform distribution over the range [min, max]::
+
+    UNIFORM(min..max)
+
+A fixed distribution, always returning the same value::
+
+    FIXED(val)
+      
+If preceded by ~, the distribution is inverted
+
+Defaults for all columns are size: uniform(4..8), population: uniform(1..100B), cluster: fixed(1)
+
+Insert distributions::
+
+    insert:
+      # How many partition to insert per batch
+      partitions: fixed(1)
+      # How many rows to update per partition
+      select: fixed(1)/500
+      # UNLOGGED or LOGGED batch for insert
+      batchtype: UNLOGGED
+
+
+Currently all inserts are done inside batches.
+
+Read statements to use during the test::
+
+    queries:
+       events:
+          cql: select *  from staff_activities where name = ?
+          fields: samerow
+       latest_event:
+          cql: select * from staff_activities where name = ?  LIMIT 1
+          fields: samerow
+
+Running a user mode test::
+
+    cassandra-stress user profile=./example.yaml duration=1m "ops(insert=1,latest_event=1,events=1)" truncate=once
+
+This will create the schema then run tests for 1 minute with an equal number of inserts, latest_event queries and events
+queries. Additionally the table will be truncated once before the test.
+
+The full example can be found here :download:`yaml <./stress-example.yaml>`
+
+Running a user mode test with multiple yaml files::
+    cassandra-stress user profile=./example.yaml,./example2.yaml duration=1m "ops(ex1.insert=1,ex1.latest_event=1,ex2.insert=2)" truncate=once
+
+This will run operations as specified in both the example.yaml and example2.yaml files. example.yaml and example2.yaml can reference the same table
+ although care must be taken that the table definition is identical (data generation specs can be different).
+
+Lightweight transaction support
++++++++++++++++++++++++++++++++
+
+cassandra-stress supports lightweight transactions. In this it will first read current data from Cassandra and then uses read value(s)
+to fulfill lightweight transaction condition(s).
+
+Lightweight transaction update query::
+
+    queries:
+      regularupdate:
+          cql: update blogposts set author = ? where domain = ? and published_date = ?
+          fields: samerow
+      updatewithlwt:
+          cql: update blogposts set author = ? where domain = ? and published_date = ? IF body = ? AND url = ?
+          fields: samerow
+
+The full example can be found here :download:`yaml <./stress-lwt-example.yaml>`
+
+Graphing
+^^^^^^^^
+
+Graphs can be generated for each run of stress.
+
+.. image:: example-stress-graph.png
+
+To create a new graph::
+
+    cassandra-stress user profile=./stress-example.yaml "ops(insert=1,latest_event=1,events=1)" -graph file=graph.html title="Awesome graph"
+
+To add a new run to an existing graph point to an existing file and add a revision name::
+
+    cassandra-stress user profile=./stress-example.yaml duration=1m "ops(insert=1,latest_event=1,events=1)" -graph file=graph.html title="Awesome graph" revision="Second run"
+
+FAQ
+^^^^
+
+**How do you use NetworkTopologyStrategy for the keyspace?**
+
+Use the schema option making sure to either escape the parenthesis or enclose in quotes::
+
+    cassandra-stress write -schema "replication(strategy=NetworkTopologyStrategy,datacenter1=3)"
+
+**How do you use SSL?**
+
+Use the transport option::
+
+    cassandra-stress "write n=100k cl=ONE no-warmup" -transport "truststore=$HOME/jks/truststore.jks truststore-password=cassandra"
+
+**Is Cassandra Stress a secured tool?**
+
+Cassandra stress is not a secured tool. Serialization and other aspects of the tool offer no security guarantees.
diff --git a/src/doc/3.11.11/_sources/tools/generatetokens.rst.txt b/src/doc/3.11.11/_sources/tools/generatetokens.rst.txt
new file mode 100644
index 0000000..24448d0
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/generatetokens.rst.txt
@@ -0,0 +1,56 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+generatetokens
+------------
+
+Pre-generates tokens for a datacenter with the given number of nodes using the token allocation algorithm. Useful in edge-cases when generated tokens needs to be known in advance of bootstrapping nodes. In nearly all cases it is best to just let the bootstrapping nodes automatically generate their own tokens.
+ref: https://issues.apache.org/jira/browse/CASSANDRA-16205
+
+
+Usage
+^^^^^
+generatetokens -n NODES -t TOKENS --rf REPLICATION_FACTOR [--partitioner PARTITIONER] [--racks RACK_NODE_COUNTS]
+
+
+===================================                   ================================================================================
+    -n,--nodes <arg>                                  Number of nodes.
+    -t,--tokens <arg>                                 Number of tokens/vnodes per node.
+    --rf <arg>                                        Replication factor.
+    -p,--partitioner <arg>                            Database partitioner, either Murmur3Partitioner or RandomPartitioner.
+    --racks <arg>                                     Number of nodes per rack, separated by commas. Must add up to the total node count. For example, 'generatetokens -n 30 -t 8 --rf 3 --racks 10,10,10' will generate tokens for three racks of 10 nodes each.
+===================================                   ================================================================================
+
+
+This command, if used, is expected to be run before the Cassandra node is first started. The output from the command is used to configure the nodes `num_tokens` setting in the `cassandra.yaml`
+
+
+Example Output
+^^^^^^^^^^^^^^
+Example usage and output is
+
+    $ tools/bin/generatetokens -n 9 -t 4 --rf 3 --racks 3,3,3
+
+    Generating tokens for 9 nodes with 4 vnodes each for replication factor 3 and partitioner Murmur3Partitioner
+    Node 0 rack 0: [-6270077235120413733, -1459727275878514299, 2887564907718879562, 5778609289102954400]
+    Node 1 rack 1: [-8780789453057732897, -3279530982831298765, 1242905755717369197, 8125606440590916903]
+    Node 2 rack 2: [-7240625170832344686, -4453155190605073029, 74749827226930055, 4615117940688406403]
+    Node 3 rack 0: [-5361616212862743381, -2369629129354906532, 2065235331718124379, 6952107864846935651]
+    Node 4 rack 1: [-8010707311945038792, -692488724325792122, 3751341424203642982, 7538857152718926277]
+    Node 5 rack 2: [-7625666241388691739, -3866343086718185897, 5196863614895680401, 8895780530621367810]
+    Node 6 rack 0: [-5815846723991578557, -1076108000102153211, 1654070543717746788, 8510693485606142356]
+    Node 7 rack 1: [-2824580056093102649, 658827791472149626, 3319453165961261272, 6365358576974945025]
+    Node 8 rack 2: [-4159749138661629463, -1914678202616710416, 4905990777792043402, 6658733220910940338]
\ No newline at end of file
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/clientstats.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/clientstats.rst.txt
new file mode 100644
index 0000000..7f5e47a
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/clientstats.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_clientstats:
+
+clientstats
+-----------
+
+Usage
+---------
+
+.. include:: clientstats.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/disableauditlog.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/disableauditlog.rst.txt
new file mode 100644
index 0000000..4b20b0a
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/disableauditlog.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_disableauditlog:
+
+disableauditlog
+---------------
+
+Usage
+---------
+
+.. include:: disableauditlog.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/disablefullquerylog.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/disablefullquerylog.rst.txt
new file mode 100644
index 0000000..d68cd49
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/disablefullquerylog.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_disablefullquerylog:
+
+disablefullquerylog
+-------------------
+
+Usage
+---------
+
+.. include:: disablefullquerylog.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/disableoldprotocolversions.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/disableoldprotocolversions.rst.txt
new file mode 100644
index 0000000..09d8a15
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/disableoldprotocolversions.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_disableoldprotocolversions:
+
+disableoldprotocolversions
+--------------------------
+
+Usage
+---------
+
+.. include:: disableoldprotocolversions.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/enableauditlog.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/enableauditlog.rst.txt
new file mode 100644
index 0000000..7936c7a
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/enableauditlog.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_enableauditlog:
+
+enableauditlog
+--------------
+
+Usage
+---------
+
+.. include:: enableauditlog.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/enablefullquerylog.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/enablefullquerylog.rst.txt
new file mode 100644
index 0000000..ec871c2
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/enablefullquerylog.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_enablefullquerylog:
+
+enablefullquerylog
+------------------
+
+Usage
+---------
+
+.. include:: enablefullquerylog.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/enableoldprotocolversions.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/enableoldprotocolversions.rst.txt
new file mode 100644
index 0000000..e44dc37
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/enableoldprotocolversions.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_enableoldprotocolversions:
+
+enableoldprotocolversions
+-------------------------
+
+Usage
+---------
+
+.. include:: enableoldprotocolversions.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getbatchlogreplaythrottle.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getbatchlogreplaythrottle.rst.txt
new file mode 100644
index 0000000..6f56f7d
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getbatchlogreplaythrottle.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getbatchlogreplaythrottle:
+
+getbatchlogreplaythrottle
+-------------------------
+
+Usage
+---------
+
+.. include:: getbatchlogreplaythrottle.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getconcurrency.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getconcurrency.rst.txt
new file mode 100644
index 0000000..9b03734
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getconcurrency.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getconcurrency:
+
+getconcurrency
+--------------
+
+Usage
+---------
+
+.. include:: getconcurrency.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getconcurrentviewbuilders.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getconcurrentviewbuilders.rst.txt
new file mode 100644
index 0000000..e113d74
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getconcurrentviewbuilders.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getconcurrentviewbuilders:
+
+getconcurrentviewbuilders
+-------------------------
+
+Usage
+---------
+
+.. include:: getconcurrentviewbuilders.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getfullquerylog.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getfullquerylog.rst.txt
new file mode 100644
index 0000000..b8294cd
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getfullquerylog.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getfullquerylog:
+
+getfullquerylog
+---------------
+
+Usage
+---------
+
+.. include:: getfullquerylog.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getmaxhintwindow.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getmaxhintwindow.rst.txt
new file mode 100644
index 0000000..1a0fe01
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getmaxhintwindow.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getmaxhintwindow:
+
+getmaxhintwindow
+----------------
+
+Usage
+---------
+
+.. include:: getmaxhintwindow.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getseeds.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getseeds.rst.txt
new file mode 100644
index 0000000..e315630
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getseeds.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getseeds:
+
+getseeds
+--------
+
+Usage
+---------
+
+.. include:: getseeds.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/getsnapshotthrottle.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/getsnapshotthrottle.rst.txt
new file mode 100644
index 0000000..19031f3
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/getsnapshotthrottle.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_getsnapshotthrottle:
+
+getsnapshotthrottle
+-------------------
+
+Usage
+---------
+
+.. include:: getsnapshotthrottle.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/import.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/import.rst.txt
new file mode 100644
index 0000000..532ba2d
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/import.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_import:
+
+import
+------
+
+Usage
+---------
+
+.. include:: import.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/nodetool.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/nodetool.rst.txt
index 6242cf9..5d0efa7 100644
--- a/src/doc/3.11.11/_sources/tools/nodetool/nodetool.rst.txt
+++ b/src/doc/3.11.11/_sources/tools/nodetool/nodetool.rst.txt
@@ -6,10 +6,11 @@
 Usage
 ---------
 
-usage: nodetool [(-u <username> | --username <username>)]
-        [(-pw <password> | --password <password>)]
+usage: nodetool [(-h <host> | --host <host>)]
+        [(-u <username> | --username <username>)]
         [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)]
-        [(-h <host> | --host <host>)] [(-p <port> | --port <port>)] <command> [<args>]
+        [(-p <port> | --port <port>)] [(-pw <password> | --password <password>)]
+        [(-pp | --print-port)] <command> [<args>]
 
 The most commonly used nodetool commands are:
 
@@ -19,7 +20,9 @@
 
     :doc:`cleanup` -                       Triggers the immediate cleanup of keys no longer belonging to a node. By default, clean all keyspaces
 
-    :doc:`clearsnapshot` -                 Remove the snapshot with the given name from the given keyspaces. If no snapshotName is specified we will remove all snapshots
+    :doc:`clearsnapshot` -                 Remove the snapshot with the given name from the given keyspaces
+
+    :doc:`clientstats` -                   Print information about connected clients
 
     :doc:`compact` -                       Force a (major) compaction on one or more tables or user-defined compaction on given SSTables
 
@@ -33,35 +36,43 @@
 
     :doc:`describering` -                  Shows the token ranges info of a given keyspace
 
+    :doc:`disableauditlog` -               Disable the audit log
+
     :doc:`disableautocompaction` -         Disable autocompaction for the given keyspace and table
 
     :doc:`disablebackup` -                 Disable incremental backup
 
     :doc:`disablebinary` -                 Disable native transport (binary protocol)
 
+    :doc:`disablefullquerylog` -           Disable the full query log
+
     :doc:`disablegossip` -                 Disable gossip (effectively marking the node down)
 
     :doc:`disablehandoff` -                Disable storing hinted handoffs
 
     :doc:`disablehintsfordc` -             Disable hints for a data center
 
-    :doc:`disablethrift` -                 Disable thrift server
+    :doc:`disableoldprotocolversions` -    Disable old protocol versions
 
     :doc:`drain` -                         Drain the node (stop accepting writes and flush all tables)
 
+    :doc:`enableauditlog` -                Enable the audit log
+
     :doc:`enableautocompaction` -          Enable autocompaction for the given keyspace and table
 
     :doc:`enablebackup` -                  Enable incremental backup
 
     :doc:`enablebinary` -                  Reenable native transport (binary protocol)
 
+    :doc:`enablefullquerylog` -            Enable full query logging, defaults for the options are configured in cassandra.yaml
+
     :doc:`enablegossip` -                  Reenable gossip
 
     :doc:`enablehandoff` -                 Reenable future hints storing on the current node
 
     :doc:`enablehintsfordc` -              Enable hints for a data center that was previsouly disabled
 
-    :doc:`enablethrift` -                  Reenable thrift server
+    :doc:`enableoldprotocolversions` -     Enable old protocol versions
 
     :doc:`failuredetector` -               Shows the failure detector information for the cluster
 
@@ -71,18 +82,33 @@
 
     :doc:`gcstats` -                       Print GC Statistics
 
+    :doc:`getbatchlogreplaythrottle` -     Print batchlog replay throttle in KB/s. This is reduced proportionally to the number of nodes in the cluster.
+
     :doc:`getcompactionthreshold` -        Print min and max compaction thresholds for a given table
 
     :doc:`getcompactionthroughput` -       Print the MB/s throughput cap for compaction in the system
 
+    :doc:`getconcurrency` -                Get maximum concurrency for processing stages
+
     :doc:`getconcurrentcompactors` -       Get the number of concurrent compactors in the system.
 
+    :doc:`getconcurrentviewbuilders` -     Get the number of concurrent view builders in the system
+
     :doc:`getendpoints` -                  Print the end points that owns the key
 
+    :doc:`getfullquerylog` -           
+    :doc:`print` -  configuration of fql if enabled, otherwise the configuration reflected in cassandra.yaml
+
     :doc:`getinterdcstreamthroughput` -    Print the Mb/s throughput cap for inter-datacenter streaming in the system
 
     :doc:`getlogginglevels` -              Get the runtime logging levels
 
+    :doc:`getmaxhintwindow` -              Print the max hint window in ms
+
+    :doc:`getseeds` -                      Get the currently in use seed node IP list excluding the node IP
+
+    :doc:`getsnapshotthrottle` -           Print the snapshot_links_per_second throttle for snapshot/clearsnapshot
+
     :doc:`getsstables` -                   Print the sstable filenames that own the key
 
     :doc:`getstreamthroughput` -           Print the Mb/s throughput cap for streaming in the system
@@ -95,6 +121,8 @@
 
     :doc:`help` -                          Display help information
 
+    :doc:`import` -                        Import new SSTables to the system
+
     :doc:`info` -                          Print node information (uptime, load, ...)
 
     :doc:`invalidatecountercache` -        Invalidate the counter cache
@@ -105,7 +133,7 @@
 
     :doc:`join` -                          Join the ring
 
-    :doc:`listsnapshots` -                 Lists all the snapshots along with the size on disk and true size.
+    :doc:`listsnapshots` -                 Lists all the snapshots along with the size on disk and true size. True size is the total size of all SSTables which are not backed up to disk. Size on disk is total size of the snapshot on disk. Total TrueDiskSpaceUsed does not make any SSTable deduplication.
 
     :doc:`move` -                          Move node on the token ring to a new token
 
@@ -113,6 +141,8 @@
 
     :doc:`pausehandoff` -                  Pause hints delivery process
 
+    :doc:`profileload` -                   Low footprint profiling of activity for a period of time
+
     :doc:`proxyhistograms` -               Print statistic histograms for network operations
 
     :doc:`rangekeysample` -                Shows the sampled keys held across all keyspaces
@@ -127,6 +157,10 @@
 
     :doc:`reloadlocalschema` -             Reload local node schema from system tables
 
+    :doc:`reloadseeds` -                   Reload the seed node list from the seed node provider
+
+    :doc:`reloadssl` -                     Signals Cassandra to reload SSL certificates
+
     :doc:`reloadtriggers` -                Reload trigger classes
 
     :doc:`relocatesstables` -              Relocates sstables to the correct disk
@@ -135,8 +169,13 @@
 
     :doc:`repair` -                        Repair one or more tables
 
+    :doc:`repair_admin` -              
+    :doc:`list` -  and fail incremental repair sessions
+
     :doc:`replaybatchlog` -                Kick off batchlog replay and wait for finish
 
+    :doc:`resetfullquerylog` -             Stop the full query log and clean files in the configured full query log directory from cassandra.yaml as well as JMX
+
     :doc:`resetlocalschema` -              Reset node's local schema and resync
 
     :doc:`resumehandoff` -                 Resume hints delivery process
@@ -145,6 +184,8 @@
 
     :doc:`scrub` -                         Scrub (rebuild sstables for) one or more tables
 
+    :doc:`setbatchlogreplaythrottle` -     Set batchlog replay throttle in KB per second, or 0 to disable throttling. This will be reduced proportionally to the number of nodes in the cluster.
+
     :doc:`setcachecapacity` -              Set global key, row, and counter cache capacities (in MB units)
 
     :doc:`setcachekeystosave` -            Set number of keys saved by each cache for faster post-restart warmup. 0 to disable
@@ -153,13 +194,21 @@
 
     :doc:`setcompactionthroughput` -       Set the MB/s throughput cap for compaction in the system, or 0 to disable throttling
 
+    :doc:`setconcurrency` -                Set maximum concurrency for processing stage
+
     :doc:`setconcurrentcompactors` -       Set number of concurrent compactors in the system.
 
+    :doc:`setconcurrentviewbuilders` -     Set the number of concurrent view builders in the system
+
     :doc:`sethintedhandoffthrottlekb` -    Set hinted handoff throttle in kb per second, per delivery thread.
 
     :doc:`setinterdcstreamthroughput` -    Set the Mb/s throughput cap for inter-datacenter streaming in the system, or 0 to disable throttling
 
-    :doc:`setlogginglevel` -               Set the log level threshold for a given class. If both class and level are empty/null, it will reset to the initial configuration
+    :doc:`setlogginglevel` -               Set the log level threshold for a given component or class. Will reset to the initial configuration if called with no parameters.
+
+    :doc:`setmaxhintwindow` -              Set the specified max hint window in ms
+
+    :doc:`setsnapshotthrottle` -           Set the snapshot_links_per_second cap for snapshot and clearsnapshot throttling
 
     :doc:`setstreamthroughput` -           Set the Mb/s throughput cap for streaming in the system, or 0 to disable throttling
 
@@ -167,10 +216,15 @@
 
     :doc:`settraceprobability` -           Sets the probability for tracing any given request to value. 0 disables, 1 enables for all requests, 0 is the default
 
+    :doc:`sjk` -                           Run commands of 'Swiss Java Knife'. Run 'nodetool sjk --help' for more information.
+
     :doc:`snapshot` -                      Take a snapshot of specified keyspaces or a snapshot of the specified table
 
     :doc:`status` -                        Print cluster information (state, load, IDs, ...)
 
+    :doc:`statusautocompaction` -      
+    :doc:`status` -  of autocompaction of the given keyspace and table
+
     :doc:`statusbackup` -                  Status of incremental backup
 
     :doc:`statusbinary` -                  Status of native transport (binary protocol)
@@ -179,8 +233,6 @@
 
     :doc:`statushandoff` -                 Status of storing future hints on the current node
 
-    :doc:`statusthrift` -                  Status of thrift server
-
     :doc:`stop` -                          Stop compaction
 
     :doc:`stopdaemon` -                    Stop cassandra daemon
@@ -189,7 +241,7 @@
 
     :doc:`tablestats` -                    Print statistics on tables
 
-    :doc:`toppartitions` -                 Sample and print the most active partitions for a given column family
+    :doc:`toppartitions` -                 Sample and print the most active partitions
 
     :doc:`tpstats` -                       Print usage statistics of thread pools
 
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/profileload.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/profileload.rst.txt
new file mode 100644
index 0000000..aff289f
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/profileload.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_profileload:
+
+profileload
+-----------
+
+Usage
+---------
+
+.. include:: profileload.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/reloadseeds.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/reloadseeds.rst.txt
new file mode 100644
index 0000000..5c6751d
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/reloadseeds.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_reloadseeds:
+
+reloadseeds
+-----------
+
+Usage
+---------
+
+.. include:: reloadseeds.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/reloadssl.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/reloadssl.rst.txt
new file mode 100644
index 0000000..9781b29
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/reloadssl.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_reloadssl:
+
+reloadssl
+---------
+
+Usage
+---------
+
+.. include:: reloadssl.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/repair_admin.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/repair_admin.rst.txt
new file mode 100644
index 0000000..1212c39
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/repair_admin.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_repair_admin:
+
+repair_admin
+------------
+
+Usage
+---------
+
+.. include:: repair_admin.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/resetfullquerylog.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/resetfullquerylog.rst.txt
new file mode 100644
index 0000000..a7661ec
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/resetfullquerylog.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_resetfullquerylog:
+
+resetfullquerylog
+-----------------
+
+Usage
+---------
+
+.. include:: resetfullquerylog.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/setbatchlogreplaythrottle.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/setbatchlogreplaythrottle.rst.txt
new file mode 100644
index 0000000..2ae628a
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/setbatchlogreplaythrottle.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_setbatchlogreplaythrottle:
+
+setbatchlogreplaythrottle
+-------------------------
+
+Usage
+---------
+
+.. include:: setbatchlogreplaythrottle.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/setconcurrency.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/setconcurrency.rst.txt
new file mode 100644
index 0000000..75b0953
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/setconcurrency.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_setconcurrency:
+
+setconcurrency
+--------------
+
+Usage
+---------
+
+.. include:: setconcurrency.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/setconcurrentviewbuilders.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/setconcurrentviewbuilders.rst.txt
new file mode 100644
index 0000000..26f53a1
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/setconcurrentviewbuilders.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_setconcurrentviewbuilders:
+
+setconcurrentviewbuilders
+-------------------------
+
+Usage
+---------
+
+.. include:: setconcurrentviewbuilders.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/setmaxhintwindow.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/setmaxhintwindow.rst.txt
new file mode 100644
index 0000000..0c62c32
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/setmaxhintwindow.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_setmaxhintwindow:
+
+setmaxhintwindow
+----------------
+
+Usage
+---------
+
+.. include:: setmaxhintwindow.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/setsnapshotthrottle.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/setsnapshotthrottle.rst.txt
new file mode 100644
index 0000000..f01234a
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/setsnapshotthrottle.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_setsnapshotthrottle:
+
+setsnapshotthrottle
+-------------------
+
+Usage
+---------
+
+.. include:: setsnapshotthrottle.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/sjk.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/sjk.rst.txt
new file mode 100644
index 0000000..19bf1d6
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/sjk.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_sjk:
+
+sjk
+---
+
+Usage
+---------
+
+.. include:: sjk.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/nodetool/statusautocompaction.rst.txt b/src/doc/3.11.11/_sources/tools/nodetool/statusautocompaction.rst.txt
new file mode 100644
index 0000000..3748e0e
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/nodetool/statusautocompaction.rst.txt
@@ -0,0 +1,11 @@
+.. _nodetool_statusautocompaction:
+
+statusautocompaction
+--------------------
+
+Usage
+---------
+
+.. include:: statusautocompaction.txt
+  :literal:
+
diff --git a/src/doc/3.11.11/_sources/tools/sstable/index.rst.txt b/src/doc/3.11.11/_sources/tools/sstable/index.rst.txt
new file mode 100644
index 0000000..b9e483f
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/sstable/index.rst.txt
@@ -0,0 +1,39 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+SSTable Tools
+=============
+
+This section describes the functionality of the various sstable tools.
+
+Cassandra must be stopped before these tools are executed, or unexpected results will occur. Note: the scripts do not verify that Cassandra is stopped.
+
+.. toctree::
+   :maxdepth: 2
+
+   sstabledump
+   sstableexpiredblockers
+   sstablelevelreset
+   sstableloader
+   sstablemetadata
+   sstableofflinerelevel
+   sstablerepairedset
+   sstablescrub
+   sstablesplit
+   sstableupgrade
+   sstableutil
+   sstableverify
+
diff --git a/src/doc/3.11.11/_sources/tools/sstable/sstabledump.rst.txt b/src/doc/3.11.11/_sources/tools/sstable/sstabledump.rst.txt
new file mode 100644
index 0000000..8f38afa
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/sstable/sstabledump.rst.txt
@@ -0,0 +1,294 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+sstabledump
+-----------
+
+Dump contents of a given SSTable to standard output in JSON format.
+
+You must supply exactly one sstable. 
+
+Cassandra must be stopped before this tool is executed, or unexpected results will occur. Note: the script does not verify that Cassandra is stopped.
+
+Usage
+^^^^^
+sstabledump <options> <sstable file path> 
+
+===================================     ================================================================================
+-d                                      CQL row per line internal representation
+-e                                      Enumerate partition keys only
+-k <arg>                                Partition key
+-x <arg>                                Excluded partition key(s)
+-t                                      Print raw timestamps instead of iso8601 date strings
+-l                                      Output each row as a separate JSON object
+===================================     ================================================================================
+
+If necessary, use sstableutil first to find out the sstables used by a table.
+
+Dump entire table
+^^^^^^^^^^^^^^^^^
+
+Dump the entire table without any options.
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db > eventlog_dump_2018Jul26
+
+    cat eventlog_dump_2018Jul26
+    [
+      {
+        "partition" : {
+          "key" : [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ],
+          "position" : 0
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 61,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:23:08.378711Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:08.384Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      },
+      {
+        "partition" : {
+          "key" : [ "d18250c0-84fc-4d40-b957-4248dc9d790e" ],
+          "position" : 62
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 123,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:23:07.783522Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:07.789Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      },
+      {
+        "partition" : {
+          "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ],
+          "position" : 124
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 182,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:22:27.028809Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      }
+    ]
+
+Dump table in a more manageable format
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Use the -l option to dump each row as a separate JSON object. This will make the output easier to manipulate for large data sets. ref: https://issues.apache.org/jira/browse/CASSANDRA-13848
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -l > eventlog_dump_2018Jul26_justlines
+
+    cat eventlog_dump_2018Jul26_justlines
+    [
+      {
+        "partition" : {
+          "key" : [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ],
+          "position" : 0
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 61,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:23:08.378711Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:08.384Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      },
+      {
+        "partition" : {
+          "key" : [ "d18250c0-84fc-4d40-b957-4248dc9d790e" ],
+          "position" : 62
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 123,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:23:07.783522Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:07.789Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      },
+      {
+        "partition" : {
+          "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ],
+          "position" : 124
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 182,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:22:27.028809Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      }
+
+Dump only keys
+^^^^^^^^^^^^^^
+
+Dump only the keys by using the -e option.
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -e > eventlog_dump_2018Jul26_justkeys
+
+    cat eventlog_dump_2018Jul26b
+    [ [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ], [ "d18250c0-84fc-4d40-b957-4248dc9d790e" ], [ "cf188983-d85b-48d6-9365-25005289beb2" ]
+
+Dump row for a single key
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Dump a single key using the -k option.
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -k 3578d7de-c60d-4599-aefb-3f22a07b2bc6 > eventlog_dump_2018Jul26_singlekey
+
+    cat eventlog_dump_2018Jul26_singlekey
+    [
+      {
+        "partition" : {
+          "key" : [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ],
+          "position" : 0
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 61,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:23:08.378711Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:08.384Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      }
+
+Exclude a key or keys in dump of rows
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Dump a table except for the rows excluded with the -x option. Multiple keys can be used.
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -x 3578d7de-c60d-4599-aefb-3f22a07b2bc6 d18250c0-84fc-4d40-b957-4248dc9d790e  > eventlog_dump_2018Jul26_excludekeys
+
+    cat eventlog_dump_2018Jul26_excludekeys
+    [
+      {
+        "partition" : {
+          "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ],
+          "position" : 0
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 182,
+            "liveness_info" : { "tstamp" : "2018-07-20T20:22:27.028809Z" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      }
+
+Display raw timestamps
+^^^^^^^^^^^^^^^^^^^^^^
+
+By default, dates are displayed in iso8601 date format. Using the -t option will dump the data with the raw timestamp.
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -t -k cf188983-d85b-48d6-9365-25005289beb2 > eventlog_dump_2018Jul26_times
+
+    cat eventlog_dump_2018Jul26_times
+    [
+      {
+        "partition" : {
+          "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ],
+          "position" : 124
+        },
+        "rows" : [
+          {
+            "type" : "row",
+            "position" : 182,
+            "liveness_info" : { "tstamp" : "1532118147028809" },
+            "cells" : [
+              { "name" : "event", "value" : "party" },
+              { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" },
+              { "name" : "source", "value" : "asdf" }
+            ]
+          }
+        ]
+      }
+
+
+Display internal structure in output
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Dump the table in a format that reflects the internal structure.
+
+Example::
+
+    sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -d > eventlog_dump_2018Jul26_d
+
+    cat eventlog_dump_2018Jul26_d
+    [3578d7de-c60d-4599-aefb-3f22a07b2bc6]@0 Row[info=[ts=1532118188378711] ]:  | [event=party ts=1532118188378711], [insertedtimestamp=2018-07-20 20:23Z ts=1532118188378711], [source=asdf ts=1532118188378711]
+    [d18250c0-84fc-4d40-b957-4248dc9d790e]@62 Row[info=[ts=1532118187783522] ]:  | [event=party ts=1532118187783522], [insertedtimestamp=2018-07-20 20:23Z ts=1532118187783522], [source=asdf ts=1532118187783522]
+    [cf188983-d85b-48d6-9365-25005289beb2]@124 Row[info=[ts=1532118147028809] ]:  | [event=party ts=1532118147028809], [insertedtimestamp=2018-07-20 20:22Z ts=1532118147028809], [source=asdf ts=1532118147028809]
+
+
+
+
+
diff --git a/src/doc/3.11.11/_sources/tools/sstable/sstableexpiredblockers.rst.txt b/src/doc/3.11.11/_sources/tools/sstable/sstableexpiredblockers.rst.txt
new file mode 100644
index 0000000..ec83794
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/sstable/sstableexpiredblockers.rst.txt
@@ -0,0 +1,48 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+sstableexpiredblockers
+----------------------
+
+During compaction, entire sstables can be dropped if they contain only expired tombstones, and if it is guaranteed that the data is not newer than the data in other sstables. An expired sstable can be blocked from getting dropped if its newest timestamp is newer than the oldest data in another sstable.
+
+This tool is used to list all sstables that are blocking other sstables from getting dropped (by having older data than the newest tombstone in an expired sstable) so a user can figure out why certain sstables are still on disk.
+
+ref: https://issues.apache.org/jira/browse/CASSANDRA-10015
+
+Cassandra must be stopped before this tool is executed, or unexpected results will occur. Note: the script does not verify that Cassandra is stopped.
+
+Usage
+^^^^^
+
+sstableexpiredblockers <keyspace> <table>
+
+Output blocked sstables
+^^^^^^^^^^^^^^^^^^^^^^^
+
+If the sstables exist for the table, but no tables have older data than the newest tombstone in an expired sstable, the script will return nothing.
+
+Otherwise, the script will return `<sstable> blocks <#> expired sstables from getting dropped` followed by a list of the blocked sstables.
+
+Example::
+
+    sstableexpiredblockers keyspace1 standard1
+
+    [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-2-big-Data.db') (minTS = 5, maxTS = 5, maxLDT = 2147483647)],  blocks 1 expired sstables from getting dropped: [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-3-big-Data.db') (minTS = 1536349775157606, maxTS = 1536349780311159, maxLDT = 1536349780)],
+
+    [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-1-big-Data.db') (minTS = 1, maxTS = 10, maxLDT = 2147483647)],  blocks 1 expired sstables from getting dropped: [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-3-big-Data.db') (minTS = 1536349775157606, maxTS = 1536349780311159, maxLDT = 1536349780)],
+
+
diff --git a/src/doc/3.11.11/_sources/tools/sstable/sstablelevelreset.rst.txt b/src/doc/3.11.11/_sources/tools/sstable/sstablelevelreset.rst.txt
new file mode 100644
index 0000000..7069094
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/sstable/sstablelevelreset.rst.txt
@@ -0,0 +1,82 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+sstablelevelreset
+-----------------
+
+If LeveledCompactionStrategy is set, this script can be used to reset level to 0 on a given set of sstables. This is useful if you want to, for example, change the minimum sstable size, and therefore restart the compaction process using this new configuration.
+
+See http://cassandra.apache.org/doc/latest/operating/compaction.html#leveled-compaction-strategy for information on how levels are used in this compaction strategy.
+
+Cassandra must be stopped before this tool is executed, or unexpected results will occur. Note: the script does not verify that Cassandra is stopped.
+
+ref: https://issues.apache.org/jira/browse/CASSANDRA-5271
+
+Usage
+^^^^^
+
+sstablelevelreset --really-reset <keyspace> <table>
+
+The really-reset flag is required, to ensure this intrusive command is not run accidentally.
+
+Table not found
+^^^^^^^^^^^^^^^
+
+If the keyspace and/or table is not in the schema (e.g., if you misspelled the table name), the script will return an error.
+
+Example:: 
+
+    ColumnFamily not found: keyspace/evenlog.
+
+Table has no sstables
+^^^^^^^^^^^^^^^^^^^^^
+
+Example::
+
+    Found no sstables, did you give the correct keyspace/table?
+
+
+Table already at level 0
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+The script will not set the level if it is already set to 0.
+
+Example::
+
+    Skipped /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db since it is already on level 0
+
+Table levels reduced to 0
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If the level is not already 0, then this will reset it to 0.
+
+Example::
+
+    sstablemetadata /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db | grep -i level
+    SSTable Level: 1
+
+    sstablelevelreset --really-reset keyspace eventlog
+    Changing level from 1 to 0 on /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db
+
+    sstablemetadata /var/lib/cassandra/data/keyspace/eventlog-6365332094dd11e88f324f9c503e4753/mc-8-big-Data.db | grep -i level
+    SSTable Level: 0
+
+
+
+
+
+
+
diff --git a/src/doc/3.11.11/_sources/tools/sstable/sstableloader.rst.txt b/src/doc/3.11.11/_sources/tools/sstable/sstableloader.rst.txt
new file mode 100644
index 0000000..a9b3734
--- /dev/null
+++ b/src/doc/3.11.11/_sources/tools/sstable/sstableloader.rst.txt
@@ -0,0 +1,273 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+..
+..     http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS,
+.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+.. See the License for the specific language governing permissions and
+.. limitations under the License.
+
+sstableloader
+---------------
+
+Bulk-load the sstables found in the directory <dir_path> to the configured cluster. The parent directories of <dir_path> are used as the target keyspace/table name. For example, to load an sstable named ma-1-big-Data.db into keyspace1/standard1, you will need to have the files ma-1-big-Data.db and ma-1-big-Index.db in a directory /path/to/keyspace1/standard1/. The tool will create new sstables, and does not clean up your copied files.
+
+Several of the options listed below don't work quite as intended, and in those cases, workarounds are mentioned for specific use cases. 
+
+To avoid having the sstable files to be loaded compacted while reading them, place the files in an alternate keyspace/table path than the data directory.
+
+ref: https://issues.apache.org/jira/browse/CASSANDRA-1278
+
+Cassandra must be stopped before this tool is executed, or unexpected results will occur. Note: the script does not verify that Cassandra is stopped.
+
+Usage
+^^^^^
+
+sstableloader <options> <dir_path>
+
+===================================================   ================================================================================
+-d, --nodes <initial hosts>                           Required. Try to connect to these hosts (comma-separated) 
+                                                      initially for ring information
+-u, --username <username>                             username for Cassandra authentication
+-pw, --password <password>                            password for Cassandra authentication
+-p, --port <native transport port>                    port used for native connection (default 9042)
+-sp, --storage-port <storage port>                    port used for internode communication (default 7000)
+-ssp, --ssl-storage-port <ssl storage port>           port used for TLS internode communication (default 7001)
+--no-progress                                         don't display progress
+-t, --throttle <throttle>                             throttle speed in Mbits (default unlimited)
+-idct, --inter-dc-throttle <inter-dc-throttle>        inter-datacenter throttle speed in Mbits (default unlimited)
+-cph, --connections-per-host <connectionsPerHost>     number of concurrent connections-per-host
+-i, --ignore <NODES>                                  don't stream to this (comma separated) list of nodes
+-alg, --ssl-alg <ALGORITHM>                           Client SSL: algorithm (default: SunX509)
+-ciphers, --ssl-ciphers <CIPHER-SUITES>               Client SSL: comma-separated list of encryption suites to use
+-ks, --keystore <KEYSTORE>                            Client SSL: full path to keystore
+-kspw, --keystore-password <KEYSTORE-PASSWORD>        Client SSL: password of the keystore
+-st, --store-type <STORE-TYPE>                        Client SSL: type of store
+-ts, --truststore <TRUSTSTORE>                        Client SSL: full path to truststore
+-tspw, --truststore-password <TRUSTSTORE-PASSWORD>    Client SSL: password of the truststore
+-prtcl, --ssl-protocol <PROTOCOL>                     Client SSL: connections protocol to use (default: TLS)
+-ap, --auth-provider <auth provider>                  custom AuthProvider class name for cassandra authentication
+-f, --conf-path <path to config file>                 cassandra.yaml file path for streaming throughput and client/server SSL
+-v, --verbose                                         verbose output
+-h, --help                                            display this help message
+===================================================   ================================================================================
+
+You can provide a cassandra.yaml file with the -f command line option to set up streaming throughput, and client and server encryption options. Only stream_throughput_outbound_megabits_per_sec, server_encryption_options, and client_encryption_options are read from yaml. You can override options read from cassandra.yaml with corresponding command line options.
+
+Load sstables from a Snapshot
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Copy the snapshot sstables into an accessible directory and use sstableloader to restore them.
+
+Example::
+
+    cp snapshots/1535397029191/* /path/to/keyspace1/standard1/
+
+    sstableloader --nodes 172.17.0.2 /var/lib/cassandra/loadme/keyspace1/standard1-f8a4fa30aa2a11e8af27091830ac5256/
+    Established connection to initial hosts
+    Opening sstables and calculating sections to stream
+    Streaming relevant part of /var/lib/cassandra/loadme/keyspace1/standard1-f8a4fa30aa2a11e8af27091830ac5256/ma-3-big-Data.db to [/172.17.0.2]
+    progress: [/172.17.0.2]0:1/1 100% total: 100% 0  MB/s(avg: 1 MB/s)
+    Summary statistics:
+       Connections per host:         : 1
+       Total files transferred:      : 1
+       Total bytes transferred:      : 4700000
+       Total duration (ms):          : 4390
+       Average transfer rate (MB/s): : 1
+       Peak transfer rate (MB/s):    : 1
+
+The -d or --nodes option is required, or the script will not run.
+
+Example::
+
+    sstableloader /var/lib/cassandra/loadme/keyspace1/standard1-f8a4fa30aa2a11e8af27091830ac5256/
+    Initial hosts must be specified (-d)
+
+Use a Config File for SSL Clusters
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If SSL encryption is enabled in the cluster, use the --conf-path option with sstableloader to point the tool to the cassandra.yaml with the relevant server_encryption_options (e.g., truststore location, algorithm). This will work better than passing individual ssl options shown above to sstableloader on the command line.
+
+Example::
+
+    sstableloader --nodes 172.17.0.2 --conf-path /etc/cassandra/cassandra.yaml /var/lib/cassandra/loadme/keyspace1/standard1-0974e5a0aa5811e8a0a06d2c86545d91/snapshots/
+    Established connection to initial hosts
+    Opening sstables and calculating sections to stream
+    Streaming relevant part of /var/lib/cassandra/loadme/keyspace1/standard1-0974e5a0aa5811e8a0a06d2c86545d91/mc-1-big-Data.db  to [/172.17.0.2]
+    progress: [/172.17.0.2]0:0/1 1  % total: 1% 9.165KiB/s (avg: 9.165KiB/s)
+    progress: [/172.17.0.2]0:0/1 2  % total: 2% 5.147MiB/s (avg: 18.299KiB/s)
+    progress: [/172.17.0.2]0:0/1 4  % total: 4% 9.751MiB/s (avg: 27.423KiB/s)
+    progress: [/172.17.0.2]0:0/1 5  % total: 5% 8.203MiB/s (avg: 36.524KiB/s)
+    ...
+    progress: [/172.17.0.2]0:1/1 100% total: 100% 0.000KiB/s (avg: 480.513KiB/s)
+
+    Summary statistics:
+       Connections per host    : 1
+       Total files transferred : 1
+       Total bytes transferred : 4.387MiB
+       Total duration          : 9356 ms
+       Average transfer rate   : 480.105KiB/s
+       Peak transfer rate      : 586.410KiB/s
+
+Hide Progress Output
+^^^^^^^^^^^^^^^^^^^^
+
+To hide the output of progress and the summary statistics (e.g., if you wanted to use this tool in a script), use the --no-progress option.
+
+Example::
+
+    sstableloader --nodes 172.17.0.2 --no-progress /var/lib/cassandra/loadme/keyspace1/standard1-f8a4fa30aa2a11e8af27091830ac5256/
+    Established connection to initial hosts
+    Opening sstables and calculating sections to stream
+    Streaming relevant part of /var/lib/cassandra/loadme/keyspace1/standard1-f8a4fa30aa2a11e8af27091830ac5256/ma-4-big-Data.db to [/172.17.0.2]
+
+Get More Detail
+^^^^^^^^^^^^^^^
+
+Using the --verbose option will provide much more progress output.
+
+Example::
+
+    sstableloader --nodes 172.17.0.2 --verbose /var/lib/cassandra/loadme/keyspace1/standard1-0974e5a0aa5811e8a0a06d2c86545d91/
+    Established connection to initial hosts
+    Opening sstables and calculating sections to stream
+    Streaming relevant part of /var/lib/cassandra/loadme/keyspace1/standard1-0974e5a0aa5811e8a0a06d2c86545d91/mc-1-big-Data.db  to [/172.17.0.2]
+    progress: [/172.17.0.2]0:0/1 1  % total: 1% 12.056KiB/s (avg: 12.056KiB/s)
+    progress: [/172.17.0.2]0:0/1 2  % total: 2% 9.092MiB/s (avg: 24.081KiB/s)
+    progress: [/172.17.0.2]0:0/1 4  % total: 4% 18.832MiB/s (avg: 36.099KiB/s)
+    progress: [/172.17.0.2]0:0/1 5  % total: 5% 2.253MiB/s (avg: 47.882KiB/s)
+    progress: [/172.17.0.2]0:0/1 7  % total: 7% 6.388MiB/s (avg: 59.743KiB/s)
+    progress: [/172.17.0.2]0:0/1 8  % total: 8% 14.606MiB/s (avg: 71.635KiB/s)
+    progress: [/172.17.0.2]0:0/1 9  % total: 9% 8.880MiB/s (avg: 83.465KiB/s)
+    progress: [/172.17.0.2]0:0/1 11 % total: 11% 5.217MiB/s (avg: 95.176KiB/s)
+    progress: [/172.17.0.2]0:0/1 12 % total: 12% 12.563MiB/s (avg: 106.975KiB/s)
+    progress: [/172.17.0.2]0:0/1 14 % total: 14% 2.550MiB/s (avg: 118.322KiB/s)
+    progress: [/172.17.0.2]0:0/1 15 % total: 15% 16.638MiB/s (avg: 130.063KiB/s)
+    progress: [/172.17.0.2]0:0/1 17 % total: 17% 17.270MiB/s (avg: 141.793KiB/s)
+    progress: [/172.17.0.2]0:0/1 18 % total: 18% 11.280MiB/s (avg: 153.452KiB/s)
+    progress: [/172.17.0.2]0:0/1 19 % total: 19% 2.903MiB/s (avg: 164.603KiB/s)
+    progress: [/172.17.0.2]0:0/1 21 % total: 21% 6.744MiB/s (avg: 176.061KiB/s)
+    progress: [/172.17.0.2]0:0/1 22 % total: 22% 6.011MiB/s (avg: 187.440KiB/s)
+    progress: [/172.17.0.2]0:0/1 24 % total: 24% 9.690MiB/s (avg: 198.920KiB/s)
+    progress: [/172.17.0.2]0:0/1 25 % total: 25% 11.481MiB/s (avg: 210.412KiB/s)
+    progress: [/172.17.0.2]0:0/1 27 % total: 27% 9.957MiB/s (avg: 221.848KiB/s)
+    progress: [/172.17.0.2]0:0/1 28 % total: 28% 10.270MiB/s (avg: 233.265KiB/s)
+    progress: [/172.17.0.2]0:0/1 29 % total: 29% 7.812MiB/s (avg: 244.571KiB/s)
+    progress: [/172.17.0.2]0:0/1 31 % total: 31% 14.843MiB/s (avg: 256.021KiB/s)
+    progress: [/172.17.0.2]0:0/1 32 % total: 32% 11.457MiB/s (avg: 267.394KiB/s)
+    progress: [/172.17.0.2]0:0/1 34 % total: 34% 6.550MiB/s (avg: 278.536KiB/s)
+    progress: [/172.17.0.2]0:0/1 35 %